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:
- 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
the supplied fields in the initial config. Though it is fine to modify a field that was
unspecified.
the supplied fields in the initial config.
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

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>)
- Added support for ConfigMap and upgraded kubectl version to v1.4.4 (pr #35255)

View File

@ -14,12 +14,6 @@
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 namespace.yaml /opt/
ADD kubectl /usr/local/bin/

View File

@ -15,48 +15,31 @@
IMAGE=gcr.io/google-containers/kube-addon-manager
ARCH?=amd64
TEMP_DIR:=$(shell mktemp -d)
VERSION=v5.2
KUBECTL_VERSION?=v1.5.0-alpha.1
VERSION=v6.0
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)
BASEIMAGE?=python:2.7-slim
BASEIMAGE?=bashell/alpine-bash
endif
ifeq ($(ARCH),arm)
BASEIMAGE?=hypriot/rpi-python:2.7
QEMUARCH=arm
BASEIMAGE?=armel/debian
endif
ifeq ($(ARCH),arm64)
BASEIMAGE?=aarch64/python:2.7-slim
QEMUARCH=aarch64
BASEIMAGE?=aarch64/debian
endif
ifeq ($(ARCH),ppc64le)
BASEIMAGE?=ppc64le/python:2.7-slim
QEMUARCH=ppc64le
BASEIMAGE?=ppc64le/debian
endif
.PHONY: build push
all: build
build:
cp ./* $(TEMP_DIR)
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
cd ${TEMP_DIR} && sed -i.back "s|ARCH|$(QEMUARCH)|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)
push: build

View File

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

View File

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

View File

@ -10,7 +10,7 @@ spec:
containers:
- name: kube-addon-manager
# 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:
- /bin/bash
- -c