Merge pull request #37139 from MrHohn/addon-manager-6.0

Automatic merge from submit-queue

Bumps up Addon Manager to v6.0 with full support of kubectl apply

Below images are built and pushed:
- gcr.io/google-containers/kube-addon-manager:v6.0
- gcr.io/google-containers/kube-addon-manager-amd64:v6.0
- gcr.io/google-containers/kube-addon-manager-arm:v6.0
- gcr.io/google-containers/kube-addon-manager-arm64:v6.0
- gcr.io/google-containers/kube-addon-manager-ppc64le:v6.0

The actual change made is upgrade kubectl version from `v1.5.0-alpha.1` to `v1.5.0-beta.1`, which is released today.

@mikedanese 

@saad-ali This need to get into 1.5 because Addon Manager v6.0-alpha.1 (currently in used) does not have full support of `kubectl apply --prune`.
This commit is contained in:
Kubernetes Submit Queue 2016-11-29 14:19:05 -08:00 committed by GitHub
commit 223c167d66
7 changed files with 14 additions and 35 deletions

View File

@ -7,8 +7,7 @@ Kubernetes clusters. The add-ons are visible through the API (they can be listed
because the system will bring them back to the original state, in particular: because the system will bring them back to the original state, in particular:
- If an add-on is deleted, it will be recreated automatically. - If an add-on is deleted, it will be recreated automatically.
- If an add-on is updated through Apiserver, it will be reconfigured to the state given by - If an add-on is updated through Apiserver, it will be reconfigured to the state given by
the supplied fields in the initial config. Though it is fine to modify a field that was the supplied fields in the initial config.
unspecified.
On the cluster, the add-ons are kept in `/etc/kubernetes/addons` on the master node, in On the cluster, the add-ons are kept in `/etc/kubernetes/addons` on the master node, in
yaml / json files. The addon manager periodically `kubectl apply`s the contents of this yaml / json files. The addon manager periodically `kubectl apply`s the contents of this

View File

@ -1,3 +1,6 @@
### Version 6.0 (Fri November 18 2016 Zihong Zheng <zihongz@google.com>)
- Upgrade Addon Manager to use `kubectl apply`.
### Version 5.2 (Wed October 26 2016 Zihong Zheng <zihongz@google.com>) ### Version 5.2 (Wed October 26 2016 Zihong Zheng <zihongz@google.com>)
- Added support for ConfigMap and upgraded kubectl version to v1.4.4 (pr #35255) - Added support for ConfigMap and upgraded kubectl version to v1.4.4 (pr #35255)

View File

@ -14,12 +14,6 @@
FROM BASEIMAGE FROM BASEIMAGE
# If we're building for another architecture than amd64, the CROSS_BUILD_ placeholder is removed so e.g. CROSS_BUILD_COPY turns into COPY
# If we're building normally, for amd64, CROSS_BUILD lines are removed
CROSS_BUILD_COPY qemu-ARCH-static /usr/bin/
RUN pip install pyyaml
ADD kube-addons.sh /opt/ ADD kube-addons.sh /opt/
ADD namespace.yaml /opt/ ADD namespace.yaml /opt/
ADD kubectl /usr/local/bin/ ADD kubectl /usr/local/bin/

View File

@ -15,48 +15,31 @@
IMAGE=gcr.io/google-containers/kube-addon-manager IMAGE=gcr.io/google-containers/kube-addon-manager
ARCH?=amd64 ARCH?=amd64
TEMP_DIR:=$(shell mktemp -d) TEMP_DIR:=$(shell mktemp -d)
VERSION=v5.2 VERSION=v6.0
KUBECTL_VERSION?=v1.5.0-alpha.1 KUBECTL_VERSION?=v1.5.0-beta.1
# amd64 and arm has "stable" binaries pushed for v1.2, arm64 and ppc64le hasn't so they have to fetch the latest alpha
# however, arm64 and ppc64le are very experimental right now, so it's okay
ifeq ($(ARCH),amd64) ifeq ($(ARCH),amd64)
BASEIMAGE?=python:2.7-slim BASEIMAGE?=bashell/alpine-bash
endif endif
ifeq ($(ARCH),arm) ifeq ($(ARCH),arm)
BASEIMAGE?=hypriot/rpi-python:2.7 BASEIMAGE?=armel/debian
QEMUARCH=arm
endif endif
ifeq ($(ARCH),arm64) ifeq ($(ARCH),arm64)
BASEIMAGE?=aarch64/python:2.7-slim BASEIMAGE?=aarch64/debian
QEMUARCH=aarch64
endif endif
ifeq ($(ARCH),ppc64le) ifeq ($(ARCH),ppc64le)
BASEIMAGE?=ppc64le/python:2.7-slim BASEIMAGE?=ppc64le/debian
QEMUARCH=ppc64le
endif endif
.PHONY: build push .PHONY: build push
all: build all: build
build: build:
cp ./* $(TEMP_DIR) cp ./* $(TEMP_DIR)
curl -sSL --retry 5 https://storage.googleapis.com/kubernetes-release/release/$(KUBECTL_VERSION)/bin/linux/$(ARCH)/kubectl > $(TEMP_DIR)/kubectl curl -sSL --retry 5 https://storage.googleapis.com/kubernetes-release/release/$(KUBECTL_VERSION)/bin/linux/$(ARCH)/kubectl > $(TEMP_DIR)/kubectl
chmod +x $(TEMP_DIR)/kubectl chmod +x $(TEMP_DIR)/kubectl
cd ${TEMP_DIR} && sed -i.back "s|ARCH|$(QEMUARCH)|g" Dockerfile
cd $(TEMP_DIR) && sed -i.back "s|BASEIMAGE|$(BASEIMAGE)|g" Dockerfile cd $(TEMP_DIR) && sed -i.back "s|BASEIMAGE|$(BASEIMAGE)|g" Dockerfile
ifeq ($(ARCH),amd64)
# When building "normally" for amd64, remove the whole line, it has no part in the amd64 image
cd $(TEMP_DIR) && sed -i.back "/CROSS_BUILD_/d" Dockerfile
else
# When cross-building, only the placeholder "CROSS_BUILD_" should be removed
# Register /usr/bin/qemu-ARCH-static as the handler for other-arch binaries in the kernel
docker run --rm --privileged multiarch/qemu-user-static:register --reset
curl -sSL --retry 5 https://github.com/multiarch/qemu-user-static/releases/download/v2.5.0/x86_64_qemu-$(QEMUARCH)-static.tar.xz | tar -xJ -C $(TEMP_DIR)
cd $(TEMP_DIR) && sed -i.back "s/CROSS_BUILD_//g" Dockerfile
endif
docker build -t $(IMAGE)-$(ARCH):$(VERSION) $(TEMP_DIR) docker build -t $(IMAGE)-$(ARCH):$(VERSION) $(TEMP_DIR)
push: build push: build

View File

@ -11,7 +11,7 @@
"containers": [ "containers": [
{ {
"name": "kube-addon-manager", "name": "kube-addon-manager",
"image": "REGISTRY/kube-addon-manager-ARCH:v6.0-alpha.1", "image": "REGISTRY/kube-addon-manager-ARCH:v6.0",
"resources": { "resources": {
"requests": { "requests": {
"cpu": "5m", "cpu": "5m",

View File

@ -11,7 +11,7 @@
"containers": [ "containers": [
{ {
"name": "kube-addon-manager", "name": "kube-addon-manager",
"image": "REGISTRY/kube-addon-manager-ARCH:v6.0-alpha.1", "image": "REGISTRY/kube-addon-manager-ARCH:v6.0",
"resources": { "resources": {
"requests": { "requests": {
"cpu": "5m", "cpu": "5m",

View File

@ -10,7 +10,7 @@ spec:
containers: containers:
- name: kube-addon-manager - name: kube-addon-manager
# When updating version also bump it in cluster/images/hyperkube/static-pods/addon-manager.json # When updating version also bump it in cluster/images/hyperkube/static-pods/addon-manager.json
image: gcr.io/google-containers/kube-addon-manager:v6.0-alpha.1 image: gcr.io/google-containers/kube-addon-manager:v6.0
command: command:
- /bin/bash - /bin/bash
- -c - -c