mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	run kube-addon-manager in a pod
This commit is contained in:
		| @@ -905,9 +905,7 @@ function kube::release::package_kube_manifests_tarball() { | |||||||
|   cp "${salt_dir}/kube-scheduler/kube-scheduler.manifest" "${dst_dir}" |   cp "${salt_dir}/kube-scheduler/kube-scheduler.manifest" "${dst_dir}" | ||||||
|   cp "${salt_dir}/kube-apiserver/kube-apiserver.manifest" "${dst_dir}" |   cp "${salt_dir}/kube-apiserver/kube-apiserver.manifest" "${dst_dir}" | ||||||
|   cp "${salt_dir}/kube-controller-manager/kube-controller-manager.manifest" "${dst_dir}" |   cp "${salt_dir}/kube-controller-manager/kube-controller-manager.manifest" "${dst_dir}" | ||||||
|   cp "${salt_dir}/kube-addons/namespace.yaml" "${dst_dir}" |   cp "${salt_dir}/kube-addons/kube-addon-manager.yaml" "${dst_dir}" | ||||||
|   cp "${salt_dir}/kube-addons/kube-addons.sh" "${dst_dir}" |  | ||||||
|   cp "${salt_dir}/kube-addons/kube-addon-update.sh" "${dst_dir}" |  | ||||||
|   cp "${KUBE_ROOT}/cluster/gce/trusty/configure-helper.sh" "${dst_dir}" |   cp "${KUBE_ROOT}/cluster/gce/trusty/configure-helper.sh" "${dst_dir}" | ||||||
|   cp -r "${salt_dir}/kube-admission-controls/limit-range" "${dst_dir}" |   cp -r "${salt_dir}/kube-admission-controls/limit-range" "${dst_dir}" | ||||||
|   local objects |   local objects | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								cluster/addons/addon-manager/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cluster/addons/addon-manager/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | kubectl | ||||||
							
								
								
									
										24
									
								
								cluster/addons/addon-manager/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								cluster/addons/addon-manager/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | # 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. | ||||||
|  |  | ||||||
|  | FROM python:2.7-slim | ||||||
|  |  | ||||||
|  | RUN pip install pyyaml | ||||||
|  |  | ||||||
|  | ADD kube-addons.sh /opt/ | ||||||
|  | ADD kube-addon-update.sh /opt/ | ||||||
|  | ADD namespace.yaml /opt/ | ||||||
|  | ADD kubectl /usr/local/bin/kubectl | ||||||
|  |  | ||||||
|  | CMD /opt/kube-addons.sh | ||||||
							
								
								
									
										34
									
								
								cluster/addons/addon-manager/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								cluster/addons/addon-manager/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | # 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. | ||||||
|  |  | ||||||
|  | IMAGE=gcr.io/google-containers/kube-addon-manager | ||||||
|  | VERSION=v1 | ||||||
|  | KUBECTL_VERSION=v1.2.3 | ||||||
|  |  | ||||||
|  | .PHONY: build push container | ||||||
|  |  | ||||||
|  | build: kubectl | ||||||
|  | 	docker build -t "$(IMAGE):$(VERSION)" . | ||||||
|  |  | ||||||
|  | kubectl: | ||||||
|  | 	curl "https://storage.googleapis.com/kubernetes-release/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" \ | ||||||
|  | 		-o kubectl | ||||||
|  | 	chmod +x kubectl | ||||||
|  |  | ||||||
|  | push: build | ||||||
|  | 	gcloud docker push "$(IMAGE):$(VERSION)" | ||||||
|  |  | ||||||
|  | clean: | ||||||
|  | 	rm kubectl | ||||||
|  | 	docker rmi -f "$(IMAGE):$(VERSION)" | ||||||
| @@ -98,7 +98,7 @@ function log() { | |||||||
| function get-object-kind-from-file() { | function get-object-kind-from-file() { | ||||||
|     # prints to stdout, so log cannot be used |     # prints to stdout, so log cannot be used | ||||||
|     #WARNING: only yaml is supported |     #WARNING: only yaml is supported | ||||||
|     cat $1 | ${PYTHON} -c ''' |     cat $1 | python -c ''' | ||||||
| try: | try: | ||||||
|         import pipes,sys,yaml |         import pipes,sys,yaml | ||||||
|         y = yaml.load(sys.stdin) |         y = yaml.load(sys.stdin) | ||||||
| @@ -120,7 +120,7 @@ function get-object-nsname-from-file() { | |||||||
|     # prints to stdout, so log cannot be used |     # prints to stdout, so log cannot be used | ||||||
|     #WARNING: only yaml is supported |     #WARNING: only yaml is supported | ||||||
|     #addons that do not specify a namespace are assumed to be in "default". |     #addons that do not specify a namespace are assumed to be in "default". | ||||||
|     cat $1 | ${PYTHON} -c ''' |     cat $1 | python -c ''' | ||||||
| try: | try: | ||||||
|         import pipes,sys,yaml |         import pipes,sys,yaml | ||||||
|         y = yaml.load(sys.stdin) |         y = yaml.load(sys.stdin) | ||||||
							
								
								
									
										16
									
								
								cluster/saltbase/salt/kube-addons/kube-addons.sh → cluster/addons/addon-manager/kube-addons.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										16
									
								
								cluster/saltbase/salt/kube-addons/kube-addons.sh → cluster/addons/addon-manager/kube-addons.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -19,21 +19,11 @@ | |||||||
| # managed result is of that. Start everything below that directory. | # managed result is of that. Start everything below that directory. | ||||||
| KUBECTL=${KUBECTL_BIN:-/usr/local/bin/kubectl} | KUBECTL=${KUBECTL_BIN:-/usr/local/bin/kubectl} | ||||||
| 
 | 
 | ||||||
| ADDON_CHECK_INTERVAL_SEC=${TEST_ADDON_CHECK_INTERVAL_SEC:-600} | ADDON_CHECK_INTERVAL_SEC=${TEST_ADDON_CHECK_INTERVAL_SEC:-10} | ||||||
| 
 | 
 | ||||||
| SYSTEM_NAMESPACE=kube-system | SYSTEM_NAMESPACE=kube-system | ||||||
| trusty_master=${TRUSTY_MASTER:-false} | trusty_master=${TRUSTY_MASTER:-false} | ||||||
| 
 | 
 | ||||||
| function ensure_python() { |  | ||||||
|   if ! python --version > /dev/null 2>&1; then     |  | ||||||
|     echo "No python on the machine, will use a python image" |  | ||||||
|     local -r PYTHON_IMAGE=gcr.io/google_containers/python:v1 |  | ||||||
|     export PYTHON="docker run --interactive --rm --net=none ${PYTHON_IMAGE} python" |  | ||||||
|   else |  | ||||||
|     export PYTHON=python |  | ||||||
|   fi |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # $1 filename of addon to start. | # $1 filename of addon to start. | ||||||
| # $2 count of tries to start the addon. | # $2 count of tries to start the addon. | ||||||
| # $3 delay in seconds between two consecutive tries | # $3 delay in seconds between two consecutive tries | ||||||
| @@ -74,10 +64,8 @@ function create-resource-from-string() { | |||||||
| # managed result is of that. Start everything below that directory. | # managed result is of that. Start everything below that directory. | ||||||
| echo "== Kubernetes addon manager started at $(date -Is) with ADDON_CHECK_INTERVAL_SEC=${ADDON_CHECK_INTERVAL_SEC} ==" | echo "== Kubernetes addon manager started at $(date -Is) with ADDON_CHECK_INTERVAL_SEC=${ADDON_CHECK_INTERVAL_SEC} ==" | ||||||
| 
 | 
 | ||||||
| ensure_python |  | ||||||
| 
 |  | ||||||
| # Create the namespace that will be used to host the cluster-level add-ons. | # Create the namespace that will be used to host the cluster-level add-ons. | ||||||
| start_addon /etc/kubernetes/addons/namespace.yaml 100 10 "" & | start_addon /opt/namespace.yaml 100 10 "" & | ||||||
| 
 | 
 | ||||||
| # Wait for the default service account to be created in the kube-system namespace. | # Wait for the default service account to be created in the kube-system namespace. | ||||||
| token_found="" | token_found="" | ||||||
| @@ -679,13 +679,6 @@ prepare_kube_addons() { | |||||||
|     setup_addon_manifests "admission-controls" "limit-range" |     setup_addon_manifests "admission-controls" "limit-range" | ||||||
|   fi |   fi | ||||||
|  |  | ||||||
|   # Prepare the scripts for running addons. |   # Place addon manager pod manifest | ||||||
|   addon_script_dir="/var/lib/cloud/scripts/kubernetes" |   cp "${addon_src_dir}/kube-addon-manager.yaml" /etc/kubernetes/manifests | ||||||
|   mkdir -p "${addon_script_dir}" |  | ||||||
|   cp "${addon_src_dir}/kube-addons.sh" "${addon_script_dir}" |  | ||||||
|   cp "${addon_src_dir}/kube-addon-update.sh" "${addon_script_dir}" |  | ||||||
|   chmod 544 "${addon_script_dir}/"*.sh |  | ||||||
|   # In case that some GCE customized trusty may have a read-only /root. |  | ||||||
|   mount -t tmpfs tmpfs /root |  | ||||||
|   mount --bind -o remount,rw,noexec /root |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -180,38 +180,6 @@ script | |||||||
| 	prepare_kube_addons | 	prepare_kube_addons | ||||||
| end script | end script | ||||||
|  |  | ||||||
| --==================================== |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Type: text/upstart-job; charset="us-ascii" |  | ||||||
| Content-Transfer-Encoding: 7bit |  | ||||||
| Content-Disposition: attachment; filename="kube-addons.conf" |  | ||||||
|  |  | ||||||
| #upstart-job |  | ||||||
|  |  | ||||||
| description "Run kubernetes addon pods" |  | ||||||
|  |  | ||||||
| start on stopped kube-master-components |  | ||||||
|  |  | ||||||
| respawn |  | ||||||
|  |  | ||||||
| script |  | ||||||
| 	set -o errexit |  | ||||||
| 	set -o nounset |  | ||||||
|  |  | ||||||
| 	. /etc/kube-env |  | ||||||
| 	export HOME="/root" |  | ||||||
| 	export KUBECTL_BIN="/usr/bin/kubectl" |  | ||||||
| 	export TRUSTY_MASTER="true" |  | ||||||
| 	if [ -n "${TEST_ADDON_CHECK_INTERVAL_SEC:-}" ]; then |  | ||||||
| 		export TEST_ADDON_CHECK_INTERVAL_SEC=${TEST_ADDON_CHECK_INTERVAL_SEC} |  | ||||||
| 	fi |  | ||||||
| 	# Run the script to start and monitoring addon manifest changes. |  | ||||||
| 	exec /var/lib/cloud/scripts/kubernetes/kube-addons.sh 1>>/var/log/kube-addons.log 2>&1 |  | ||||||
| end script |  | ||||||
|  |  | ||||||
| # Wait for 10s to start it again. |  | ||||||
| post-stop exec sleep 10 |  | ||||||
|  |  | ||||||
| --==================================== | --==================================== | ||||||
| MIME-Version: 1.0 | MIME-Version: 1.0 | ||||||
| Content-Type: text/upstart-job; charset="us-ascii" | Content-Type: text/upstart-job; charset="us-ascii" | ||||||
|   | |||||||
| @@ -11,13 +11,6 @@ addon-dir-create: | |||||||
|     - require: |     - require: | ||||||
|         - file: addon-dir-delete |         - file: addon-dir-delete | ||||||
|  |  | ||||||
| /etc/kubernetes/addons/namespace.yaml: |  | ||||||
|   file.managed: |  | ||||||
|     - source: salt://kube-addons/namespace.yaml |  | ||||||
|     - user: root |  | ||||||
|     - group: root |  | ||||||
|     - file_mode: 644 |  | ||||||
|  |  | ||||||
| {% if pillar.get('enable_cluster_monitoring', '').lower() == 'influxdb' %} | {% if pillar.get('enable_cluster_monitoring', '').lower() == 'influxdb' %} | ||||||
| /etc/kubernetes/addons/cluster-monitoring/influxdb: | /etc/kubernetes/addons/cluster-monitoring/influxdb: | ||||||
|   file.recurse: |   file.recurse: | ||||||
| @@ -156,63 +149,9 @@ addon-dir-create: | |||||||
|     - file_mode: 644 |     - file_mode: 644 | ||||||
| {% endif %} | {% endif %} | ||||||
|  |  | ||||||
| /etc/kubernetes/kube-addons.sh: | /etc/kubernetes/manifests/kube-addon-manager.yaml: | ||||||
|   file.managed: |   file.managed: | ||||||
|     - source: salt://kube-addons/kube-addons.sh |     - source: salt://kube-addons/kube-addon-manager.yaml | ||||||
|     - user: root |     - user: root | ||||||
|     - group: root |     - group: root | ||||||
|     - mode: 755 |     - mode: 755 | ||||||
|  |  | ||||||
| /etc/kubernetes/kube-addon-update.sh: |  | ||||||
|   file.managed: |  | ||||||
|     - source: salt://kube-addons/kube-addon-update.sh |  | ||||||
|     - user: root |  | ||||||
|     - group: root |  | ||||||
|     - mode: 755 |  | ||||||
|  |  | ||||||
| {% if pillar.get('is_systemd') %} |  | ||||||
|  |  | ||||||
| {{ pillar.get('systemd_system_path') }}/kube-addons.service: |  | ||||||
|   file.managed: |  | ||||||
|     - source: salt://kube-addons/kube-addons.service |  | ||||||
|     - user: root |  | ||||||
|     - group: root |  | ||||||
|   cmd.wait: |  | ||||||
|     - name: /opt/kubernetes/helpers/services bounce kube-addons |  | ||||||
|     - watch: |  | ||||||
|       - file: {{ pillar.get('systemd_system_path') }}/kube-addons.service |  | ||||||
|  |  | ||||||
| {% else %} |  | ||||||
|  |  | ||||||
| /etc/init.d/kube-addons: |  | ||||||
|   file.managed: |  | ||||||
|     - source: salt://kube-addons/initd |  | ||||||
|     - user: root |  | ||||||
|     - group: root |  | ||||||
|     - mode: 755 |  | ||||||
|  |  | ||||||
| {% endif %} |  | ||||||
|  |  | ||||||
| # Stop kube-addons service each time salt is executed, just in case |  | ||||||
| # there was a modification of addons. |  | ||||||
| # Actually, this should be handled by watching file changes, but |  | ||||||
| # somehow it doesn't work. |  | ||||||
| service-kube-addon-stop: |  | ||||||
|   service.dead: |  | ||||||
|     - name: kube-addons |  | ||||||
|  |  | ||||||
| kube-addons: |  | ||||||
|   service.running: |  | ||||||
|     - enable: True |  | ||||||
|     - require: |  | ||||||
|         - service: service-kube-addon-stop |  | ||||||
|     - watch: |  | ||||||
| {% if pillar.get('is_systemd') %} |  | ||||||
|       - file: {{ pillar.get('systemd_system_path') }}/kube-addons.service |  | ||||||
| {% else %} |  | ||||||
|       - file: /etc/init.d/kube-addons |  | ||||||
| {% endif %} |  | ||||||
| {% if pillar.get('is_systemd') %} |  | ||||||
|     - provider: |  | ||||||
|       - service: systemd |  | ||||||
| {%- endif %} |  | ||||||
|   | |||||||
| @@ -1,120 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # |  | ||||||
| ### BEGIN INIT INFO |  | ||||||
| # Provides:   kube-addons |  | ||||||
| # Required-Start:    $local_fs $network $syslog kube-apiserver |  | ||||||
| # Required-Stop: |  | ||||||
| # Default-Start:     2 3 4 5 |  | ||||||
| # Default-Stop:      0 1 6 |  | ||||||
| # Short-Description: Kubernetes Addon Object Manager |  | ||||||
| # Description: |  | ||||||
| #   Enforces installation of Kubernetes Addon Objects |  | ||||||
| ### END INIT INFO |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # PATH should only include /usr/* if it runs after the mountnfs.sh script |  | ||||||
| PATH=/sbin:/usr/sbin:/bin:/usr/bin |  | ||||||
| DESC="Kubernetes Addon Object Manager" |  | ||||||
| NAME=kube-addons |  | ||||||
| DAEMON_LOG_FILE=/var/log/${NAME}.log |  | ||||||
| PIDFILE=/var/run/${NAME}.pid |  | ||||||
| SCRIPTNAME=/etc/init.d/${NAME} |  | ||||||
| KUBE_ADDONS_SH=/etc/kubernetes/kube-addons.sh |  | ||||||
|  |  | ||||||
| # Define LSB log_* functions. |  | ||||||
| # Depend on lsb-base (>= 3.2-14) to ensure that this file is present |  | ||||||
| # and status_of_proc is working. |  | ||||||
| . /lib/lsb/init-functions |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # |  | ||||||
| # Function that starts the daemon/service |  | ||||||
| # |  | ||||||
| do_start() |  | ||||||
| { |  | ||||||
|     # use setsid to make sure the new daemon has its own group (I suppose |  | ||||||
|     # start-stop-daemon does create a process group, but let's stay on the |  | ||||||
|     # safe side). |  | ||||||
|     setsid start-stop-daemon --start --verbose --background --no-close --make-pidfile --pidfile "${PIDFILE}" --startas "${KUBE_ADDONS_SH}" </dev/null >> ${DAEMON_LOG_FILE} 2>&1 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # |  | ||||||
| # Function that stops the daemon/service |  | ||||||
| # |  | ||||||
| do_stop() |  | ||||||
| { |  | ||||||
|     # start-stop-daemon is not used because we have to stop all children |  | ||||||
|     # limitations: |  | ||||||
|     #  - stop does not work if the pid file is missing |  | ||||||
|     #  - stop does not work if the daemon process is missing (children will not |  | ||||||
|     #    be killed) |  | ||||||
|     # This is sufficient - remaining processes will end after a while. |  | ||||||
|  |  | ||||||
|     local pid |  | ||||||
|     pid=$(cat "${PIDFILE}" 2> /dev/null) |  | ||||||
|     if [[ $? != 0 ]]; then |  | ||||||
|         return 1 |  | ||||||
|     fi |  | ||||||
|     local pgrp |  | ||||||
|     # find the process group for the service and kill entire group |  | ||||||
|     #  o - output format: pgpg - process group |  | ||||||
|     pgrp=$(ps --no-headers --pid "${pid}" -o pgrp 2>/dev/null) |  | ||||||
|     if [[ $? != 0 ]] || [[ "${pgrp}" == "" ]]; then |  | ||||||
|         return 1 |  | ||||||
|     fi |  | ||||||
|     pgrp=$(echo -e ${pgrp})   # strip whitespaces (that's why there are no quotes around pgrp) |  | ||||||
|     # negative pid is for killing entire group |  | ||||||
|     kill -- -${pgrp} 2> /dev/null |  | ||||||
|     if [[ $? != 0 ]]; then |  | ||||||
|         return 2 |  | ||||||
|     fi |  | ||||||
|     rm -f "${PIDFILE}" |  | ||||||
|     return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| case "$1" in |  | ||||||
|   start) |  | ||||||
|         log_daemon_msg "Starting ${DESC}" "${NAME}" |  | ||||||
|         do_start |  | ||||||
|         case "$?" in |  | ||||||
|                 0|1) log_end_msg 0 || exit 0 ;; |  | ||||||
|                 2) log_end_msg 1 || exit 1 ;; |  | ||||||
|         esac |  | ||||||
|         ;; |  | ||||||
|   stop) |  | ||||||
|         log_daemon_msg "Stopping ${DESC}" "${NAME}" |  | ||||||
|         do_stop |  | ||||||
|         case "$?" in |  | ||||||
|                 0|1) log_end_msg 0 || exit 0 ;; |  | ||||||
|                 2) log_end_msg 1 || exit 1 ;; |  | ||||||
|         esac |  | ||||||
|         ;; |  | ||||||
|   status) |  | ||||||
|         status_of_proc -p "${PIDFILE}" "${KUBE_ADDONS_SH}" "${NAME}" |  | ||||||
|         ;; |  | ||||||
|  |  | ||||||
|   restart|force-reload) |  | ||||||
|         log_daemon_msg "Restarting ${DESC}" "${NAME}" |  | ||||||
|         do_stop |  | ||||||
|         case "$?" in |  | ||||||
|           0|1) |  | ||||||
|                 do_start |  | ||||||
|                 case "$?" in |  | ||||||
|                         0) log_end_msg 0 ;; |  | ||||||
|                         1) log_end_msg 1 ;; # Old process is still running |  | ||||||
|                         *) log_end_msg 1 ;; # Failed to start |  | ||||||
|                 esac |  | ||||||
|                 ;; |  | ||||||
|           *) |  | ||||||
|                 # Failed to stop |  | ||||||
|                 log_end_msg 1 |  | ||||||
|                 ;; |  | ||||||
|         esac |  | ||||||
|         ;; |  | ||||||
|   *) |  | ||||||
|         echo "Usage: ${SCRIPTNAME} {start|stop|status|restart|force-reload}" >&2 |  | ||||||
|         exit 3 |  | ||||||
|         ;; |  | ||||||
| esac |  | ||||||
							
								
								
									
										23
									
								
								cluster/saltbase/salt/kube-addons/kube-addon-manager.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								cluster/saltbase/salt/kube-addons/kube-addon-manager.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Pod | ||||||
|  | metadata: | ||||||
|  |   name: kube-addon-manager | ||||||
|  |   namespace: kube-system | ||||||
|  |   version: v1 | ||||||
|  | spec: | ||||||
|  |   hostNetwork: true | ||||||
|  |   containers: | ||||||
|  |   - name: kube-addon-manager | ||||||
|  |     image: gcr.io/google-containers/kube-addon-manager:v1 | ||||||
|  |     resources: | ||||||
|  |       requests: | ||||||
|  |         cpu: 5m | ||||||
|  |         memory: 50Mi | ||||||
|  |     volumeMounts: | ||||||
|  |     - mountPath: /etc/kubernetes/ | ||||||
|  |       name: addons | ||||||
|  |       readOnly: true | ||||||
|  |   volumes: | ||||||
|  |   - hostPath: | ||||||
|  |       path: /etc/kubernetes/ | ||||||
|  |     name: addons | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| [Unit] |  | ||||||
| Description=Kubernetes Addon Object Manager |  | ||||||
| Documentation=https://github.com/kubernetes/kubernetes |  | ||||||
|  |  | ||||||
| [Service] |  | ||||||
| Environment=HOME=/root |  | ||||||
| ExecStart=/etc/kubernetes/kube-addons.sh |  | ||||||
|  |  | ||||||
| [Install] |  | ||||||
| WantedBy=multi-user.target |  | ||||||
| @@ -1,4 +1,5 @@ | |||||||
| Vagrantfile:      node_ip = $node_ips[n] | Vagrantfile:      node_ip = $node_ips[n] | ||||||
|  | cluster/addons/addon-manager/kube-addons.sh:# Create admission_control objects if defined before any other addon services. If the limits | ||||||
| cluster/addons/registry/images/Dockerfile:ADD run_proxy.sh /usr/bin/run_proxy | cluster/addons/registry/images/Dockerfile:ADD run_proxy.sh /usr/bin/run_proxy | ||||||
| cluster/addons/registry/images/Dockerfile:CMD ["/usr/bin/run_proxy"] | cluster/addons/registry/images/Dockerfile:CMD ["/usr/bin/run_proxy"] | ||||||
| cluster/aws/templates/configure-vm-aws.sh:  # We set the hostname_override to the full EC2 private dns name | cluster/aws/templates/configure-vm-aws.sh:  # We set the hostname_override to the full EC2 private dns name | ||||||
| @@ -31,7 +32,6 @@ cluster/photon-controller/util.sh:    node_ip=$(${PHOTON} vm networks "${node_id | |||||||
| cluster/photon-controller/util.sh:  local cert_dir="/srv/kubernetes" | cluster/photon-controller/util.sh:  local cert_dir="/srv/kubernetes" | ||||||
| cluster/photon-controller/util.sh:  node_name=${1} | cluster/photon-controller/util.sh:  node_name=${1} | ||||||
| cluster/rackspace/util.sh:    local node_ip=$(nova show --minimal ${NODE_NAMES[$i]} \ | cluster/rackspace/util.sh:    local node_ip=$(nova show --minimal ${NODE_NAMES[$i]} \ | ||||||
| cluster/saltbase/salt/kube-addons/kube-addons.sh:# Create admission_control objects if defined before any other addon services. If the limits |  | ||||||
| cluster/saltbase/salt/kube-admission-controls/init.sls:{% if 'LimitRanger' in pillar.get('admission_control', '') %} | cluster/saltbase/salt/kube-admission-controls/init.sls:{% if 'LimitRanger' in pillar.get('admission_control', '') %} | ||||||
| cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest:{% set params = address + " " + etcd_servers + " " + etcd_servers_overrides + " " + cloud_provider + " " + cloud_config + " " + runtime_config + " " + admission_control + " " + service_cluster_ip_range + " " + client_ca_file + basic_auth_file + " " + min_request_timeout -%} | cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest:{% set params = address + " " + etcd_servers + " " + etcd_servers_overrides + " " + cloud_provider + " " + cloud_config + " " + runtime_config + " " + admission_control + " " + service_cluster_ip_range + " " + client_ca_file + basic_auth_file + " " + min_request_timeout -%} | ||||||
| cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest:{% set params = "--master=127.0.0.1:8080" + " " + cluster_name + " " + cluster_cidr + " " + allocate_node_cidrs + " " + terminated_pod_gc + " " + cloud_provider  + " " + cloud_config + " " + service_account_key + " " + log_level + " " + root_ca_file -%} | cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest:{% set params = "--master=127.0.0.1:8080" + " " + cluster_name + " " + cluster_cidr + " " + allocate_node_cidrs + " " + terminated_pod_gc + " " + cloud_provider  + " " + cloud_config + " " + service_account_key + " " + log_level + " " + root_ca_file -%} | ||||||
|   | |||||||
| @@ -207,37 +207,10 @@ var _ = framework.KubeDescribe("Addon update", func() { | |||||||
| 		var err error | 		var err error | ||||||
| 		sshClient, err = getMasterSSHClient() | 		sshClient, err = getMasterSSHClient() | ||||||
| 		Expect(err).NotTo(HaveOccurred()) | 		Expect(err).NotTo(HaveOccurred()) | ||||||
|  |  | ||||||
| 		// Reduce the addon update intervals so that we have faster response |  | ||||||
| 		// to changes in the addon directory. |  | ||||||
| 		// do not use "service" command because it clears the environment variables |  | ||||||
| 		switch framework.TestContext.OSDistro { |  | ||||||
| 		case "debian": |  | ||||||
| 			sshExecAndVerify(sshClient, "sudo TEST_ADDON_CHECK_INTERVAL_SEC=1 /etc/init.d/kube-addons restart") |  | ||||||
| 		case "trusty", "gci": |  | ||||||
| 			sshExecAndVerify(sshClient, "sudo initctl restart kube-addons TEST_ADDON_CHECK_INTERVAL_SEC=1") |  | ||||||
| 		case "coreos": |  | ||||||
| 			sshExecAndVerify(sshClient, "sudo systemctl set-environment TEST_ADDON_CHECK_INTERVAL_SEC=1") |  | ||||||
| 			sshExecAndVerify(sshClient, "sudo systemctl restart kubernetes-addons") |  | ||||||
| 		default: |  | ||||||
| 			framework.Failf("Unsupported OS distro type %s", framework.TestContext.OSDistro) |  | ||||||
| 		} |  | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	AfterEach(func() { | 	AfterEach(func() { | ||||||
| 		if sshClient != nil { | 		if sshClient != nil { | ||||||
| 			// restart addon_update with the default options |  | ||||||
| 			switch framework.TestContext.OSDistro { |  | ||||||
| 			case "debian": |  | ||||||
| 				sshExec(sshClient, "sudo /etc/init.d/kube-addons restart") |  | ||||||
| 			case "trusty", "gci": |  | ||||||
| 				sshExec(sshClient, "sudo initctl restart kube-addons") |  | ||||||
| 			case "coreos": |  | ||||||
| 				sshExec(sshClient, "sudo systemctl unset-environment TEST_ADDON_CHECK_INTERVAL_SEC") |  | ||||||
| 				sshExec(sshClient, "sudo systemctl restart kubernetes-addons") |  | ||||||
| 			default: |  | ||||||
| 				framework.Failf("Unsupported OS distro type %s", framework.TestContext.OSDistro) |  | ||||||
| 			} |  | ||||||
| 			sshClient.Close() | 			sshClient.Close() | ||||||
| 		} | 		} | ||||||
| 	}) | 	}) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user