From f16a512aea91cd680a6aeda26cef182f8180a049 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Mon, 2 Jan 2017 12:14:03 +0100 Subject: [PATCH] Drop non systemd OS types support Signed-off-by: Bogdan Dobrelya --- inventory/group_vars/all.yml | 3 - roles/docker/handlers/main.yml | 1 - roles/docker/tasks/main.yml | 5 - roles/docker/tasks/non-systemd.yml | 66 --------- roles/etcd/handlers/main.yml | 1 - roles/etcd/tasks/configure.yml | 11 +- roles/etcd/templates/deb-etcd-docker.initd.j2 | 120 --------------- roles/etcd/templates/deb-etcd-host.initd.j2 | 109 -------------- roles/kubernetes/master/handlers/main.yml | 1 - roles/kubernetes/node/handlers/main.yml | 1 - roles/kubernetes/node/tasks/install.yml | 11 -- .../node/templates/deb-kubelet.initd.j2 | 121 --------------- roles/kubernetes/node/templates/kubelet.j2 | 10 -- .../node/templates/rh-kubelet.initd.j2 | 129 ---------------- roles/kubernetes/preinstall/tasks/main.yml | 13 +- .../preinstall/tasks/pre-upgrade.yml | 4 + roles/network_plugin/calico/handlers/main.yml | 1 - .../calico/rr/handlers/main.yml | 1 - roles/network_plugin/calico/rr/tasks/main.yml | 2 - roles/network_plugin/calico/tasks/main.yml | 20 +-- .../calico/templates/deb-calico.initd.j2 | 124 ---------------- .../calico/templates/network-environment.j2 | 12 -- .../calico/templates/rh-calico.initd.j2 | 140 ------------------ .../network_plugin/flannel/handlers/main.yml | 1 - roles/network_plugin/flannel/tasks/main.yml | 23 --- roles/network_plugin/weave/handlers/main.yml | 1 - roles/network_plugin/weave/tasks/main.yml | 3 - roles/reset/tasks/main.yml | 2 +- 28 files changed, 13 insertions(+), 923 deletions(-) delete mode 100644 roles/docker/tasks/non-systemd.yml delete mode 100644 roles/etcd/templates/deb-etcd-docker.initd.j2 delete mode 100644 roles/etcd/templates/deb-etcd-host.initd.j2 delete mode 100644 roles/kubernetes/node/templates/deb-kubelet.initd.j2 delete mode 100644 roles/kubernetes/node/templates/rh-kubelet.initd.j2 create mode 100644 roles/kubernetes/preinstall/tasks/pre-upgrade.yml delete mode 100644 roles/network_plugin/calico/templates/deb-calico.initd.j2 delete mode 100644 roles/network_plugin/calico/templates/network-environment.j2 delete mode 100644 roles/network_plugin/calico/templates/rh-calico.initd.j2 diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index a73612b0d..839da100a 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -14,9 +14,6 @@ kube_script_dir: "{{ bin_dir }}/kubernetes-scripts" kube_manifest_dir: "{{ kube_config_dir }}/manifests" system_namespace: kube-system -# Logging directory (sysvinit systems) -kube_log_dir: "/var/log/kubernetes" - # This is where all the cert scripts and certs will be located kube_cert_dir: "{{ kube_config_dir }}/ssl" diff --git a/roles/docker/handlers/main.yml b/roles/docker/handlers/main.yml index 4f4c0c8c0..c8bc2c3bb 100644 --- a/roles/docker/handlers/main.yml +++ b/roles/docker/handlers/main.yml @@ -10,7 +10,6 @@ - name : Docker | reload systemd shell: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - name: Docker | reload docker.socket service: diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index b7485c3d6..d3587e2d3 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -64,13 +64,8 @@ with_items: "{{ docker_package_info.pkgs }}" when: (ansible_os_family != "CoreOS") and (docker_package_info.pkgs|length > 0) -- name: Set docker upstart and sysvinit config - include: non-systemd.yml - when: ansible_service_mgr in ["sysvinit","upstart"] - - name: Set docker systemd config include: systemd.yml - when: ansible_service_mgr == "systemd" - name: ensure docker service is started and enabled service: diff --git a/roles/docker/tasks/non-systemd.yml b/roles/docker/tasks/non-systemd.yml deleted file mode 100644 index ea8c8e97a..000000000 --- a/roles/docker/tasks/non-systemd.yml +++ /dev/null @@ -1,66 +0,0 @@ ---- -# This uses lineinfile instead of templates for idempotency in files that may be modified by different roles -- name: Set docker options config file path - set_fact: - docker_options_file: >- - {%- if ansible_os_family == "Debian" -%}/etc/default/docker{%- elif ansible_os_family == "RedHat" -%}/etc/sysconfig/docker{%- endif -%} - tags: facts - -- name: Set docker options config variable name - set_fact: - docker_options_name: >- - {%- if ansible_os_family == "Debian" -%}DOCKER_OPTS{%- elif ansible_os_family == "RedHat" -%}other_args{%- endif -%} - tags: facts - -- name: Set docker options config value to be written - set_fact: - docker_options_value: '"{{ docker_options }} $DOCKER_NETWORK_OPTIONS $DOCKER_STORAGE_OPTIONS $INSECURE_REGISTRY"' - tags: facts - -- name: Set docker options config line to be written - set_fact: - docker_options_line: "{{ docker_options_name }}={{ docker_options_value }}" - tags: facts - -- name: Set docker proxy lines to be written - set_fact: - docker_proxy_lines: - - { name: "HTTP_PROXY", value: '"{{ http_proxy }}"' } - - { name: "HTTPS_PROXY", value: '"{{ https_proxy }}"' } - - { name: "NO_PROXY", value: '"{{ no_proxy }}"' } - tags: facts - -- name: Remove docker daemon proxy config lines that don't match desired lines - lineinfile: - dest: "{{ docker_options_file }}" - regexp: "^{{ item.name }}=(?!{{ item.value|regex_escape() }})" - state: absent - with_items: "{{ docker_proxy_lines|default([]) }}" - when: item.value is defined and (item.value | trim != '') - -- name: Write docker daemon proxy config lines - lineinfile: - dest: "{{ docker_options_file }}" - line: "{{ item.name }}={{ item.value }}" - owner: root - group: root - mode: 0644 - with_items: "{{ docker_proxy_lines|default([]) }}" - when: item.value is defined and (item.value | trim != '') - -- name: Remove docker daemon options lines that don't match desired line - lineinfile: - dest: "{{ docker_options_file }}" - regexp: "^(DOCKER_OPTS|OPTIONS|other_args)=(?!{{ docker_options_value|regex_escape() }})" - state: absent - -- name: Write docker daemon options line - lineinfile: - dest: "{{ docker_options_file }}" - line: "{{ docker_options_line }}" - owner: root - group: root - mode: 0644 - notify: restart docker - -- meta: flush_handlers diff --git a/roles/etcd/handlers/main.yml b/roles/etcd/handlers/main.yml index 4256490c9..8c790e9cd 100644 --- a/roles/etcd/handlers/main.yml +++ b/roles/etcd/handlers/main.yml @@ -8,7 +8,6 @@ - name: etcd | reload systemd command: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - name: reload etcd service: diff --git a/roles/etcd/tasks/configure.yml b/roles/etcd/tasks/configure.yml index e1c07a997..535874060 100644 --- a/roles/etcd/tasks/configure.yml +++ b/roles/etcd/tasks/configure.yml @@ -16,14 +16,5 @@ src: "etcd-{{ etcd_deployment_type }}.service.j2" dest: /etc/systemd/system/etcd.service backup: yes - when: ansible_service_mgr == "systemd" and is_etcd_master - notify: restart etcd - -- name: Configure | Write etcd initd script - template: - src: "deb-etcd-{{ etcd_deployment_type }}.initd.j2" - dest: /etc/init.d/etcd - owner: root - mode: 0755 - when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian" and is_etcd_master + when: is_etcd_master notify: restart etcd diff --git a/roles/etcd/templates/deb-etcd-docker.initd.j2 b/roles/etcd/templates/deb-etcd-docker.initd.j2 deleted file mode 100644 index b8ae568e9..000000000 --- a/roles/etcd/templates/deb-etcd-docker.initd.j2 +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/sh -set -a - -### BEGIN INIT INFO -# Provides: etcd -# Required-Start: $local_fs $network $syslog -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: etcd distributed k/v store -# Description: -# etcd is a distributed, consistent key-value store for shared configuration and service discovery -### END INIT INFO - -PATH=/sbin:/usr/sbin:/bin/:/usr/bin -DESC="etcd k/v store" -NAME=etcd -DAEMON={{ docker_bin_dir }}/docker -DAEMON_EXEC=`basename $DAEMON` -DAEMON_ARGS="run --restart=on-failure:5 --env-file=/etc/etcd.env \ ---net=host \ --v /etc/ssl/certs:/etc/ssl/certs:ro \ --v /var/lib/etcd:/var/lib/etcd:rw \ --v {{ etcd_cert_dir }}:{{ etcd_cert_dir }}:ro \ ---name={{ etcd_member_name | default("etcd") }} \ -{{ etcd_image_repo }}:{{ etcd_image_tag }} \ -{% if etcd_after_v3 %} -{{ etcd_container_bin_dir }}etcd -{% endif %}" - -SCRIPTNAME=/etc/init.d/$NAME -DAEMON_USER=root -STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" -PID=/var/run/etcd.pid - -# Exit if the binary is not present -[ -x "$DAEMON" ] || exit 0 - -# 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 - -do_status() -{ - status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $? -} - -# Function that starts the daemon/service -# -do_start() -{ - {{ docker_bin_dir }}/docker rm -f {{ etcd_member_name | default("etcd") }} &>/dev/null || true - sleep 1 - start-stop-daemon --background --start --quiet --make-pidfile --pidfile $PID --user $DAEMON_USER --exec $DAEMON -- \ - $DAEMON_ARGS \ - || return 2 -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $DAEMON_EXEC - RETVAL="$?" - - sleep 1 - return "$RETVAL" -} - - -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" - if do_stop; then - log_end_msg 0 - else - log_failure_msg "Can't stop etcd" - log_end_msg 1 - fi - ;; - status) - if do_status; then - log_end_msg 0 - else - log_failure_msg "etcd is not running" - log_end_msg 1 - fi - ;; - - restart|force-reload) - log_daemon_msg "Restarting $DESC" "$NAME" - if do_stop; then - if do_start; then - log_end_msg 0 - exit 0 - else - rc="$?" - fi - else - rc="$?" - fi - log_failure_msg "Can't restart etcd" - log_end_msg ${rc} - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - exit 3 - ;; -esac - diff --git a/roles/etcd/templates/deb-etcd-host.initd.j2 b/roles/etcd/templates/deb-etcd-host.initd.j2 deleted file mode 100644 index b27c0f49a..000000000 --- a/roles/etcd/templates/deb-etcd-host.initd.j2 +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/sh -set -a - -### BEGIN INIT INFO -# Provides: etcd -# Required-Start: $local_fs $network $syslog -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: etcd distributed k/v store -# Description: -# etcd is a distributed, consistent key-value store for shared configuration and service discovery -### END INIT INFO - -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="etcd k/v store" -NAME=etcd -DAEMON={{ bin_dir }}/etcd -SCRIPTNAME=/etc/init.d/$NAME -DAEMON_USER=etcd -STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" -PID=/var/run/etcd.pid - -# Exit if the binary is not present -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -f /etc/etcd.env ] && . /etc/etcd.env - -# 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 - -do_status() -{ - status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $? -} - -# Function that starts the daemon/service -# -do_start() -{ - start-stop-daemon --background --start --quiet --make-pidfile --pidfile $PID --user $DAEMON_USER --exec $DAEMON -- \ - $DAEMON_ARGS \ - || return 2 -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAME - RETVAL="$?" - - sleep 1 - return "$RETVAL" -} - - -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" - if do_stop; then - log_end_msg 0 - else - log_failure_msg "Can't stop etcd" - log_end_msg 1 - fi - ;; - status) - if do_status; then - log_end_msg 0 - else - log_failure_msg "etcd is not running" - log_end_msg 1 - fi - ;; - - restart|force-reload) - log_daemon_msg "Restarting $DESC" "$NAME" - if do_stop; then - if do_start; then - log_end_msg 0 - exit 0 - else - rc="$?" - fi - else - rc="$?" - fi - log_failure_msg "Can't restart etcd" - log_end_msg ${rc} - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - exit 3 - ;; -esac - diff --git a/roles/kubernetes/master/handlers/main.yml b/roles/kubernetes/master/handlers/main.yml index 3d69cba7d..385482276 100644 --- a/roles/kubernetes/master/handlers/main.yml +++ b/roles/kubernetes/master/handlers/main.yml @@ -15,7 +15,6 @@ - name: Master | reload systemd command: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - name: Master | reload kubelet service: diff --git a/roles/kubernetes/node/handlers/main.yml b/roles/kubernetes/node/handlers/main.yml index 5991bebf3..00525b995 100644 --- a/roles/kubernetes/node/handlers/main.yml +++ b/roles/kubernetes/node/handlers/main.yml @@ -7,7 +7,6 @@ - name: Kubelet | reload systemd command: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - name: Kubelet | reload kubelet service: diff --git a/roles/kubernetes/node/tasks/install.yml b/roles/kubernetes/node/tasks/install.yml index 6b5fe5bb4..c9061725a 100644 --- a/roles/kubernetes/node/tasks/install.yml +++ b/roles/kubernetes/node/tasks/install.yml @@ -1,17 +1,6 @@ --- - name: install | Write kubelet systemd init file template: src=kubelet.service.j2 dest=/etc/systemd/system/kubelet.service backup=yes - when: ansible_service_mgr == "systemd" - notify: restart kubelet - -- name: install | Write kubelet initd script - template: src=deb-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=0755 backup=yes - when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian" - notify: restart kubelet - -- name: install | Write kubelet initd script - template: src=rh-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=0755 backup=yes - when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "RedHat" notify: restart kubelet - name: install | Install kubelet launch script diff --git a/roles/kubernetes/node/templates/deb-kubelet.initd.j2 b/roles/kubernetes/node/templates/deb-kubelet.initd.j2 deleted file mode 100644 index 194506e89..000000000 --- a/roles/kubernetes/node/templates/deb-kubelet.initd.j2 +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash -# -### BEGIN INIT INFO -# Provides: kubelet -# Required-Start: $local_fs $network $syslog -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: The Kubernetes node container manager -# Description: -# The Kubernetes container manager maintains docker state against a state file. -### END INIT INFO - - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="The Kubernetes container manager" -NAME=kubelet -DAEMON={{ bin_dir }}/kubelet -DAEMON_ARGS="" -DAEMON_LOG_FILE=/var/log/$NAME.log -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -DAEMON_USER=root - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r {{kube_config_dir}}/$NAME.env ] && . {{kube_config_dir}}/$NAME.env - -# 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() -{ - {{ docker_bin_dir }}/docker rm -f kubelet &>/dev/null || true - sleep 1 - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - start-stop-daemon --start --quiet --background --no-close \ - --make-pidfile --pidfile $PIDFILE \ - --exec $DAEMON -c $DAEMON_USER --test > /dev/null \ - || return 1 - start-stop-daemon --start --quiet --background --no-close \ - --make-pidfile --pidfile $PIDFILE \ - --exec $DAEMON -c $DAEMON_USER -- \ - $DAEMON_ARGS >> $DAEMON_LOG_FILE 2>&1 \ - || return 2 -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - # Many daemons don't delete their pidfiles when they exit. - rm -f $PIDFILE - return "$RETVAL" -} - - -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 ;; - 2) exit 1 ;; - esac - ;; - status) - status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $? - ;; - - 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 diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2 index 572a5a283..1de3ba966 100644 --- a/roles/kubernetes/node/templates/kubelet.j2 +++ b/roles/kubernetes/node/templates/kubelet.j2 @@ -1,10 +1,5 @@ -{% if ansible_service_mgr in ["sysvinit","upstart"] %} -# Logging directory -KUBE_LOGGING="--log-dir={{ kube_log_dir }} --logtostderr=true" -{% else %} # logging to stderr means we get it in the systemd journal KUBE_LOGGING="--logtostderr=true" -{% endif %} KUBE_LOG_LEVEL="--v={{ kube_log_level }}" # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces) KUBELET_ADDRESS="--address={{ ip | default("0.0.0.0") }}" @@ -51,8 +46,3 @@ KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }}" {% else %} KUBELET_CLOUDPROVIDER="" {% endif %} -{% if ansible_service_mgr in ["sysvinit","upstart"] %} -DAEMON_ARGS="$KUBE_LOGGING $KUBE_LOG_LEVEL $KUBE_ALLOW_PRIV $KUBELET_API_SERVER $KUBELET_ADDRESS \ -$KUBELET_HOSTNAME $KUBELET_ARGS $DOCKER_SOCKET $KUBELET_ARGS $KUBELET_NETWORK_PLUGIN \ -$KUBELET_CLOUDPROVIDER" -{% endif %} diff --git a/roles/kubernetes/node/templates/rh-kubelet.initd.j2 b/roles/kubernetes/node/templates/rh-kubelet.initd.j2 deleted file mode 100644 index faae10d1a..000000000 --- a/roles/kubernetes/node/templates/rh-kubelet.initd.j2 +++ /dev/null @@ -1,129 +0,0 @@ -#!/bin/bash -# -# /etc/rc.d/init.d/kubelet -# -# chkconfig: 2345 95 95 -# description: Daemon for kubelet (kubernetes.io) - -### BEGIN INIT INFO -# Provides: kubelet -# Required-Start: $local_fs $network $syslog cgconfig -# Required-Stop: -# Should-Start: -# Should-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: start and stop kubelet -# Description: -# The Kubernetes container manager maintains docker state against a state file. -### END INIT INFO - -# Source function library. -. /etc/rc.d/init.d/functions - -prog="kubelet" -exec="{{ bin_dir }}/$prog" -pidfile="/var/run/$prog.pid" -lockfile="/var/lock/subsys/$prog" -logfile="/var/log/$prog" - -[ -e {{kube_config_dir}}/$prog.env ] && . {{kube_config_dir}}/$prog.env - -start() { - if [ ! -x $exec ]; then - if [ ! -e $exec ]; then - echo "Docker executable $exec not found" - else - echo "You do not have permission to execute the Docker executable $exec" - fi - exit 5 - fi - - check_for_cleanup - - if ! [ -f $pidfile ]; then - printf "Starting $prog:\t" - echo "\n$(date)\n" >> $logfile - $exec $DAEMON_ARGS &>> $logfile & - pid=$! - echo $pid >> $pidfile - touch $lockfile - success - echo - else - failure - echo - printf "$pidfile still exists...\n" - exit 7 - fi -} - -stop() { - echo -n $"Stopping $prog: " - killproc -p $pidfile -d 300 $prog - retval=$? - echo - [ $retval -eq 0 ] && rm -f $lockfile - return $retval -} - -restart() { - stop - start -} - -reload() { - restart -} - -force_reload() { - restart -} - -rh_status() { - status -p $pidfile $prog -} - -rh_status_q() { - rh_status >/dev/null 2>&1 -} - - -check_for_cleanup() { - if [ -f ${pidfile} ]; then - /bin/ps -fp $(cat ${pidfile}) > /dev/null || rm ${pidfile} - fi -} - -case "$1" in - start) - rh_status_q && exit 0 - $1 - ;; - stop) - rh_status_q || exit 0 - $1 - ;; - restart) - $1 - ;; - reload) - rh_status_q || exit 7 - $1 - ;; - force-reload) - force_reload - ;; - status) - rh_status - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - exit 2 -esac - -exit $? diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index b94867e51..aeaefc45d 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -1,4 +1,7 @@ --- +- include: pre-upgrade.yml + tags: [upgrade, bootstrap-os] + - name: Force binaries directory for CoreOS set_fact: bin_dir: "/opt/bin" @@ -59,14 +62,6 @@ when: "{{ inventory_hostname in groups['k8s-cluster'] }}" tags: [kubelet, bootstrap-os, master, node] -- name: Create kubernetes logs directory - file: - path: "{{ kube_log_dir }}" - state: directory - owner: kube - when: ansible_service_mgr in ["sysvinit","upstart"] and "{{ inventory_hostname in groups['k8s-cluster'] }}" - tags: [bootstrap-os, master, node] - - name: check cloud_provider value fail: msg: "If set the 'cloud_provider' var must be set either to 'generic', 'gce', 'aws', 'azure' or 'openstack'" @@ -179,7 +174,7 @@ - include: resolvconf.yml tags: [bootstrap-os, resolvconf] - + - name: Check if we are running inside a Azure VM stat: path=/var/lib/waagent/ register: azure_check diff --git a/roles/kubernetes/preinstall/tasks/pre-upgrade.yml b/roles/kubernetes/preinstall/tasks/pre-upgrade.yml new file mode 100644 index 000000000..ebe3a8f35 --- /dev/null +++ b/roles/kubernetes/preinstall/tasks/pre-upgrade.yml @@ -0,0 +1,4 @@ +--- +- name: Stop if non systemd OS type + assert: + that: ansible_service_mgr == "systemd" diff --git a/roles/network_plugin/calico/handlers/main.yml b/roles/network_plugin/calico/handlers/main.yml index d4059c412..78dad7505 100644 --- a/roles/network_plugin/calico/handlers/main.yml +++ b/roles/network_plugin/calico/handlers/main.yml @@ -7,7 +7,6 @@ - name : Calico | reload systemd shell: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - name: Calico | reload calico-node service: diff --git a/roles/network_plugin/calico/rr/handlers/main.yml b/roles/network_plugin/calico/rr/handlers/main.yml index edfb1ad71..efd0e12ac 100644 --- a/roles/network_plugin/calico/rr/handlers/main.yml +++ b/roles/network_plugin/calico/rr/handlers/main.yml @@ -7,7 +7,6 @@ - name : Calico-rr | reload systemd shell: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - name: Calico-rr | reload calico-rr service: diff --git a/roles/network_plugin/calico/rr/tasks/main.yml b/roles/network_plugin/calico/rr/tasks/main.yml index b5807632f..efe4616d2 100644 --- a/roles/network_plugin/calico/rr/tasks/main.yml +++ b/roles/network_plugin/calico/rr/tasks/main.yml @@ -36,12 +36,10 @@ - name: Calico-rr | Write calico-rr.env for systemd init file template: src=calico-rr.env.j2 dest=/etc/calico/calico-rr.env - when: ansible_service_mgr == "systemd" notify: restart calico-rr - name: Calico-rr | Write calico-rr systemd init file template: src=calico-rr.service.j2 dest=/etc/systemd/system/calico-rr.service - when: ansible_service_mgr == "systemd" notify: restart calico-rr - name: Calico-rr | Configure route reflector diff --git a/roles/network_plugin/calico/tasks/main.yml b/roles/network_plugin/calico/tasks/main.yml index ae6e0e4d4..462fcec66 100644 --- a/roles/network_plugin/calico/tasks/main.yml +++ b/roles/network_plugin/calico/tasks/main.yml @@ -162,33 +162,19 @@ run_once: true when: legacy_calicoctl -- name: Calico | Write /etc/network-environment - template: src=network-environment.j2 dest=/etc/network-environment - when: ansible_service_mgr in ["sysvinit","upstart"] - - name: Calico (old) | Write calico-node systemd init file template: src=calico-node.service.legacy.j2 dest=/etc/systemd/system/calico-node.service - when: ansible_service_mgr == "systemd" and legacy_calicoctl + when: legacy_calicoctl notify: restart calico-node - name: Calico | Write calico.env for systemd init file template: src=calico.env.j2 dest=/etc/calico/calico.env - when: ansible_service_mgr == "systemd" and not legacy_calicoctl + when: not legacy_calicoctl notify: restart calico-node - name: Calico | Write calico-node systemd init file template: src=calico-node.service.j2 dest=/etc/systemd/system/calico-node.service - when: ansible_service_mgr == "systemd" and not legacy_calicoctl - notify: restart calico-node - -- name: Calico | Write calico-node initd script - template: src=deb-calico.initd.j2 dest=/etc/init.d/calico-node owner=root mode=0755 - when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "Debian" - notify: restart calico-node - -- name: Calico | Write calico-node initd script - template: src=rh-calico.initd.j2 dest=/etc/init.d/calico-node owner=root mode=0755 - when: ansible_service_mgr in ["sysvinit","upstart"] and ansible_os_family == "RedHat" + when: not legacy_calicoctl notify: restart calico-node - name: Calico | Restart calico-node if secrets changed diff --git a/roles/network_plugin/calico/templates/deb-calico.initd.j2 b/roles/network_plugin/calico/templates/deb-calico.initd.j2 deleted file mode 100644 index e155cae9c..000000000 --- a/roles/network_plugin/calico/templates/deb-calico.initd.j2 +++ /dev/null @@ -1,124 +0,0 @@ -#!/bin/bash -# -### BEGIN INIT INFO -# Provides: calico-node -# Required-Start: $local_fs $network $syslog -# Required-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Calico docker container -# Description: -# Runs calico as a docker container -### END INIT INFO -set -a - -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="Calico-node Docker" -NAME=calico-node -DAEMON={{ bin_dir }}/calicoctl -DAEMON_ARGS="" -DOCKER=$(which docker) -SCRIPTNAME=/etc/init.d/$NAME -DAEMON_USER=root - -# Exit if the binary is not present -[ -x "$DAEMON" ] || exit 0 - -# Exit if the docker package is not installed -[ -x "$DOCKER" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/network-environment ] && . /etc/network-environment - -# 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 - -do_status() -{ - if [ $($DOCKER ps --format "{{.Image}}" | grep -cw 'calico/node') -eq 1 ]; then - return 0 - else - return 1 - fi -} - -# Function that starts the daemon/service -# -do_start() -{ - do_status - retval=$? - if [ $retval -ne 0 ]; then -{% if legacy_calicoctl %} - ${DAEMON} node --ip=${DEFAULT_IPV4} >>/dev/null && return 0 || return 2 -{% else %} - ${DAEMON} node run --ip=${DEFAULT_IPV4} >>/dev/null && return 0 || return 2 -{% endif %} - else - return 1 - fi -} - -# -# Function that stops the daemon/service -# -do_stop() -{ -{% if legacy_calicoctl %} - ${DAEMON} node stop >> /dev/null || ${DAEMON} node stop --force >> /dev/null -{% else %} - echo "Current version of ${DAEMON} doesn't support 'node stop' command!" - return 1 -{% endif %} -} - - -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" - if do_stop; then - log_end_msg 0 - else - log_failure_msg "Can't stop calico-node" - log_end_msg 1 - fi - ;; - status) - if do_status; then - log_end_msg 0 - else - log_failure_msg "Calico-node is not running" - log_end_msg 1 - fi - ;; - - restart|force-reload) - log_daemon_msg "Restarting $DESC" "$NAME" - if do_stop; then - if do_start; then - log_end_msg 0 - exit 0 - else - rc="$?" - fi - else - rc="$?" - fi - log_failure_msg "Can't restart Calico-node" - log_end_msg ${rc} - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - exit 3 - ;; -esac diff --git a/roles/network_plugin/calico/templates/network-environment.j2 b/roles/network_plugin/calico/templates/network-environment.j2 deleted file mode 100644 index 8fd13d36c..000000000 --- a/roles/network_plugin/calico/templates/network-environment.j2 +++ /dev/null @@ -1,12 +0,0 @@ -# This host's IPv4 address (the source IP address used to reach other nodes -# in the Kubernetes cluster). -DEFAULT_IPV4={{ip | default(ansible_default_ipv4.address) }} - -# The Kubernetes master IP -KUBERNETES_MASTER={{ kube_apiserver_endpoint }} - -# IP and port of etcd instance used by Calico -ETCD_ENDPOINTS={{ etcd_access_endpoint }} -ETCD_CA_CERT_FILE=/etc/calico/certs/ca_cert.crt -ETCD_CERT_FILE=/etc/calico/certs/cert.crt -ETCD_KEY_FILE=/etc/calico/certs/key.pem diff --git a/roles/network_plugin/calico/templates/rh-calico.initd.j2 b/roles/network_plugin/calico/templates/rh-calico.initd.j2 deleted file mode 100644 index 7fea72521..000000000 --- a/roles/network_plugin/calico/templates/rh-calico.initd.j2 +++ /dev/null @@ -1,140 +0,0 @@ -#!/bin/bash -# -# /etc/rc.d/init.d/calico-node -# -# chkconfig: 2345 95 95 -# description: Daemon for calico-node (http://www.projectcalico.org/) -set -a - -### BEGIN INIT INFO -# Provides: calico-node -# Required-Start: $local_fs $network $syslog cgconfig -# Required-Stop: -# Should-Start: -# Should-Stop: -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: start and stop calico-node -# Description: -# Manage calico-docker container -### END INIT INFO - -# Source function library. -. /etc/rc.d/init.d/functions - -prog="calicoctl" -exec="{{ bin_dir }}/$prog" -dockerexec="$(which docker)" -logfile="/var/log/$prog" - -[ -e /etc/network-environment ] && for i in $(cat /etc/network-environment | egrep '(^$|^#)'); do export $i; done - -do_status() -{ - if [ $($dockerexec ps --format "{{.Image}}" | grep -cw 'calico/node') -ne 1 ]; then - return 1 - fi -} - -do_start() { - if [ ! -x $exec ]; then - if [ ! -e $exec ]; then - echo "calico-node executable $exec not found" - else - echo "You do not have permission to execute the calico-node executable $exec" - fi - exit 5 - fi - - [ -x "$dockerexec" ] || exit 0 - - do_status - retval=$? - if [ $retval -ne 0 ]; then - printf "Starting $prog:\t" - echo "\n$(date)\n" >> $logfile -{% if legacy_calicoctl %} - $exec node --ip=${DEFAULT_IPV4} &>>$logfile -{% else %} - $exec node run --ip=${DEFAULT_IPV4} &>>$logfile -{% endif %} - success - echo - else - echo -n "calico-node's already running" - success - exit 0 - fi -} - -do_stop() { - echo -n $"Stopping $prog: " -{% if legacy_calicoctl %} - $exec node stop >> /dev/null || $exec node stop --force >> /dev/null -{% else %} - echo "Current version of ${exec} doesn't support 'node stop' command!" - return 1 -{% endif %} - retval=$? - echo - return $retval -} - -restart() { - do_stop - do_start -} - -reload() { - restart -} - -force_reload() { - restart -} - -case "$1" in - start) - do_start - case "$?" in - 0|1) success || exit 0 ;; - 2) failure || exit 1 ;; - esac - ;; - stop) - echo -n "Stopping $DESC" "$NAME" - if do_stop; then - success - echo - else - echo -n "Can't stop calico-node" - failure - echo - fi - ;; - restart) - $1 - ;; - reload) - $1 - ;; - force-reload) - force_reload - ;; - status) - if do_status; then - echo -n "Calico-node is running" - success - echo - else - echo -n "Calico-node is not running" - failure - echo - fi - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|reload|force-reload}" - exit 2 -esac - -exit $? diff --git a/roles/network_plugin/flannel/handlers/main.yml b/roles/network_plugin/flannel/handlers/main.yml index e393b6163..b2a66f43f 100644 --- a/roles/network_plugin/flannel/handlers/main.yml +++ b/roles/network_plugin/flannel/handlers/main.yml @@ -15,7 +15,6 @@ - name : Flannel | reload systemd shell: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - name: Flannel | reload docker.socket service: diff --git a/roles/network_plugin/flannel/tasks/main.yml b/roles/network_plugin/flannel/tasks/main.yml index e6866af31..47aec49d9 100644 --- a/roles/network_plugin/flannel/tasks/main.yml +++ b/roles/network_plugin/flannel/tasks/main.yml @@ -51,31 +51,11 @@ docker_network_options: '"--bip={{ flannel_subnet }} --mtu={{ flannel_mtu }}"' tags: facts -- name: Flannel | Remove non-systemd docker daemon network options that don't match desired line - lineinfile: - dest: "{{ docker_options_file }}" - regexp: "^DOCKER_NETWORK_OPTIONS=(?!{{ docker_network_options|regex_escape() }})" - state: absent - when: ansible_service_mgr in ["sysvinit","upstart"] - -- name: Flannel | Set non-systemd docker daemon network options - lineinfile: - dest: "{{ docker_options_file }}" - line: DOCKER_NETWORK_OPTIONS={{ docker_network_options }} - insertbefore: ^{{ docker_options_name }}= - owner: root - group: root - mode: 0644 - notify: - - Flannel | restart docker - when: ansible_service_mgr in ["sysvinit","upstart"] - - name: Flannel | Ensure path for docker network systemd drop-in file: path: "/etc/systemd/system/docker.service.d" state: directory owner: root - when: ansible_service_mgr == "systemd" - name: Flannel | Create docker network systemd drop-in template: @@ -83,6 +63,3 @@ dest: "/etc/systemd/system/docker.service.d/flannel-options.conf" notify: - Flannel | restart docker - when: ansible_service_mgr == "systemd" - -- meta: flush_handlers diff --git a/roles/network_plugin/weave/handlers/main.yml b/roles/network_plugin/weave/handlers/main.yml index e821e989b..b9c3e31d8 100644 --- a/roles/network_plugin/weave/handlers/main.yml +++ b/roles/network_plugin/weave/handlers/main.yml @@ -7,7 +7,6 @@ - name : Weave | reload systemd shell: systemctl daemon-reload - when: ansible_service_mgr == "systemd" - name: restart weaveproxy command: /bin/true diff --git a/roles/network_plugin/weave/tasks/main.yml b/roles/network_plugin/weave/tasks/main.yml index 9609ea141..ea226572b 100644 --- a/roles/network_plugin/weave/tasks/main.yml +++ b/roles/network_plugin/weave/tasks/main.yml @@ -31,17 +31,14 @@ - name: Weave | Write weave systemd init file template: src=weave.service.j2 dest=/etc/systemd/system/weave.service - when: ansible_service_mgr == "systemd" notify: restart weave - name: Weave | Write weaveproxy systemd init file template: src=weaveproxy.service.j2 dest=/etc/systemd/system/weaveproxy.service - when: ansible_service_mgr == "systemd" notify: restart weaveproxy - name: Weave | Write weaveexpose systemd init file template: src=weaveexpose.service.j2 dest=/etc/systemd/system/weaveexpose.service - when: ansible_service_mgr == "systemd" notify: restart weaveexpose - meta: flush_handlers diff --git a/roles/reset/tasks/main.yml b/roles/reset/tasks/main.yml index 217ce6729..93f13fb5f 100644 --- a/roles/reset/tasks/main.yml +++ b/roles/reset/tasks/main.yml @@ -18,7 +18,7 @@ - name: reset | systemctl daemon-reload command: systemctl daemon-reload - when: ansible_service_mgr == "systemd" and services_removed.changed + when: services_removed.changed - name: reset | remove all containers shell: "{{ docker_bin_dir }}/docker ps -aq | xargs -r docker rm -fv"