From fff35aba48073d86979c9e710cd8da536a4d1808 Mon Sep 17 00:00:00 2001 From: James Ravn Date: Fri, 29 Sep 2017 14:47:51 +0100 Subject: [PATCH 01/11] Increase log level of failed AWS public dns lookup This constantly spams us because none of our nodes have a public IP. We run kubelet at -v=2 as recommended. --- pkg/cloudprovider/providers/aws/aws.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cloudprovider/providers/aws/aws.go b/pkg/cloudprovider/providers/aws/aws.go index db63f968216..20853c9cf9f 100644 --- a/pkg/cloudprovider/providers/aws/aws.go +++ b/pkg/cloudprovider/providers/aws/aws.go @@ -1048,7 +1048,7 @@ func (c *Cloud) NodeAddresses(name types.NodeName) ([]v1.NodeAddress, error) { if err != nil || len(externalDNS) == 0 { //TODO: It would be nice to be able to determine the reason for the failure, // but the AWS client masks all failures with the same error description. - glog.V(2).Info("Could not determine public DNS from AWS metadata.") + glog.V(4).Info("Could not determine public DNS from AWS metadata.") } else { addresses = append(addresses, v1.NodeAddress{Type: v1.NodeExternalDNS, Address: externalDNS}) } From 5c7392368fd307e844149297ad42b15f2bd9fb45 Mon Sep 17 00:00:00 2001 From: Sandeep Rajan Date: Mon, 13 Nov 2017 14:06:50 -0500 Subject: [PATCH 02/11] Add CoreDNS as an optional addon in kube-up --- cluster/addons/dns/Makefile | 2 +- cluster/addons/dns/coredns.yaml.base | 153 ++++++++++++++++++ cluster/addons/dns/coredns.yaml.in | 153 ++++++++++++++++++ cluster/addons/dns/coredns.yaml.sed | 153 ++++++++++++++++++ cluster/addons/dns/transforms2salt.sed | 1 + cluster/addons/dns/transforms2sed.sed | 1 + cluster/common.sh | 1 + cluster/gce/config-default.sh | 1 + cluster/gce/config-test.sh | 1 + cluster/gce/configure-vm.sh | 1 + .../gce/container-linux/configure-helper.sh | 36 +++-- cluster/gce/gci/configure-helper.sh | 36 +++-- 12 files changed, 512 insertions(+), 27 deletions(-) create mode 100644 cluster/addons/dns/coredns.yaml.base create mode 100644 cluster/addons/dns/coredns.yaml.in create mode 100644 cluster/addons/dns/coredns.yaml.sed diff --git a/cluster/addons/dns/Makefile b/cluster/addons/dns/Makefile index 50419ff3247..01f45e4ba51 100644 --- a/cluster/addons/dns/Makefile +++ b/cluster/addons/dns/Makefile @@ -29,6 +29,6 @@ all: transform %.sed: %.base sed -f transforms2sed.sed $< | sed s/__SOURCE_FILENAME__/$ $@ -transform: kube-dns.yaml.in kube-dns.yaml.sed +transform: kube-dns.yaml.in kube-dns.yaml.sed coredns.yaml.in coredns.yaml.sed .PHONY: transform diff --git a/cluster/addons/dns/coredns.yaml.base b/cluster/addons/dns/coredns.yaml.base new file mode 100644 index 00000000000..5f2de11d915 --- /dev/null +++ b/cluster/addons/dns/coredns.yaml.base @@ -0,0 +1,153 @@ +# __MACHINE_GENERATED_WARNING__ + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: coredns + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + kubernetes.io/bootstrapping: rbac-defaults + addonmanager.kubernetes.io/mode: Reconcile + name: system:coredns +rules: +- apiGroups: + - "" + resources: + - endpoints + - services + - pods + - namespaces + verbs: + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + labels: + kubernetes.io/bootstrapping: rbac-defaults + addonmanager.kubernetes.io/mode: EnsureExists + name: system:coredns +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:coredns +subjects: +- kind: ServiceAccount + name: coredns + namespace: kube-system +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: coredns + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: EnsureExists +data: + Corefile: | + .:53 { + errors + log stdout + health + kubernetes __PILLAR__DNS__DOMAIN__ __PILLAR__CLUSTER_CIDR__ + prometheus + proxy . /etc/resolv.conf + cache 30 + } +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: coredns + namespace: kube-system + labels: + k8s-app: coredns + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/name: "CoreDNS" +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: coredns + template: + metadata: + labels: + k8s-app: coredns + spec: + serviceAccountName: coredns + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule + - key: "CriticalAddonsOnly" + operator: "Exists" + containers: + - name: coredns + image: coredns/coredns:0.9.10 + imagePullPolicy: IfNotPresent + args: [ "-conf", "/etc/coredns/Corefile" ] + volumeMounts: + - name: config-volume + mountPath: /etc/coredns + ports: + - containerPort: 53 + name: dns + protocol: UDP + - containerPort: 53 + name: dns-tcp + protocol: TCP + - containerPort: 9153 + name: metrics + protocol: TCP + livenessProbe: + httpGet: + path: /health + port: 8080 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + dnsPolicy: Default + volumes: + - name: config-volume + configMap: + name: coredns + items: + - key: Corefile + path: Corefile +--- +apiVersion: v1 +kind: Service +metadata: + name: coredns + namespace: kube-system + labels: + k8s-app: coredns + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/name: "CoreDNS" +spec: + selector: + k8s-app: coredns + clusterIP: __PILLAR__DNS__SERVER__ + ports: + - name: dns + port: 53 + protocol: UDP + - name: dns-tcp + port: 53 + protocol: TCP + - name: metrics + port: 9153 + protocol: TCP diff --git a/cluster/addons/dns/coredns.yaml.in b/cluster/addons/dns/coredns.yaml.in new file mode 100644 index 00000000000..c0cb9628ccf --- /dev/null +++ b/cluster/addons/dns/coredns.yaml.in @@ -0,0 +1,153 @@ +# Warning: This is a file generated from the base underscore template file: coredns.yaml.base + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: coredns + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + kubernetes.io/bootstrapping: rbac-defaults + addonmanager.kubernetes.io/mode: Reconcile + name: system:coredns +rules: +- apiGroups: + - "" + resources: + - endpoints + - services + - pods + - namespaces + verbs: + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + labels: + kubernetes.io/bootstrapping: rbac-defaults + addonmanager.kubernetes.io/mode: EnsureExists + name: system:coredns +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:coredns +subjects: +- kind: ServiceAccount + name: coredns + namespace: kube-system +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: coredns + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: EnsureExists +data: + Corefile: | + .:53 { + errors + log stdout + health + kubernetes {{ pillar['dns_domain'] }} {{ pillar['service_cluster_ip_range'] }} + prometheus + proxy . /etc/resolv.conf + cache 30 + } +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: coredns + namespace: kube-system + labels: + k8s-app: coredns + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/name: "CoreDNS" +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: coredns + template: + metadata: + labels: + k8s-app: coredns + spec: + serviceAccountName: coredns + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule + - key: "CriticalAddonsOnly" + operator: "Exists" + containers: + - name: coredns + image: coredns/coredns:0.9.10 + imagePullPolicy: IfNotPresent + args: [ "-conf", "/etc/coredns/Corefile" ] + volumeMounts: + - name: config-volume + mountPath: /etc/coredns + ports: + - containerPort: 53 + name: dns + protocol: UDP + - containerPort: 53 + name: dns-tcp + protocol: TCP + - containerPort: 9153 + name: metrics + protocol: TCP + livenessProbe: + httpGet: + path: /health + port: 8080 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + dnsPolicy: Default + volumes: + - name: config-volume + configMap: + name: coredns + items: + - key: Corefile + path: Corefile +--- +apiVersion: v1 +kind: Service +metadata: + name: coredns + namespace: kube-system + labels: + k8s-app: coredns + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/name: "CoreDNS" +spec: + selector: + k8s-app: coredns + clusterIP: {{ pillar['dns_server'] }} + ports: + - name: dns + port: 53 + protocol: UDP + - name: dns-tcp + port: 53 + protocol: TCP + - name: metrics + port: 9153 + protocol: TCP diff --git a/cluster/addons/dns/coredns.yaml.sed b/cluster/addons/dns/coredns.yaml.sed new file mode 100644 index 00000000000..eca384b3ac3 --- /dev/null +++ b/cluster/addons/dns/coredns.yaml.sed @@ -0,0 +1,153 @@ +# Warning: This is a file generated from the base underscore template file: coredns.yaml.base + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: coredns + namespace: kube-system + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + kubernetes.io/bootstrapping: rbac-defaults + addonmanager.kubernetes.io/mode: Reconcile + name: system:coredns +rules: +- apiGroups: + - "" + resources: + - endpoints + - services + - pods + - namespaces + verbs: + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + annotations: + rbac.authorization.kubernetes.io/autoupdate: "true" + labels: + kubernetes.io/bootstrapping: rbac-defaults + addonmanager.kubernetes.io/mode: EnsureExists + name: system:coredns +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:coredns +subjects: +- kind: ServiceAccount + name: coredns + namespace: kube-system +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: coredns + namespace: kube-system + labels: + addonmanager.kubernetes.io/mode: EnsureExists +data: + Corefile: | + .:53 { + errors + log stdout + health + kubernetes $DNS_DOMAIN $SERVICE_CLUSTER_IP_RANGE + prometheus + proxy . /etc/resolv.conf + cache 30 + } +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: coredns + namespace: kube-system + labels: + k8s-app: coredns + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/name: "CoreDNS" +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: coredns + template: + metadata: + labels: + k8s-app: coredns + spec: + serviceAccountName: coredns + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule + - key: "CriticalAddonsOnly" + operator: "Exists" + containers: + - name: coredns + image: coredns/coredns:0.9.10 + imagePullPolicy: IfNotPresent + args: [ "-conf", "/etc/coredns/Corefile" ] + volumeMounts: + - name: config-volume + mountPath: /etc/coredns + ports: + - containerPort: 53 + name: dns + protocol: UDP + - containerPort: 53 + name: dns-tcp + protocol: TCP + - containerPort: 9153 + name: metrics + protocol: TCP + livenessProbe: + httpGet: + path: /health + port: 8080 + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 5 + successThreshold: 1 + failureThreshold: 5 + dnsPolicy: Default + volumes: + - name: config-volume + configMap: + name: coredns + items: + - key: Corefile + path: Corefile +--- +apiVersion: v1 +kind: Service +metadata: + name: coredns + namespace: kube-system + labels: + k8s-app: coredns + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile + kubernetes.io/name: "CoreDNS" +spec: + selector: + k8s-app: coredns + clusterIP: $DNS_SERVER_IP + ports: + - name: dns + port: 53 + protocol: UDP + - name: dns-tcp + port: 53 + protocol: TCP + - name: metrics + port: 9153 + protocol: TCP diff --git a/cluster/addons/dns/transforms2salt.sed b/cluster/addons/dns/transforms2salt.sed index fea818b771d..0a0778b9292 100644 --- a/cluster/addons/dns/transforms2salt.sed +++ b/cluster/addons/dns/transforms2salt.sed @@ -1,3 +1,4 @@ s/__PILLAR__DNS__SERVER__/{{ pillar['dns_server'] }}/g s/__PILLAR__DNS__DOMAIN__/{{ pillar['dns_domain'] }}/g +s/__PILLAR__CLUSTER_CIDR__/{{ pillar['service_cluster_ip_range'] }}/g s/__MACHINE_GENERATED_WARNING__/Warning: This is a file generated from the base underscore template file: __SOURCE_FILENAME__/g diff --git a/cluster/addons/dns/transforms2sed.sed b/cluster/addons/dns/transforms2sed.sed index d5415654f36..7d64f8e0b51 100644 --- a/cluster/addons/dns/transforms2sed.sed +++ b/cluster/addons/dns/transforms2sed.sed @@ -1,3 +1,4 @@ s/__PILLAR__DNS__SERVER__/$DNS_SERVER_IP/g s/__PILLAR__DNS__DOMAIN__/$DNS_DOMAIN/g +s/__PILLAR__CLUSTER_CIDR__/$SERVICE_CLUSTER_IP_RANGE/g s/__MACHINE_GENERATED_WARNING__/Warning: This is a file generated from the base underscore template file: __SOURCE_FILENAME__/g diff --git a/cluster/common.sh b/cluster/common.sh index 579bbfa7a84..6b25936a722 100755 --- a/cluster/common.sh +++ b/cluster/common.sh @@ -622,6 +622,7 @@ ENABLE_RESCHEDULER: $(yaml-quote ${ENABLE_RESCHEDULER:-false}) LOGGING_DESTINATION: $(yaml-quote ${LOGGING_DESTINATION:-}) ELASTICSEARCH_LOGGING_REPLICAS: $(yaml-quote ${ELASTICSEARCH_LOGGING_REPLICAS:-}) ENABLE_CLUSTER_DNS: $(yaml-quote ${ENABLE_CLUSTER_DNS:-false}) +CLUSTER_DNS_CORE_DNS: $(yaml-quote ${CLUSTER_DNS_CORE_DNS:-false}) ENABLE_CLUSTER_REGISTRY: $(yaml-quote ${ENABLE_CLUSTER_REGISTRY:-false}) CLUSTER_REGISTRY_DISK: $(yaml-quote ${CLUSTER_REGISTRY_DISK:-}) CLUSTER_REGISTRY_DISK_SIZE: $(yaml-quote ${CLUSTER_REGISTRY_DISK_SIZE:-}) diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index e86c3877520..0e18a974a8c 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -201,6 +201,7 @@ if [[ ! -z "${NODE_ACCELERATORS}" ]]; then fi # Optional: Install cluster DNS. +CLUSTER_DNS_CORE_DNS="${CLUSTER_DNS_CORE_DNS:-false}" ENABLE_CLUSTER_DNS="${KUBE_ENABLE_CLUSTER_DNS:-true}" DNS_SERVER_IP="${KUBE_DNS_SERVER_IP:-10.0.0.10}" DNS_DOMAIN="${KUBE_DNS_DOMAIN:-cluster.local}" diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index a28b593fff4..3d06fa5cd69 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -238,6 +238,7 @@ if [[ ${KUBE_ENABLE_INSECURE_REGISTRY:-false} == "true" ]]; then fi # Optional: Install cluster DNS. +CLUSTER_DNS_CORE_DNS="${CLUSTER_DNS_CORE_DNS:-true}" ENABLE_CLUSTER_DNS="${KUBE_ENABLE_CLUSTER_DNS:-true}" DNS_SERVER_IP="10.0.0.10" DNS_DOMAIN="cluster.local" diff --git a/cluster/gce/configure-vm.sh b/cluster/gce/configure-vm.sh index 92f61577596..124cff8e9ce 100755 --- a/cluster/gce/configure-vm.sh +++ b/cluster/gce/configure-vm.sh @@ -422,6 +422,7 @@ enable_rescheduler: '$(echo "$ENABLE_RESCHEDULER" | sed -e "s/'/''/g")' logging_destination: '$(echo "$LOGGING_DESTINATION" | sed -e "s/'/''/g")' elasticsearch_replicas: '$(echo "$ELASTICSEARCH_LOGGING_REPLICAS" | sed -e "s/'/''/g")' enable_cluster_dns: '$(echo "$ENABLE_CLUSTER_DNS" | sed -e "s/'/''/g")' +cluster_dns_core_dns: '$(echo "$CLUSTER_DNS_CORE_DNS" | sed -e "s/'/''/g")' enable_cluster_registry: '$(echo "$ENABLE_CLUSTER_REGISTRY" | sed -e "s/'/''/g")' dns_server: '$(echo "$DNS_SERVER_IP" | sed -e "s/'/''/g")' dns_domain: '$(echo "$DNS_DOMAIN" | sed -e "s/'/''/g")' diff --git a/cluster/gce/container-linux/configure-helper.sh b/cluster/gce/container-linux/configure-helper.sh index ac54e662f3f..03f49994a06 100755 --- a/cluster/gce/container-linux/configure-helper.sh +++ b/cluster/gce/container-linux/configure-helper.sh @@ -1293,22 +1293,32 @@ EOF setup-addon-manifests "addons" "metrics-server" fi if [[ "${ENABLE_CLUSTER_DNS:-}" == "true" ]]; then - setup-addon-manifests "addons" "dns" - local -r kubedns_file="${dst_dir}/dns/kube-dns.yaml" - mv "${dst_dir}/dns/kube-dns.yaml.in" "${kubedns_file}" - if [ -n "${CUSTOM_KUBE_DNS_YAML:-}" ]; then - # Replace with custom GKE kube-dns deployment. - cat > "${kubedns_file}" < "${kubedns_file}" < "${kubedns_file}" < "${kubedns_file}" < Date: Tue, 14 Nov 2017 16:44:52 -0500 Subject: [PATCH 03/11] comment --- cluster/gce/config-default.sh | 1 + cluster/gce/config-test.sh | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index 0e18a974a8c..c8463f8f2b7 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -201,6 +201,7 @@ if [[ ! -z "${NODE_ACCELERATORS}" ]]; then fi # Optional: Install cluster DNS. +# Set CLUSTER_DNS_CORE_DNS to 'true' to install CoreDNS instead of kube-dns. CLUSTER_DNS_CORE_DNS="${CLUSTER_DNS_CORE_DNS:-false}" ENABLE_CLUSTER_DNS="${KUBE_ENABLE_CLUSTER_DNS:-true}" DNS_SERVER_IP="${KUBE_DNS_SERVER_IP:-10.0.0.10}" diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index 3d06fa5cd69..42b9f47856a 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -238,7 +238,8 @@ if [[ ${KUBE_ENABLE_INSECURE_REGISTRY:-false} == "true" ]]; then fi # Optional: Install cluster DNS. -CLUSTER_DNS_CORE_DNS="${CLUSTER_DNS_CORE_DNS:-true}" +# Set CLUSTER_DNS_CORE_DNS to 'true' to install CoreDNS instead of kube-dns. +CLUSTER_DNS_CORE_DNS="${CLUSTER_DNS_CORE_DNS:-false}" ENABLE_CLUSTER_DNS="${KUBE_ENABLE_CLUSTER_DNS:-true}" DNS_SERVER_IP="10.0.0.10" DNS_DOMAIN="cluster.local" From 134487191d37e314149fe0943b10a561c42eb526 Mon Sep 17 00:00:00 2001 From: Sandeep Rajan Date: Wed, 15 Nov 2017 11:35:05 -0500 Subject: [PATCH 04/11] create fn for dns manifests --- cluster/addons/dns/coredns.yaml.base | 6 ++ cluster/addons/dns/coredns.yaml.in | 6 ++ cluster/addons/dns/coredns.yaml.sed | 6 ++ .../gce/container-linux/configure-helper.sh | 57 +++++++++++-------- cluster/gce/gci/configure-helper.sh | 57 +++++++++++-------- 5 files changed, 84 insertions(+), 48 deletions(-) diff --git a/cluster/addons/dns/coredns.yaml.base b/cluster/addons/dns/coredns.yaml.base index 5f2de11d915..4976ac09a6f 100644 --- a/cluster/addons/dns/coredns.yaml.base +++ b/cluster/addons/dns/coredns.yaml.base @@ -95,6 +95,12 @@ spec: - name: coredns image: coredns/coredns:0.9.10 imagePullPolicy: IfNotPresent + resources: + limits: + memory: 170Mi + requests: + cpu: 100m + memory: 70Mi args: [ "-conf", "/etc/coredns/Corefile" ] volumeMounts: - name: config-volume diff --git a/cluster/addons/dns/coredns.yaml.in b/cluster/addons/dns/coredns.yaml.in index c0cb9628ccf..d2eb1b35796 100644 --- a/cluster/addons/dns/coredns.yaml.in +++ b/cluster/addons/dns/coredns.yaml.in @@ -95,6 +95,12 @@ spec: - name: coredns image: coredns/coredns:0.9.10 imagePullPolicy: IfNotPresent + resources: + limits: + memory: 170Mi + requests: + cpu: 100m + memory: 70Mi args: [ "-conf", "/etc/coredns/Corefile" ] volumeMounts: - name: config-volume diff --git a/cluster/addons/dns/coredns.yaml.sed b/cluster/addons/dns/coredns.yaml.sed index eca384b3ac3..329ad6ca23f 100644 --- a/cluster/addons/dns/coredns.yaml.sed +++ b/cluster/addons/dns/coredns.yaml.sed @@ -95,6 +95,12 @@ spec: - name: coredns image: coredns/coredns:0.9.10 imagePullPolicy: IfNotPresent + resources: + limits: + memory: 170Mi + requests: + cpu: 100m + memory: 70Mi args: [ "-conf", "/etc/coredns/Corefile" ] volumeMounts: - name: config-volume diff --git a/cluster/gce/container-linux/configure-helper.sh b/cluster/gce/container-linux/configure-helper.sh index 03f49994a06..8daea4d0864 100755 --- a/cluster/gce/container-linux/configure-helper.sh +++ b/cluster/gce/container-linux/configure-helper.sh @@ -1228,6 +1228,36 @@ function update-prometheus-to-sd-parameters { fi } +# Prepares the manifests of coreDNS for k8s addons. +function setup-coredns-manifest { + local -r coredns_file="${dst_dir}/dns/coredns.yaml" + mv "${dst_dir}/dns/coredns.yaml.in" "${coredns_file}" + # Replace the salt configurations with variable values. + sed -i -e "s@{{ *pillar\['dns_domain'\] *}}@${DNS_DOMAIN}@g" "${coredns_file}" + sed -i -e "s@{{ *pillar\['dns_server'\] *}}@${DNS_SERVER_IP}@g" "${coredns_file}" + sed -i -e "s@{{ *pillar\['service_cluster_ip_range'\] *}}@${SERVICE_CLUSTER_IP_RANGE}@g" "${coredns_file}" +} + +# Prepares the manifests of kube-dns for k8s addons. +function setup-kube-dns-manifest { + local -r kubedns_file="${dst_dir}/dns/kube-dns.yaml" + mv "${dst_dir}/dns/kube-dns.yaml.in" "${kubedns_file}" + if [ -n "${CUSTOM_KUBE_DNS_YAML:-}" ]; then + # Replace with custom GKE kube-dns deployment. + cat > "${kubedns_file}" < "${kubedns_file}" < "${kubedns_file}" < "${kubedns_file}" < Date: Thu, 16 Nov 2017 09:13:13 -0500 Subject: [PATCH 05/11] fix indent --- .../gce/container-linux/configure-helper.sh | 38 +++++++++---------- cluster/gce/gci/configure-helper.sh | 34 ++++++++--------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/cluster/gce/container-linux/configure-helper.sh b/cluster/gce/container-linux/configure-helper.sh index 8daea4d0864..a543595c9fc 100755 --- a/cluster/gce/container-linux/configure-helper.sh +++ b/cluster/gce/container-linux/configure-helper.sh @@ -1228,34 +1228,34 @@ function update-prometheus-to-sd-parameters { fi } -# Prepares the manifests of coreDNS for k8s addons. +# Sets up the manifests of coreDNS for k8s addons. function setup-coredns-manifest { local -r coredns_file="${dst_dir}/dns/coredns.yaml" - mv "${dst_dir}/dns/coredns.yaml.in" "${coredns_file}" - # Replace the salt configurations with variable values. - sed -i -e "s@{{ *pillar\['dns_domain'\] *}}@${DNS_DOMAIN}@g" "${coredns_file}" - sed -i -e "s@{{ *pillar\['dns_server'\] *}}@${DNS_SERVER_IP}@g" "${coredns_file}" - sed -i -e "s@{{ *pillar\['service_cluster_ip_range'\] *}}@${SERVICE_CLUSTER_IP_RANGE}@g" "${coredns_file}" + mv "${dst_dir}/dns/coredns.yaml.in" "${coredns_file}" + # Replace the salt configurations with variable values. + sed -i -e "s@{{ *pillar\['dns_domain'\] *}}@${DNS_DOMAIN}@g" "${coredns_file}" + sed -i -e "s@{{ *pillar\['dns_server'\] *}}@${DNS_SERVER_IP}@g" "${coredns_file}" + sed -i -e "s@{{ *pillar\['service_cluster_ip_range'\] *}}@${SERVICE_CLUSTER_IP_RANGE}@g" "${coredns_file}" } -# Prepares the manifests of kube-dns for k8s addons. +# Sets up the manifests of kube-dns for k8s addons. function setup-kube-dns-manifest { local -r kubedns_file="${dst_dir}/dns/kube-dns.yaml" - mv "${dst_dir}/dns/kube-dns.yaml.in" "${kubedns_file}" - if [ -n "${CUSTOM_KUBE_DNS_YAML:-}" ]; then - # Replace with custom GKE kube-dns deployment. - cat > "${kubedns_file}" < "${kubedns_file}" < "${kubedns_file}" < "${kubedns_file}" < Date: Sat, 25 Nov 2017 08:50:01 +0800 Subject: [PATCH 06/11] fix bad return Error --- pkg/cloudprovider/providers/cloudstack/metadata.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cloudprovider/providers/cloudstack/metadata.go b/pkg/cloudprovider/providers/cloudstack/metadata.go index 0ec991d1980..1d76b609a32 100644 --- a/pkg/cloudprovider/providers/cloudstack/metadata.go +++ b/pkg/cloudprovider/providers/cloudstack/metadata.go @@ -91,7 +91,7 @@ func (m *metadata) InstanceID(name types.NodeName) (string, error) { // InstanceType returns the type of the specified instance. func (m *metadata) InstanceType(name types.NodeName) (string, error) { instanceType, err := m.get(metadataTypeInstanceType) - if err == nil { + if err != nil { return "", fmt.Errorf("could not get instance type: %v", err) } From 92117f69e3a89c04a64b680e982d67cec780a7b0 Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Fri, 24 Nov 2017 16:58:04 +0800 Subject: [PATCH 07/11] add kube config file of kube-proxy to kube-proxy config map --- cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go index 88581a1dc0a..948956e46d9 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/defaults.go @@ -65,6 +65,8 @@ const ( DefaultProxyBindAddressv4 = "0.0.0.0" // DefaultProxyBindAddressv6 is the default bind address when the advertise address is v6 DefaultProxyBindAddressv6 = "::" + // KubeproxyKubeConfigFileName efines the file name for the kube-proxy's KubeConfig file + KubeproxyKubeConfigFileName = "/var/lib/kube-proxy/kubeconfig.conf" ) func addDefaultingFuncs(scheme *runtime.Scheme) error { @@ -127,6 +129,10 @@ func SetDefaults_ProxyConfiguration(obj *MasterConfiguration) { obj.KubeProxy.Config.ClusterCIDR = obj.Networking.PodSubnet } + if obj.KubeProxy.Config.ClientConnection.KubeConfigFile == "" { + obj.KubeProxy.Config.ClientConnection.KubeConfigFile = KubeproxyKubeConfigFileName + } + kubeproxyscheme.Scheme.Default(obj.KubeProxy.Config) } From f8ea46e8fe3d4162eef71502a130b910a4657b46 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Tue, 14 Nov 2017 14:03:15 +0100 Subject: [PATCH 08/11] Use full gopath for externalTypes --- pkg/apis/admission/v1beta1/doc.go | 2 +- pkg/apis/admissionregistration/v1alpha1/doc.go | 2 +- pkg/apis/apps/v1/doc.go | 2 +- pkg/apis/apps/v1beta1/doc.go | 2 +- pkg/apis/apps/v1beta2/doc.go | 2 +- pkg/apis/authentication/v1/doc.go | 2 +- pkg/apis/authentication/v1beta1/doc.go | 2 +- pkg/apis/authorization/v1/doc.go | 2 +- pkg/apis/authorization/v1beta1/doc.go | 2 +- pkg/apis/autoscaling/v1/doc.go | 2 +- pkg/apis/autoscaling/v2beta1/doc.go | 2 +- pkg/apis/batch/v1/doc.go | 2 +- pkg/apis/batch/v1beta1/doc.go | 2 +- pkg/apis/batch/v2alpha1/doc.go | 2 +- pkg/apis/certificates/v1beta1/doc.go | 2 +- pkg/apis/core/v1/doc.go | 2 +- pkg/apis/extensions/v1beta1/doc.go | 2 +- pkg/apis/imagepolicy/v1alpha1/doc.go | 2 +- pkg/apis/networking/v1/doc.go | 2 +- pkg/apis/policy/v1beta1/doc.go | 2 +- pkg/apis/rbac/v1/doc.go | 2 +- pkg/apis/rbac/v1alpha1/doc.go | 2 +- pkg/apis/rbac/v1beta1/doc.go | 2 +- pkg/apis/scheduling/v1alpha1/doc.go | 2 +- pkg/apis/settings/v1alpha1/doc.go | 2 +- pkg/apis/storage/v1/doc.go | 2 +- pkg/apis/storage/v1beta1/doc.go | 2 +- staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go | 2 +- staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go | 2 +- staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go | 2 +- .../src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go | 2 +- .../code-generator/cmd/conversion-gen/generators/conversion.go | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/pkg/apis/admission/v1beta1/doc.go b/pkg/apis/admission/v1beta1/doc.go index 7f7cd50fb3c..1bb4d198e48 100644 --- a/pkg/apis/admission/v1beta1/doc.go +++ b/pkg/apis/admission/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/admission -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/admission/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/admission/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/admission/v1beta1 diff --git a/pkg/apis/admissionregistration/v1alpha1/doc.go b/pkg/apis/admissionregistration/v1alpha1/doc.go index 99bc92f3088..43fd23dabf6 100644 --- a/pkg/apis/admissionregistration/v1alpha1/doc.go +++ b/pkg/apis/admissionregistration/v1alpha1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/admissionregistration -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/admissionregistration/v1alpha1 +// +k8s:conversion-gen-external-types=k8s.io/api/admissionregistration/v1alpha1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/admissionregistration/v1alpha1 diff --git a/pkg/apis/apps/v1/doc.go b/pkg/apis/apps/v1/doc.go index 771f2829623..b70ddca6da8 100644 --- a/pkg/apis/apps/v1/doc.go +++ b/pkg/apis/apps/v1/doc.go @@ -16,7 +16,7 @@ limitations under the License. // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/apps // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/apps/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/apps/v1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/apps/v1 diff --git a/pkg/apis/apps/v1beta1/doc.go b/pkg/apis/apps/v1beta1/doc.go index 4a11a5834d3..d4672d4f3fd 100644 --- a/pkg/apis/apps/v1beta1/doc.go +++ b/pkg/apis/apps/v1beta1/doc.go @@ -17,7 +17,7 @@ limitations under the License. // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/apps // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/apps/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/apps/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/apps/v1beta1 diff --git a/pkg/apis/apps/v1beta2/doc.go b/pkg/apis/apps/v1beta2/doc.go index 6c8f7c3bc01..cad91c57c3c 100644 --- a/pkg/apis/apps/v1beta2/doc.go +++ b/pkg/apis/apps/v1beta2/doc.go @@ -17,7 +17,7 @@ limitations under the License. // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/apps // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/apps/v1beta2 +// +k8s:conversion-gen-external-types=k8s.io/api/apps/v1beta2 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/apps/v1beta2 diff --git a/pkg/apis/authentication/v1/doc.go b/pkg/apis/authentication/v1/doc.go index 39ad62a8e9e..50ec02077ff 100644 --- a/pkg/apis/authentication/v1/doc.go +++ b/pkg/apis/authentication/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/authentication -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/authentication/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/authentication/v1 // +groupName=authentication.k8s.io // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/authentication/v1 diff --git a/pkg/apis/authentication/v1beta1/doc.go b/pkg/apis/authentication/v1beta1/doc.go index 2c477c52c74..7f7a5ffa3be 100644 --- a/pkg/apis/authentication/v1beta1/doc.go +++ b/pkg/apis/authentication/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/authentication -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/authentication/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/authentication/v1beta1 // +groupName=authentication.k8s.io // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/authentication/v1beta1 diff --git a/pkg/apis/authorization/v1/doc.go b/pkg/apis/authorization/v1/doc.go index 5d3af7912e7..11b7605c898 100644 --- a/pkg/apis/authorization/v1/doc.go +++ b/pkg/apis/authorization/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/authorization -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/authorization/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/authorization/v1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/authorization/v1 diff --git a/pkg/apis/authorization/v1beta1/doc.go b/pkg/apis/authorization/v1beta1/doc.go index 76c8fad1160..a958fa36550 100644 --- a/pkg/apis/authorization/v1beta1/doc.go +++ b/pkg/apis/authorization/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/authorization -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/authorization/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/authorization/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/authorization/v1beta1 diff --git a/pkg/apis/autoscaling/v1/doc.go b/pkg/apis/autoscaling/v1/doc.go index 461e081a116..4ba5b923633 100644 --- a/pkg/apis/autoscaling/v1/doc.go +++ b/pkg/apis/autoscaling/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/autoscaling/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/autoscaling/v1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/autoscaling/v1 diff --git a/pkg/apis/autoscaling/v2beta1/doc.go b/pkg/apis/autoscaling/v2beta1/doc.go index 7b8df7617cc..411ef58dcf7 100644 --- a/pkg/apis/autoscaling/v2beta1/doc.go +++ b/pkg/apis/autoscaling/v2beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/autoscaling/v2beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/autoscaling/v2beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/autoscaling/v2beta1 diff --git a/pkg/apis/batch/v1/doc.go b/pkg/apis/batch/v1/doc.go index 87d9c2969c3..835d2952969 100644 --- a/pkg/apis/batch/v1/doc.go +++ b/pkg/apis/batch/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/batch -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/batch/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/batch/v1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/batch/v1 diff --git a/pkg/apis/batch/v1beta1/doc.go b/pkg/apis/batch/v1beta1/doc.go index 6c3e65dcb3d..91d32c5f313 100644 --- a/pkg/apis/batch/v1beta1/doc.go +++ b/pkg/apis/batch/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/batch -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/batch/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/batch/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/batch/v1beta1 diff --git a/pkg/apis/batch/v2alpha1/doc.go b/pkg/apis/batch/v2alpha1/doc.go index 8fbe1041968..dabf0dc394c 100644 --- a/pkg/apis/batch/v2alpha1/doc.go +++ b/pkg/apis/batch/v2alpha1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/batch -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/batch/v2alpha1 +// +k8s:conversion-gen-external-types=k8s.io/api/batch/v2alpha1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/batch/v2alpha1 diff --git a/pkg/apis/certificates/v1beta1/doc.go b/pkg/apis/certificates/v1beta1/doc.go index e2315d387fb..d5f13dfff3a 100644 --- a/pkg/apis/certificates/v1beta1/doc.go +++ b/pkg/apis/certificates/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/certificates -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/certificates/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/certificates/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/certificates/v1beta1 diff --git a/pkg/apis/core/v1/doc.go b/pkg/apis/core/v1/doc.go index 23f0e8ef762..454e3018316 100644 --- a/pkg/apis/core/v1/doc.go +++ b/pkg/apis/core/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/core -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/core/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/core/v1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/core/v1 diff --git a/pkg/apis/extensions/v1beta1/doc.go b/pkg/apis/extensions/v1beta1/doc.go index 0d778368f1b..da219b9d221 100644 --- a/pkg/apis/extensions/v1beta1/doc.go +++ b/pkg/apis/extensions/v1beta1/doc.go @@ -16,7 +16,7 @@ limitations under the License. // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/autoscaling -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/extensions/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/extensions/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/extensions/v1beta1 diff --git a/pkg/apis/imagepolicy/v1alpha1/doc.go b/pkg/apis/imagepolicy/v1alpha1/doc.go index dbd99ca4862..b517ce45438 100644 --- a/pkg/apis/imagepolicy/v1alpha1/doc.go +++ b/pkg/apis/imagepolicy/v1alpha1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/imagepolicy -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/imagepolicy/v1alpha1 +// +k8s:conversion-gen-external-types=k8s.io/api/imagepolicy/v1alpha1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/imagepolicy/v1alpha1 diff --git a/pkg/apis/networking/v1/doc.go b/pkg/apis/networking/v1/doc.go index d069022f53d..f53cbf3dc65 100644 --- a/pkg/apis/networking/v1/doc.go +++ b/pkg/apis/networking/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/networking -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/networking/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/networking/v1 // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/networking/v1 diff --git a/pkg/apis/policy/v1beta1/doc.go b/pkg/apis/policy/v1beta1/doc.go index f5500bb4b9f..9629da3fcd4 100644 --- a/pkg/apis/policy/v1beta1/doc.go +++ b/pkg/apis/policy/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/policy -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/policy/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/policy/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/policy/v1beta1 diff --git a/pkg/apis/rbac/v1/doc.go b/pkg/apis/rbac/v1/doc.go index 6dec982b781..1668eabe3b8 100644 --- a/pkg/apis/rbac/v1/doc.go +++ b/pkg/apis/rbac/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/rbac -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/rbac/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/rbac/v1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/rbac/v1 diff --git a/pkg/apis/rbac/v1alpha1/doc.go b/pkg/apis/rbac/v1alpha1/doc.go index fa6dbc5cdc8..365f3881436 100644 --- a/pkg/apis/rbac/v1alpha1/doc.go +++ b/pkg/apis/rbac/v1alpha1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/rbac -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/rbac/v1alpha1 +// +k8s:conversion-gen-external-types=k8s.io/api/rbac/v1alpha1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/rbac/v1alpha1 diff --git a/pkg/apis/rbac/v1beta1/doc.go b/pkg/apis/rbac/v1beta1/doc.go index 3ae3e51d512..7ba759013a2 100644 --- a/pkg/apis/rbac/v1beta1/doc.go +++ b/pkg/apis/rbac/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/rbac -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/rbac/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/rbac/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/rbac/v1beta1 diff --git a/pkg/apis/scheduling/v1alpha1/doc.go b/pkg/apis/scheduling/v1alpha1/doc.go index 115597cc3b8..e2bf21c7697 100644 --- a/pkg/apis/scheduling/v1alpha1/doc.go +++ b/pkg/apis/scheduling/v1alpha1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/scheduling -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/scheduling/v1alpha1 +// +k8s:conversion-gen-external-types=k8s.io/api/scheduling/v1alpha1 // +groupName=scheduling.k8s.io // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/scheduling/v1alpha1 diff --git a/pkg/apis/settings/v1alpha1/doc.go b/pkg/apis/settings/v1alpha1/doc.go index cdc4161eb0e..4422bb3e77b 100644 --- a/pkg/apis/settings/v1alpha1/doc.go +++ b/pkg/apis/settings/v1alpha1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/settings -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/settings/v1alpha1 +// +k8s:conversion-gen-external-types=k8s.io/api/settings/v1alpha1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/settings/v1alpha1 diff --git a/pkg/apis/storage/v1/doc.go b/pkg/apis/storage/v1/doc.go index 3a5b7ac2dd1..617aa14c1aa 100644 --- a/pkg/apis/storage/v1/doc.go +++ b/pkg/apis/storage/v1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/storage -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/storage/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/storage/v1 // +groupName=storage.k8s.io // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/storage/v1 diff --git a/pkg/apis/storage/v1beta1/doc.go b/pkg/apis/storage/v1beta1/doc.go index b47a5044921..a5b0ca68ab8 100644 --- a/pkg/apis/storage/v1beta1/doc.go +++ b/pkg/apis/storage/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/storage -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/storage/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/storage/v1beta1 // +groupName=storage.k8s.io // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/storage/v1beta1 diff --git a/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go b/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go index e229af3b8fc..830619b449f 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go +++ b/staging/src/k8s.io/client-go/scale/scheme/appsv1beta1/doc.go @@ -15,6 +15,6 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme -// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/apps/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/apps/v1beta1 package appsv1beta1 // import "k8s.io/client-go/scale/scheme/appsv1beta1" diff --git a/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go b/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go index 40b7a89b540..c21a56d5693 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go +++ b/staging/src/k8s.io/client-go/scale/scheme/appsv1beta2/doc.go @@ -15,6 +15,6 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme -// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/apps/v1beta2 +// +k8s:conversion-gen-external-types=k8s.io/api/apps/v1beta2 package appsv1beta2 // import "k8s.io/client-go/scale/scheme/appsv1beta2" diff --git a/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go b/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go index aff53e4c37b..03684dd90d9 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go +++ b/staging/src/k8s.io/client-go/scale/scheme/autoscalingv1/doc.go @@ -15,6 +15,6 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme -// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/autoscaling/v1 +// +k8s:conversion-gen-external-types=k8s.io/api/autoscaling/v1 package autoscalingv1 // import "k8s.io/client-go/scale/scheme/autoscalingv1" diff --git a/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go b/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go index 40d0fc0e959..1e719884f07 100644 --- a/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go +++ b/staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1/doc.go @@ -15,6 +15,6 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/vendor/k8s.io/client-go/scale/scheme -// +k8s:conversion-gen-external-types=../../../../../k8s.io/api/extensions/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/extensions/v1beta1 package extensionsv1beta1 // import "k8s.io/client-go/scale/scheme/extensionsv1beta1" diff --git a/staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go b/staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go index b784950552e..ed7ab27eb20 100644 --- a/staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go +++ b/staging/src/k8s.io/code-generator/cmd/conversion-gen/generators/conversion.go @@ -279,7 +279,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat externalTypes := externalTypesValues[0] glog.V(5).Infof(" external types tags: %q", externalTypes) var err error - typesPkg, err = context.AddDirectory(filepath.Join(pkg.Path, externalTypes)) + typesPkg, err = context.AddDirectory(externalTypes) if err != nil { glog.Fatalf("cannot import package %s", externalTypes) } From cf699b6519b516ccb5d26964f964aaced8112663 Mon Sep 17 00:00:00 2001 From: xiangpengzhao Date: Sat, 25 Nov 2017 23:59:57 +0800 Subject: [PATCH 09/11] Use full gopath for externalTypes of missing API groups. --- pkg/apis/admissionregistration/v1beta1/doc.go | 2 +- pkg/apis/events/v1beta1/doc.go | 2 +- pkg/apis/storage/v1alpha1/doc.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/apis/admissionregistration/v1beta1/doc.go b/pkg/apis/admissionregistration/v1beta1/doc.go index 09dc2599354..cf03718ed26 100644 --- a/pkg/apis/admissionregistration/v1beta1/doc.go +++ b/pkg/apis/admissionregistration/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/admissionregistration -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/admissionregistration/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/admissionregistration/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/admissionregistration/v1beta1 diff --git a/pkg/apis/events/v1beta1/doc.go b/pkg/apis/events/v1beta1/doc.go index 05932850418..174190914fa 100644 --- a/pkg/apis/events/v1beta1/doc.go +++ b/pkg/apis/events/v1beta1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/events -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/events/v1beta1 +// +k8s:conversion-gen-external-types=k8s.io/api/events/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/events/v1beta1 diff --git a/pkg/apis/storage/v1alpha1/doc.go b/pkg/apis/storage/v1alpha1/doc.go index 5c1f6059d3e..07c766c3a28 100644 --- a/pkg/apis/storage/v1alpha1/doc.go +++ b/pkg/apis/storage/v1alpha1/doc.go @@ -15,7 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/storage -// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/storage/v1alpha1 +// +k8s:conversion-gen-external-types=k8s.io/api/storage/v1alpha1 // +groupName=storage.k8s.io // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/storage/v1alpha1 From 0a3cf593960128147edd1d964e913f0d554ea12b Mon Sep 17 00:00:00 2001 From: Marcin Wielgus Date: Sat, 25 Nov 2017 16:37:13 -0500 Subject: [PATCH 10/11] Update CHANGELOG-1.7.md for v1.7.11. --- CHANGELOG-1.7.md | 200 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 138 insertions(+), 62 deletions(-) diff --git a/CHANGELOG-1.7.md b/CHANGELOG-1.7.md index a4828d21fdb..68f2541844b 100644 --- a/CHANGELOG-1.7.md +++ b/CHANGELOG-1.7.md @@ -1,79 +1,86 @@ -- [v1.7.10](#v1710) - - [Downloads for v1.7.10](#downloads-for-v1710) +- [v1.7.11](#v1711) + - [Downloads for v1.7.11](#downloads-for-v1711) - [Client Binaries](#client-binaries) - [Server Binaries](#server-binaries) - [Node Binaries](#node-binaries) - - [Changelog since v1.7.9](#changelog-since-v179) + - [Changelog since v1.7.10](#changelog-since-v1710) - [Other notable changes](#other-notable-changes) -- [v1.7.9](#v179) - - [Downloads for v1.7.9](#downloads-for-v179) +- [v1.7.10](#v1710) + - [Downloads for v1.7.10](#downloads-for-v1710) - [Client Binaries](#client-binaries-1) - [Server Binaries](#server-binaries-1) - [Node Binaries](#node-binaries-1) - - [Changelog since v1.7.8](#changelog-since-v178) + - [Changelog since v1.7.9](#changelog-since-v179) - [Other notable changes](#other-notable-changes-1) -- [v1.7.8](#v178) - - [Downloads for v1.7.8](#downloads-for-v178) +- [v1.7.9](#v179) + - [Downloads for v1.7.9](#downloads-for-v179) - [Client Binaries](#client-binaries-2) - [Server Binaries](#server-binaries-2) - [Node Binaries](#node-binaries-2) - - [Changelog since v1.7.7](#changelog-since-v177) + - [Changelog since v1.7.8](#changelog-since-v178) - [Other notable changes](#other-notable-changes-2) -- [v1.7.7](#v177) - - [Downloads for v1.7.7](#downloads-for-v177) +- [v1.7.8](#v178) + - [Downloads for v1.7.8](#downloads-for-v178) - [Client Binaries](#client-binaries-3) - [Server Binaries](#server-binaries-3) - [Node Binaries](#node-binaries-3) - - [Changelog since v1.7.6](#changelog-since-v176) + - [Changelog since v1.7.7](#changelog-since-v177) - [Other notable changes](#other-notable-changes-3) -- [v1.7.6](#v176) - - [Downloads for v1.7.6](#downloads-for-v176) +- [v1.7.7](#v177) + - [Downloads for v1.7.7](#downloads-for-v177) - [Client Binaries](#client-binaries-4) - [Server Binaries](#server-binaries-4) - [Node Binaries](#node-binaries-4) - - [Changelog since v1.7.5](#changelog-since-v175) + - [Changelog since v1.7.6](#changelog-since-v176) - [Other notable changes](#other-notable-changes-4) -- [v1.7.5](#v175) - - [Downloads for v1.7.5](#downloads-for-v175) +- [v1.7.6](#v176) + - [Downloads for v1.7.6](#downloads-for-v176) - [Client Binaries](#client-binaries-5) - [Server Binaries](#server-binaries-5) - [Node Binaries](#node-binaries-5) - - [Changelog since v1.7.4](#changelog-since-v174) + - [Changelog since v1.7.5](#changelog-since-v175) - [Other notable changes](#other-notable-changes-5) -- [v1.7.4](#v174) - - [Downloads for v1.7.4](#downloads-for-v174) +- [v1.7.5](#v175) + - [Downloads for v1.7.5](#downloads-for-v175) - [Client Binaries](#client-binaries-6) - [Server Binaries](#server-binaries-6) - [Node Binaries](#node-binaries-6) - - [Changelog since v1.7.3](#changelog-since-v173) + - [Changelog since v1.7.4](#changelog-since-v174) - [Other notable changes](#other-notable-changes-6) -- [v1.7.3](#v173) - - [Downloads for v1.7.3](#downloads-for-v173) +- [v1.7.4](#v174) + - [Downloads for v1.7.4](#downloads-for-v174) - [Client Binaries](#client-binaries-7) - [Server Binaries](#server-binaries-7) - [Node Binaries](#node-binaries-7) - - [Changelog since v1.7.2](#changelog-since-v172) + - [Changelog since v1.7.3](#changelog-since-v173) - [Other notable changes](#other-notable-changes-7) -- [v1.7.2](#v172) - - [Downloads for v1.7.2](#downloads-for-v172) +- [v1.7.3](#v173) + - [Downloads for v1.7.3](#downloads-for-v173) - [Client Binaries](#client-binaries-8) - [Server Binaries](#server-binaries-8) - [Node Binaries](#node-binaries-8) - - [Changelog since v1.7.1](#changelog-since-v171) + - [Changelog since v1.7.2](#changelog-since-v172) - [Other notable changes](#other-notable-changes-8) -- [v1.7.1](#v171) - - [Downloads for v1.7.1](#downloads-for-v171) +- [v1.7.2](#v172) + - [Downloads for v1.7.2](#downloads-for-v172) - [Client Binaries](#client-binaries-9) - [Server Binaries](#server-binaries-9) - [Node Binaries](#node-binaries-9) - - [Changelog since v1.7.0](#changelog-since-v170) + - [Changelog since v1.7.1](#changelog-since-v171) - [Other notable changes](#other-notable-changes-9) -- [v1.7.0](#v170) - - [Downloads for v1.7.0](#downloads-for-v170) +- [v1.7.1](#v171) + - [Downloads for v1.7.1](#downloads-for-v171) - [Client Binaries](#client-binaries-10) - [Server Binaries](#server-binaries-10) - [Node Binaries](#node-binaries-10) + - [Changelog since v1.7.0](#changelog-since-v170) + - [Other notable changes](#other-notable-changes-10) +- [v1.7.0](#v170) + - [Downloads for v1.7.0](#downloads-for-v170) + - [Client Binaries](#client-binaries-11) + - [Server Binaries](#server-binaries-11) + - [Node Binaries](#node-binaries-11) - [**Major Themes**](#major-themes) - [**Action Required Before Upgrading**](#action-required-before-upgrading) - [Network](#network) @@ -129,7 +136,7 @@ - [Local Storage](#local-storage) - [Volume Plugins](#volume-plugins) - [Metrics](#metrics) - - [**Other notable changes**](#other-notable-changes-10) + - [**Other notable changes**](#other-notable-changes-11) - [Admission plugin](#admission-plugin) - [API Machinery](#api-machinery-1) - [Application autoscaling](#application-autoscaling-1) @@ -157,62 +164,131 @@ - [Previous Releases Included in v1.7.0](#previous-releases-included-in-v170) - [v1.7.0-rc.1](#v170-rc1) - [Downloads for v1.7.0-rc.1](#downloads-for-v170-rc1) - - [Client Binaries](#client-binaries-11) - - [Server Binaries](#server-binaries-11) - - [Node Binaries](#node-binaries-11) - - [Changelog since v1.7.0-beta.2](#changelog-since-v170-beta2) - - [Action Required](#action-required) - - [Other notable changes](#other-notable-changes-11) -- [v1.7.0-beta.2](#v170-beta2) - - [Downloads for v1.7.0-beta.2](#downloads-for-v170-beta2) - [Client Binaries](#client-binaries-12) - [Server Binaries](#server-binaries-12) - [Node Binaries](#node-binaries-12) - - [Changelog since v1.7.0-beta.1](#changelog-since-v170-beta1) - - [Action Required](#action-required-1) + - [Changelog since v1.7.0-beta.2](#changelog-since-v170-beta2) + - [Action Required](#action-required) - [Other notable changes](#other-notable-changes-12) -- [v1.7.0-beta.1](#v170-beta1) - - [Downloads for v1.7.0-beta.1](#downloads-for-v170-beta1) +- [v1.7.0-beta.2](#v170-beta2) + - [Downloads for v1.7.0-beta.2](#downloads-for-v170-beta2) - [Client Binaries](#client-binaries-13) - [Server Binaries](#server-binaries-13) - [Node Binaries](#node-binaries-13) - - [Changelog since v1.7.0-alpha.4](#changelog-since-v170-alpha4) - - [Action Required](#action-required-2) + - [Changelog since v1.7.0-beta.1](#changelog-since-v170-beta1) + - [Action Required](#action-required-1) - [Other notable changes](#other-notable-changes-13) -- [v1.7.0-alpha.4](#v170-alpha4) - - [Downloads for v1.7.0-alpha.4](#downloads-for-v170-alpha4) +- [v1.7.0-beta.1](#v170-beta1) + - [Downloads for v1.7.0-beta.1](#downloads-for-v170-beta1) - [Client Binaries](#client-binaries-14) - [Server Binaries](#server-binaries-14) - [Node Binaries](#node-binaries-14) - - [Changelog since v1.7.0-alpha.3](#changelog-since-v170-alpha3) - - [Action Required](#action-required-3) + - [Changelog since v1.7.0-alpha.4](#changelog-since-v170-alpha4) + - [Action Required](#action-required-2) - [Other notable changes](#other-notable-changes-14) -- [v1.7.0-alpha.3](#v170-alpha3) - - [Downloads for v1.7.0-alpha.3](#downloads-for-v170-alpha3) +- [v1.7.0-alpha.4](#v170-alpha4) + - [Downloads for v1.7.0-alpha.4](#downloads-for-v170-alpha4) - [Client Binaries](#client-binaries-15) - [Server Binaries](#server-binaries-15) - [Node Binaries](#node-binaries-15) - - [Changelog since v1.7.0-alpha.2](#changelog-since-v170-alpha2) - - [Action Required](#action-required-4) + - [Changelog since v1.7.0-alpha.3](#changelog-since-v170-alpha3) + - [Action Required](#action-required-3) - [Other notable changes](#other-notable-changes-15) -- [v1.7.0-alpha.2](#v170-alpha2) - - [Downloads for v1.7.0-alpha.2](#downloads-for-v170-alpha2) +- [v1.7.0-alpha.3](#v170-alpha3) + - [Downloads for v1.7.0-alpha.3](#downloads-for-v170-alpha3) - [Client Binaries](#client-binaries-16) - [Server Binaries](#server-binaries-16) - - [Changelog since v1.7.0-alpha.1](#changelog-since-v170-alpha1) - - [Action Required](#action-required-5) + - [Node Binaries](#node-binaries-16) + - [Changelog since v1.7.0-alpha.2](#changelog-since-v170-alpha2) + - [Action Required](#action-required-4) - [Other notable changes](#other-notable-changes-16) -- [v1.7.0-alpha.1](#v170-alpha1) - - [Downloads for v1.7.0-alpha.1](#downloads-for-v170-alpha1) +- [v1.7.0-alpha.2](#v170-alpha2) + - [Downloads for v1.7.0-alpha.2](#downloads-for-v170-alpha2) - [Client Binaries](#client-binaries-17) - [Server Binaries](#server-binaries-17) - - [Changelog since v1.6.0](#changelog-since-v160) + - [Changelog since v1.7.0-alpha.1](#changelog-since-v170-alpha1) + - [Action Required](#action-required-5) - [Other notable changes](#other-notable-changes-17) +- [v1.7.0-alpha.1](#v170-alpha1) + - [Downloads for v1.7.0-alpha.1](#downloads-for-v170-alpha1) + - [Client Binaries](#client-binaries-18) + - [Server Binaries](#server-binaries-18) + - [Changelog since v1.6.0](#changelog-since-v160) + - [Other notable changes](#other-notable-changes-18) +# v1.7.11 + +[Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.7/examples) + +## Downloads for v1.7.11 + + +filename | sha256 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes.tar.gz) | `0b4c9247784851a6681adf7ed068be75f346179035cdab840d11d4e6dc274aa1` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-src.tar.gz) | `380a7ca5b57dba2c45b64f48c48d1035f191b15687c724d1173a8367097c3451` + +### Client Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-darwin-386.tar.gz) | `6bd9ecc484da25e1d09b8de7fe2ec411e989e56c9456d20bb01ad10823b54dfa` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-darwin-amd64.tar.gz) | `bf723c41ae7599a5ba2dbf8fe62aa19dadb91d243ff248d56a41fa7de9db8699` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-linux-386.tar.gz) | `9ce79fe18a725e1d723c9bb4cefa95d90e8e05276bcc66fb9b809dc7767a939c` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-linux-amd64.tar.gz) | `c3c2af3ad16257853e8a2594779168002d20c7259b9ad6beb6f5f7a57585220e` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-linux-arm64.tar.gz) | `a525d204a4aa45481cd858cadee8d06bc969c81a902f51a6d31a1ab1ed8a9278` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-linux-arm.tar.gz) | `d910e54cdc5e9240a3f1c8f7cf32f28b442d740e8cc7db29742f40bb33e331b8` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-linux-ppc64le.tar.gz) | `eeeee6f6a763348226cc8ef112e83526b09834365fce02a6595b085f25289e9e` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-linux-s390x.tar.gz) | `a6d4581330dfd6f08603674e74016631687d86b9dcca2a8c9d4dacb668d4dc30` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-windows-386.tar.gz) | `6ccf7e4b0321d0dc7befd55d278966de921ea4303043cec6abf4ce13348184db` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-client-windows-amd64.tar.gz) | `233afcd0b0d4bfdc0190b00570aed7f1ed112da511c637fbd64565670f873829` + +### Server Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-server-linux-amd64.tar.gz) | `80a1ad525e92e5d8f9e835c88cfa3e3f5244c287de0cb4cbf98a2496e78fb83d` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-server-linux-arm64.tar.gz) | `3f884b85b60b10209b8b7a5f2f735dfdfeb0afa9380170a1de82a09f7e347603` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-server-linux-arm.tar.gz) | `3ae170d0ce2b781e7ed41941d568c457c7888b0b15a44b7853713e63f5ff9cc1` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-server-linux-ppc64le.tar.gz) | `f19ba4496dbbcb1fae00ce40164ae8de8b35aa871a4f6a7c24e20a9dd6ef7a1f` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-server-linux-s390x.tar.gz) | `3da441a0b7acd2f59fdb3232080d49df29c684aa2260b7010ec37a0730d3e82b` + +### Node Binaries + +filename | sha256 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-node-linux-amd64.tar.gz) | `8ab11a1b7c0ed298d89fe6f1ed9196046f8ac8d5eaecf3803890cefd92deb656` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-node-linux-arm64.tar.gz) | `435c81717e1bf4968db1ec916fe24bd5c4cfedaa339ae7890374f06ce49fa7e6` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-node-linux-arm.tar.gz) | `3a978350045c04bbeeb936cac2aabe6a92040d66ed14f0f30fd44ed03cf9fe0f` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-node-linux-ppc64le.tar.gz) | `82fc341fc4ee9213020894bcf1bd6d34c226f03554507915bdfd379fffd1b608` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-node-linux-s390x.tar.gz) | `e91e97533fab0b759ace3ad0fb7a3ff128cdc38221d55c8a9893bfe056a0ea8f` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.7.11/kubernetes-node-windows-amd64.tar.gz) | `0ebb1aafaa8af8581580d9425705a3535555d65f960eba2c16dfee90080d53e1` + +## Changelog since v1.7.10 + +### Other notable changes + +* Bugfix: master startup script on GCP no longer fails randomly due to concurrent iptables invocations. ([#55945](https://github.com/kubernetes/kubernetes/pull/55945), [@x13n](https://github.com/x13n)) +* Fix bug in mounting volumes with GlusterFS plugin ([#53292](https://github.com/kubernetes/kubernetes/pull/53292), [@humblec](https://github.com/humblec)) +* Add /bin/tee symlink to bazel build for busybox, so that CI builds have /bin/tee ([#55417](https://github.com/kubernetes/kubernetes/pull/55417), [@justinsb](https://github.com/justinsb)) +* Reduce log noise produced by prometheus-to-sd, by bumping it to version 0.2.2. ([#54635](https://github.com/kubernetes/kubernetes/pull/54635), [@loburm](https://github.com/loburm)) +* Fix session affinity issue with external load balancer traffic when ExternalTrafficPolicy=Local. ([#55519](https://github.com/kubernetes/kubernetes/pull/55519), [@MrHohn](https://github.com/MrHohn)) +* Add masquerading rules by default to GCE/GKE ([#55178](https://github.com/kubernetes/kubernetes/pull/55178), [@dnardo](https://github.com/dnardo)) +* Azure cloudprovider: Fix controller manager crash issue on a manually created k8s cluster. ([#53694](https://github.com/kubernetes/kubernetes/pull/53694), [@andyzhangx](https://github.com/andyzhangx)) +* Fix a bug where soft eviction would not trigger when the threshold was crossed ([#52046](https://github.com/kubernetes/kubernetes/pull/52046), [@dashpole](https://github.com/dashpole)) +* Addon manager supports HA masters. ([#55782](https://github.com/kubernetes/kubernetes/pull/55782), [@x13n](https://github.com/x13n)) +* Fixed 'Schedulercache is corrupted' error in kube-scheduler ([#55262](https://github.com/kubernetes/kubernetes/pull/55262), [@liggitt](https://github.com/liggitt)) +* Fix hyperkube kubelet --experimental-dockershim ([#55335](https://github.com/kubernetes/kubernetes/pull/55335), [@ivan4th](https://github.com/ivan4th)) +* fix azure pv crash due to volumeSource.ReadOnly value nil ([#54607](https://github.com/kubernetes/kubernetes/pull/54607), [@andyzhangx](https://github.com/andyzhangx)) +* GCE: provide an option to disable docker's live-restore on COS/ubuntu ([#55260](https://github.com/kubernetes/kubernetes/pull/55260), [@yujuhong](https://github.com/yujuhong)) +* Fix overlay2 container disk metrics for Docker ([#54958](https://github.com/kubernetes/kubernetes/pull/54958), [@dashpole](https://github.com/dashpole)) + + + # v1.7.10 [Documentation](https://docs.k8s.io) & [Examples](https://releases.k8s.io/release-1.7/examples) From 92dd8b50f304ce19d62b8acf23d1b8c4f9bae00b Mon Sep 17 00:00:00 2001 From: Joe Betz Date: Sun, 26 Nov 2017 21:54:50 -0800 Subject: [PATCH 11/11] Reduce memory footprint of admission metrics --- .../pkg/admission/metrics/metrics.go | 49 ++++++++++++------- .../pkg/admission/metrics/metrics_test.go | 3 -- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/admission/metrics/metrics.go b/staging/src/k8s.io/apiserver/pkg/admission/metrics/metrics.go index f50dc18ab1a..0955a98c9b8 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/metrics/metrics.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/metrics/metrics.go @@ -32,7 +32,8 @@ const ( ) var ( - latencyBuckets = prometheus.ExponentialBuckets(25000, 2.0, 7) + // Use buckets ranging from 25 ms to ~2.5 seconds. + latencyBuckets = prometheus.ExponentialBuckets(25000, 2.5, 5) latencySummaryMaxAge = 5 * time.Hour // Metrics provides access to all admission metrics. @@ -112,17 +113,17 @@ func newAdmissionMetrics() *AdmissionMetrics { // Each step is identified by a distinct type label value. step := newMetricSet("step", []string{"type", "operation", "group", "version", "resource", "subresource", "rejected"}, - "Admission sub-step %s, broken out for each operation and API resource and step type (validate or admit).") + "Admission sub-step %s, broken out for each operation and API resource and step type (validate or admit).", true) // Built-in admission controller metrics. Each admission controller is identified by name. controller := newMetricSet("controller", []string{"name", "type", "operation", "group", "version", "resource", "subresource", "rejected"}, - "Admission controller %s, identified by name and broken out for each operation and API resource and type (validate or admit).") + "Admission controller %s, identified by name and broken out for each operation and API resource and type (validate or admit).", false) // Admission webhook metrics. Each webhook is identified by name. webhook := newMetricSet("webhook", []string{"name", "type", "operation", "group", "version", "resource", "subresource", "rejected"}, - "Admission webhook %s, identified by name and broken out for each operation and API resource and type (validate or admit).") + "Admission webhook %s, identified by name and broken out for each operation and API resource and type (validate or admit).", false) step.mustRegister() controller.mustRegister() @@ -159,7 +160,21 @@ type metricSet struct { latenciesSummary *prometheus.SummaryVec } -func newMetricSet(name string, labels []string, helpTemplate string) *metricSet { +func newMetricSet(name string, labels []string, helpTemplate string, hasSummary bool) *metricSet { + var summary *prometheus.SummaryVec + if hasSummary { + summary = prometheus.NewSummaryVec( + prometheus.SummaryOpts{ + Namespace: namespace, + Subsystem: subsystem, + Name: fmt.Sprintf("%s_admission_latencies_seconds_summary", name), + Help: fmt.Sprintf(helpTemplate, "latency summary"), + MaxAge: latencySummaryMaxAge, + }, + labels, + ) + } + return &metricSet{ latencies: prometheus.NewHistogramVec( prometheus.HistogramOpts{ @@ -171,34 +186,32 @@ func newMetricSet(name string, labels []string, helpTemplate string) *metricSet }, labels, ), - latenciesSummary: prometheus.NewSummaryVec( - prometheus.SummaryOpts{ - Namespace: namespace, - Subsystem: subsystem, - Name: fmt.Sprintf("%s_admission_latencies_seconds_summary", name), - Help: fmt.Sprintf(helpTemplate, "latency summary"), - MaxAge: latencySummaryMaxAge, - }, - labels, - ), + + latenciesSummary: summary, } } // MustRegister registers all the prometheus metrics in the metricSet. func (m *metricSet) mustRegister() { prometheus.MustRegister(m.latencies) - prometheus.MustRegister(m.latenciesSummary) + if m.latenciesSummary != nil { + prometheus.MustRegister(m.latenciesSummary) + } } // Reset resets all the prometheus metrics in the metricSet. func (m *metricSet) reset() { m.latencies.Reset() - m.latenciesSummary.Reset() + if m.latenciesSummary != nil { + m.latenciesSummary.Reset() + } } // Observe records an observed admission event to all metrics in the metricSet. func (m *metricSet) observe(elapsed time.Duration, labels ...string) { elapsedMicroseconds := float64(elapsed / time.Microsecond) m.latencies.WithLabelValues(labels...).Observe(elapsedMicroseconds) - m.latenciesSummary.WithLabelValues(labels...).Observe(elapsedMicroseconds) + if m.latenciesSummary != nil { + m.latenciesSummary.WithLabelValues(labels...).Observe(elapsedMicroseconds) + } } diff --git a/staging/src/k8s.io/apiserver/pkg/admission/metrics/metrics_test.go b/staging/src/k8s.io/apiserver/pkg/admission/metrics/metrics_test.go index d2f7fae411b..dff2598ddb4 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/metrics/metrics_test.go +++ b/staging/src/k8s.io/apiserver/pkg/admission/metrics/metrics_test.go @@ -69,11 +69,9 @@ func TestObserveAdmissionController(t *testing.T) { "rejected": "false", } expectHistogramCountTotal(t, "apiserver_admission_controller_admission_latencies_seconds", wantLabels, 1) - expectFindMetric(t, "apiserver_admission_controller_admission_latencies_seconds_summary", wantLabels) wantLabels["type"] = "validate" expectHistogramCountTotal(t, "apiserver_admission_controller_admission_latencies_seconds", wantLabels, 1) - expectFindMetric(t, "apiserver_admission_controller_admission_latencies_seconds_summary", wantLabels) } func TestObserveWebhook(t *testing.T) { @@ -90,7 +88,6 @@ func TestObserveWebhook(t *testing.T) { "rejected": "false", } expectHistogramCountTotal(t, "apiserver_admission_webhook_admission_latencies_seconds", wantLabels, 1) - expectFindMetric(t, "apiserver_admission_webhook_admission_latencies_seconds_summary", wantLabels) } func TestWithMetrics(t *testing.T) {