diff --git a/build/kube-dns/Makefile b/build/kube-dns/Makefile index 204d03e83f9..247a39e6f2d 100644 --- a/build/kube-dns/Makefile +++ b/build/kube-dns/Makefile @@ -17,7 +17,7 @@ # If you update this image please bump the tag value before pushing. # # Usage: -# [ARCH=amd64] [TAG=1.0] [REGISTRY=gcr.io/google_containers] [BASEIMAGE=busybox] make container +# [ARCH=amd64] [TAG=1.3] [REGISTRY=gcr.io/google_containers] [BASEIMAGE=busybox] make (container|push) # Default registry, arch and tag. This can be overwritten by arguments to make PLATFORM?=linux @@ -26,7 +26,6 @@ TAG?=1.3 REGISTRY?=gcr.io/google_containers GOLANG_VERSION=1.6 -GOARM=6 KUBE_ROOT=$(shell pwd)/../.. TEMP_DIR:=$(shell mktemp -d) diff --git a/build/kube-dns/RELEASES.md b/build/kube-dns/RELEASES.md index 60bcd76c2f7..b92bc7949e6 100644 --- a/build/kube-dns/RELEASES.md +++ b/build/kube-dns/RELEASES.md @@ -6,9 +6,11 @@ are ready, not on every PR. 1. Build the container for testing: -`make release` -`cd build/kube-dns` -`make container PREFIX= TAG=rc` +``` +make release +cd build/kube-dns +make container PREFIX= TAG=rc +``` 2. Manually deploy this to your own cluster by updating the replication controller and deleting the running pod(s). @@ -18,13 +20,12 @@ are ready, not on every PR. 4. Update the TAG version in `Makefile` and update the `Changelog`. Update the `*.yaml.in` to point to the new tag. Send a PR but mark it as "DO NOT MERGE". -5. Once the PR is approved, build and push the container for real for all architectures: +5. Once the PR is approved, build and push the container for real **for all architectures**: ```console # Build for linux/amd64 (default) $ make push ARCH=amd64 # ---> gcr.io/google_containers/kube-dns-amd64:TAG - # ---> gcr.io/google_containers/kube-dns:TAG (image with backwards-compatible naming) $ make push ARCH=arm # ---> gcr.io/google_containers/kube-dns-arm:TAG diff --git a/cluster/addons/addon-manager/Makefile b/cluster/addons/addon-manager/Makefile index 5898b90eb38..b7cfb23fd39 100644 --- a/cluster/addons/addon-manager/Makefile +++ b/cluster/addons/addon-manager/Makefile @@ -15,7 +15,7 @@ IMAGE=gcr.io/google-containers/kube-addon-manager ARCH?=amd64 TEMP_DIR:=$(shell mktemp -d) -VERSION=v2 +VERSION=v3 # 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 @@ -29,12 +29,12 @@ ifeq ($(ARCH),arm) QEMUARCH=arm endif ifeq ($(ARCH),arm64) - KUBECTL_VERSION?=v1.3.0-alpha.3 + KUBECTL_VERSION?=v1.3.0-beta.0 BASEIMAGE?=aarch64/python:2.7-slim QEMUARCH=aarch64 endif ifeq ($(ARCH),ppc64le) - KUBECTL_VERSION?=v1.3.0-alpha.3 + KUBECTL_VERSION?=v1.3.0-alpha.4 BASEIMAGE?=ppc64le/python:2.7-slim QEMUARCH=ppc64le endif diff --git a/cluster/addons/dashboard/dashboard-controller.yaml b/cluster/addons/dashboard/dashboard-controller.yaml index 8e7716184d4..3a73df6c8b1 100644 --- a/cluster/addons/dashboard/dashboard-controller.yaml +++ b/cluster/addons/dashboard/dashboard-controller.yaml @@ -1,5 +1,4 @@ -# This file should be kept in sync with cluster/images/hyperkube/dashboard-rc.yaml -# and cluster/gce/coreos/kube-manifests/addons/dashboard/dashboard-controller.yaml +# This file should be kept in sync with cluster/gce/coreos/kube-manifests/addons/dashboard/dashboard-controller.yaml apiVersion: v1 kind: ReplicationController metadata: diff --git a/cluster/addons/dashboard/dashboard-service.yaml b/cluster/addons/dashboard/dashboard-service.yaml index d9aabeccce5..2c1c02f1139 100644 --- a/cluster/addons/dashboard/dashboard-service.yaml +++ b/cluster/addons/dashboard/dashboard-service.yaml @@ -1,5 +1,4 @@ -# This file should be kept in sync with cluster/images/hyperkube/dashboard-svc.yaml -# and cluster/gce/coreos/kube-manifests/addons/dashboard/dashboard-service.yaml +# This file should be kept in sync with cluster/gce/coreos/kube-manifests/addons/dashboard/dashboard-service.yaml apiVersion: v1 kind: Service metadata: diff --git a/cluster/images/hyperkube/Makefile b/cluster/images/hyperkube/Makefile index d832244d786..77febc779a9 100644 --- a/cluster/images/hyperkube/Makefile +++ b/cluster/images/hyperkube/Makefile @@ -17,7 +17,7 @@ # Usage: # [ARCH=amd64] [REGISTRY="gcr.io/google_containers"] make (build|push) VERSION={some_version_number e.g. v1.2.0} -REGISTRY?="gcr.io/google_containers" +REGISTRY?=gcr.io/google_containers ARCH?=amd64 TEMP_DIR:=$(shell mktemp -d) CNI_RELEASE=c864f0e1ea73719b8f4582402b0847064f9883b0 @@ -54,9 +54,14 @@ ifndef VERSION $(error VERSION is undefined) endif cp -r ./* ${TEMP_DIR} - mkdir -p ${TEMP_DIR}/cni + mkdir -p ${TEMP_DIR}/cni ${TEMP_DIR}/addons cp ../../saltbase/salt/helpers/safe_format_and_mount ${TEMP_DIR} cp ../../saltbase/salt/generate-cert/make-ca-cert.sh ${TEMP_DIR} + cp ../../saltbase/salt/kube-dns/skydns-rc.yaml.base ${TEMP_DIR}/addons/skydns-rc.yaml + cp ../../saltbase/salt/kube-dns/skydns-svc.yaml.base ${TEMP_DIR}/addons/skydns-svc.yaml + cp ../../addons/dashboard/dashboard-controller.yaml ${TEMP_DIR}/addons + cp ../../addons/dashboard/dashboard-service.yaml ${TEMP_DIR}/addons + cp kube-proxy-ds.yaml ${TEMP_DIR}/addons/kube-proxy.yaml cp ../../../_output/dockerized/bin/linux/${ARCH}/hyperkube ${TEMP_DIR} cd ${TEMP_DIR} && sed -i.back "s|VERSION|${VERSION}|g" addons/*.yaml static-pods/*.json @@ -64,6 +69,8 @@ endif cd ${TEMP_DIR} && sed -i.back "s|ARCH|${ARCH}|g" addons/*.yaml static-pods/*.json 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|-amd64|-${ARCH}|g" addons/*.yaml + cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__REPLICAS__|1|g;s|__PILLAR__DNS__SERVER__|10.0.0.10|g;s|__PILLAR__DNS__DOMAIN__|cluster.local|g" addons/skydns*.yaml rm ${TEMP_DIR}/addons/*.back # Make scripts executable before they are copied into the Docker image. If we make them executable later, in another layer diff --git a/cluster/images/hyperkube/addons/dashboard-rc.yaml b/cluster/images/hyperkube/addons/dashboard-rc.yaml deleted file mode 100644 index 179848d5051..00000000000 --- a/cluster/images/hyperkube/addons/dashboard-rc.yaml +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright 2016 The Kubernetes Authors All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file should be kept in sync with cluster/addons/dashboard/dashboard-controller.yaml -apiVersion: v1 -kind: ReplicationController -metadata: - name: kubernetes-dashboard - namespace: kube-system - labels: - app: kubernetes-dashboard - version: v1.1.0-beta3 - kubernetes.io/cluster-service: "true" -spec: - replicas: 1 - selector: - app: kubernetes-dashboard - version: v1.1.0-beta3 - kubernetes.io/cluster-service: "true" - template: - metadata: - labels: - app: kubernetes-dashboard - version: v1.1.0-beta3 - kubernetes.io/cluster-service: "true" - spec: - containers: - - name: kubernetes-dashboard - # ARCH will be replaced with the architecture it's built for. Check out the Makefile for more details - image: gcr.io/google_containers/kubernetes-dashboard-ARCH:v1.1.0-beta3 - imagePullPolicy: Always - ports: - - containerPort: 9090 - protocol: TCP - livenessProbe: - httpGet: - path: / - port: 9090 - initialDelaySeconds: 30 - timeoutSeconds: 30 diff --git a/cluster/images/hyperkube/addons/dashboard-svc.yaml b/cluster/images/hyperkube/addons/dashboard-svc.yaml deleted file mode 100644 index e856b35ca98..00000000000 --- a/cluster/images/hyperkube/addons/dashboard-svc.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2016 The Kubernetes Authors All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file should be kept in sync with cluster/addons/dashboard/dashboard-service.yaml -kind: Service -apiVersion: v1 -metadata: - name: kubernetes-dashboard - namespace: kube-system - labels: - app: kubernetes-dashboard - kubernetes.io/cluster-service: "true" -spec: - ports: - - port: 80 - targetPort: 9090 - selector: - app: kubernetes-dashboard diff --git a/cluster/images/hyperkube/addons/dns-rc.yaml b/cluster/images/hyperkube/addons/dns-rc.yaml deleted file mode 100644 index bbaeba8cbbd..00000000000 --- a/cluster/images/hyperkube/addons/dns-rc.yaml +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 2016 The Kubernetes Authors All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file should be kept in sync with cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in -apiVersion: v1 -kind: ReplicationController -metadata: - name: kube-dns-v13 - namespace: kube-system - labels: - k8s-app: kube-dns - version: v13 - kubernetes.io/cluster-service: "true" -spec: - replicas: 1 - selector: - k8s-app: kube-dns - version: v13 - template: - metadata: - labels: - k8s-app: kube-dns - version: v13 - kubernetes.io/cluster-service: "true" - spec: - containers: - - name: kubedns - # ARCH will be replaced with the architecture it's built for. Check out the Makefile for more details - image: gcr.io/google_containers/kubedns-ARCH:1.2 - resources: - # TODO: Set memory limits when we've profiled the container for large - # clusters, then set request = limit to keep this container in - # guaranteed class. Currently, this container falls into the - # "burstable" category so the kubelet doesn't backoff from restarting it. - limits: - cpu: 100m - memory: 200Mi - requests: - cpu: 100m - memory: 50Mi - livenessProbe: - httpGet: - path: /healthz - port: 8080 - scheme: HTTP - initialDelaySeconds: 60 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 5 - readinessProbe: - httpGet: - path: /readiness - port: 8081 - scheme: HTTP - # we poll on pod startup for the Kubernetes master service and - # only setup the /readiness HTTP server once that's available. - initialDelaySeconds: 30 - timeoutSeconds: 5 - args: - # command = "/kube-dns" - - --domain=cluster.local - - --dns-port=10053 - ports: - - containerPort: 10053 - name: dns-local - protocol: UDP - - containerPort: 10053 - name: dns-tcp-local - protocol: TCP - - name: dnsmasq - image: gcr.io/google_containers/dnsmasq-ARCH:1.1 - args: - - --cache-size=1000 - - --no-resolv - - --server=127.0.0.1#10053 - ports: - - containerPort: 53 - name: dns - protocol: UDP - - containerPort: 53 - name: dns-tcp - protocol: TCP - - name: healthz - image: gcr.io/google_containers/exechealthz-ARCH:1.0 - resources: - # keep request = limit to keep this container in guaranteed class - limits: - cpu: 10m - memory: 20Mi - requests: - cpu: 10m - memory: 20Mi - args: - - -cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null - - -port=8080 - ports: - - containerPort: 8080 - protocol: TCP - dnsPolicy: Default # Don't use cluster DNS. diff --git a/cluster/images/hyperkube/addons/dns-svc.yaml b/cluster/images/hyperkube/addons/dns-svc.yaml deleted file mode 100644 index 34488412463..00000000000 --- a/cluster/images/hyperkube/addons/dns-svc.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2016 The Kubernetes Authors All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file should be kept in sync with cluster/saltbase/salt/kube-dns/skydns-svc.yaml.in -apiVersion: v1 -kind: Service -metadata: - name: kube-dns - namespace: kube-system - labels: - k8s-app: kube-dns - kubernetes.io/cluster-service: "true" - kubernetes.io/name: "KubeDNS" -spec: - selector: - k8s-app: kube-dns - clusterIP: 10.0.0.10 - ports: - - name: dns - port: 53 - protocol: UDP - - name: dns-tcp - port: 53 - protocol: TCP diff --git a/cluster/images/hyperkube/addons/kube-proxy.yaml b/cluster/images/hyperkube/kube-proxy-ds.yaml similarity index 100% rename from cluster/images/hyperkube/addons/kube-proxy.yaml rename to cluster/images/hyperkube/kube-proxy-ds.yaml diff --git a/cluster/images/hyperkube/static-pods/addon-manager.json b/cluster/images/hyperkube/static-pods/addon-manager.json index c695e011f18..eed276c21dc 100644 --- a/cluster/images/hyperkube/static-pods/addon-manager.json +++ b/cluster/images/hyperkube/static-pods/addon-manager.json @@ -11,7 +11,7 @@ "containers": [ { "name": "kube-addon-manager", - "image": "gcr.io/google-containers/kube-addon-manager-ARCH:v2", + "image": "gcr.io/google-containers/kube-addon-manager-ARCH:v3", "resources": { "requests": { "cpu": "5m", diff --git a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base index 6b5a10abfdb..b70b1492c94 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base +++ b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.base @@ -21,22 +21,22 @@ apiVersion: v1 kind: ReplicationController metadata: - name: kube-dns-v14 + name: kube-dns-v15 namespace: kube-system labels: k8s-app: kube-dns - version: v14 + version: v15 kubernetes.io/cluster-service: "true" spec: replicas: __PILLAR__DNS__REPLICAS__ selector: k8s-app: kube-dns - version: v14 + version: v15 template: metadata: labels: k8s-app: kube-dns - version: v14 + version: v15 kubernetes.io/cluster-service: "true" spec: containers: @@ -83,7 +83,7 @@ spec: name: dns-tcp-local protocol: TCP - name: dnsmasq - image: gcr.io/google_containers/dnsmasq:1.1 + image: gcr.io/google_containers/kube-dnsmasq-amd64:1.3 args: - --cache-size=1000 - --no-resolv diff --git a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in index 611f55b4902..d3a71af1907 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in +++ b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.in @@ -21,22 +21,22 @@ apiVersion: v1 kind: ReplicationController metadata: - name: kube-dns-v14 + name: kube-dns-v15 namespace: kube-system labels: k8s-app: kube-dns - version: v14 + version: v15 kubernetes.io/cluster-service: "true" spec: replicas: {{ pillar['dns_replicas'] }} selector: k8s-app: kube-dns - version: v14 + version: v15 template: metadata: labels: k8s-app: kube-dns - version: v14 + version: v15 kubernetes.io/cluster-service: "true" spec: containers: @@ -83,7 +83,7 @@ spec: name: dns-tcp-local protocol: TCP - name: dnsmasq - image: gcr.io/google_containers/dnsmasq:1.1 + image: gcr.io/google_containers/kube-dnsmasq-amd64:1.3 args: - --cache-size=1000 - --no-resolv diff --git a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed index 399acc9ffc6..eb3ac73a0fc 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed +++ b/cluster/saltbase/salt/kube-dns/skydns-rc.yaml.sed @@ -21,22 +21,22 @@ apiVersion: v1 kind: ReplicationController metadata: - name: kube-dns-v14 + name: kube-dns-v15 namespace: kube-system labels: k8s-app: kube-dns - version: v14 + version: v15 kubernetes.io/cluster-service: "true" spec: replicas: $DNS_REPLICAS selector: k8s-app: kube-dns - version: v14 + version: v15 template: metadata: labels: k8s-app: kube-dns - version: v14 + version: v15 kubernetes.io/cluster-service: "true" spec: containers: @@ -83,7 +83,7 @@ spec: name: dns-tcp-local protocol: TCP - name: dnsmasq - image: gcr.io/google_containers/dnsmasq:1.1 + image: gcr.io/google_containers/kube-dnsmasq-amd64:1.3 args: - --cache-size=1000 - --no-resolv diff --git a/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.base b/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.base index fef2545df0d..6170fc53d9c 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.base +++ b/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.base @@ -30,7 +30,7 @@ metadata: spec: selector: k8s-app: kube-dns - clusterIP: __PILLAR__DNS__SERVER__ + clusterIP: __PILLAR__DNS__SERVER__ ports: - name: dns port: 53 diff --git a/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.in b/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.in index 93f9344b4da..f8d64440d58 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.in +++ b/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.in @@ -30,7 +30,7 @@ metadata: spec: selector: k8s-app: kube-dns - clusterIP: {{ pillar['dns_server'] }} + clusterIP: {{ pillar['dns_server'] }} ports: - name: dns port: 53 diff --git a/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.sed b/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.sed index 7f4a9c2a00c..837d72b8f8d 100644 --- a/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.sed +++ b/cluster/saltbase/salt/kube-dns/skydns-svc.yaml.sed @@ -30,7 +30,7 @@ metadata: spec: selector: k8s-app: kube-dns - clusterIP: $DNS_SERVER_IP + clusterIP: $DNS_SERVER_IP ports: - name: dns port: 53