mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
Merge pull request #10967 from thockin/automated-cherry-pick-of-#10488-on-upstream-release-0.21
Automated cherry pick of #10488 on upstream release 0.21
This commit is contained in:
commit
5c41af424f
9
cluster/saltbase/pillar/systemd.sls
Normal file
9
cluster/saltbase/pillar/systemd.sls
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{% if grains['oscodename'] in [ 'vivid', 'jessie' ] %}
|
||||||
|
is_systemd: True
|
||||||
|
systemd_system_path: /lib/systemd/system
|
||||||
|
{% elif grains['os_family'] == 'RedHat' %}
|
||||||
|
is_systemd: True
|
||||||
|
systemd_system_path: /usr/lib/systemd/system
|
||||||
|
{% else %}
|
||||||
|
is_systemd: False
|
||||||
|
{% endif %}
|
@ -5,3 +5,4 @@ base:
|
|||||||
- logging
|
- logging
|
||||||
- docker-images
|
- docker-images
|
||||||
- privilege
|
- privilege
|
||||||
|
- systemd
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
DOCKER_OPTS=""
|
{% set grains_opts = grains.get('docker_opts', '') -%}
|
||||||
{% if grains.docker_opts is defined and grains.docker_opts %}
|
DOCKER_OPTS="{{grains_opts}} --bridge=cbr0 --iptables=false --ip-masq=false"
|
||||||
DOCKER_OPTS="${DOCKER_OPTS} {{grains.docker_opts}}"
|
|
||||||
{% endif %}
|
|
||||||
DOCKER_OPTS="${DOCKER_OPTS} --bridge=cbr0 --iptables=false --ip-masq=false"
|
|
||||||
DOCKER_NOFILE=1000000
|
DOCKER_NOFILE=1000000
|
||||||
|
20
cluster/saltbase/salt/docker/docker.service
Normal file
20
cluster/saltbase/salt/docker/docker.service
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Docker Application Container Engine
|
||||||
|
Documentation=http://docs.docker.com
|
||||||
|
After=network.target docker.socket
|
||||||
|
Requires=docker.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile={{ environment_file }}
|
||||||
|
ExecStart=/usr/bin/docker -d -H fd:// "$DOCKER_OPTS"
|
||||||
|
MountFlags=slave
|
||||||
|
LimitNOFILE=1048576
|
||||||
|
LimitNPROC=1048576
|
||||||
|
LimitCORE=infinity
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2s
|
||||||
|
StartLimitInterval=0
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
{% if grains['os_family'] == 'RedHat' %}
|
{% if pillar.get('is_systemd') %}
|
||||||
{% set environment_file = '/etc/sysconfig/docker' %}
|
{% set environment_file = '/etc/sysconfig/docker' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set environment_file = '/etc/default/docker' %}
|
{% set environment_file = '/etc/default/docker' %}
|
||||||
@ -116,6 +116,36 @@ lxc-docker-{{ override_docker_ver }}:
|
|||||||
- file: /var/cache/docker-install/{{ override_deb }}
|
- file: /var/cache/docker-install/{{ override_deb }}
|
||||||
{% endif %} # end override_docker_ver != ''
|
{% endif %} # end override_docker_ver != ''
|
||||||
|
|
||||||
|
# Default docker systemd unit file doesn't use an EnvironmentFile; replace it with one that does.
|
||||||
|
{% if pillar.get('is_systemd') %}
|
||||||
|
|
||||||
|
{{ pillar.get('systemd_system_path') }}/docker.service:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://docker/docker.service
|
||||||
|
- template: jinja
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 644
|
||||||
|
- defaults:
|
||||||
|
environment_file: {{ environment_file }}
|
||||||
|
|
||||||
|
# The docker service.running block below doesn't work reliably
|
||||||
|
# Instead we run our script which e.g. does a systemd daemon-reload
|
||||||
|
# But we keep the service block below, so it can be used by dependencies
|
||||||
|
# TODO: Fix this
|
||||||
|
fix-service-docker:
|
||||||
|
cmd.wait:
|
||||||
|
- name: /opt/kubernetes/helpers/services bounce docker
|
||||||
|
- watch:
|
||||||
|
- file: {{ pillar.get('systemd_system_path') }}/docker.service
|
||||||
|
- file: {{ environment_file }}
|
||||||
|
{% if override_docker_ver != '' %}
|
||||||
|
- require:
|
||||||
|
- pkg: lxc-docker-{{ override_docker_ver }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
docker:
|
docker:
|
||||||
service.running:
|
service.running:
|
||||||
# Starting Docker is racy on aws for some reason. To be honest, since Monit
|
# Starting Docker is racy on aws for some reason. To be honest, since Monit
|
||||||
@ -129,6 +159,9 @@ docker:
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: {{ environment_file }}
|
- file: {{ environment_file }}
|
||||||
|
{% if pillar.get('is_systemd') %}
|
||||||
|
- file: {{ pillar.get('systemd_system_path') }}/docker.service
|
||||||
|
{% endif %}
|
||||||
{% if override_docker_ver != '' %}
|
{% if override_docker_ver != '' %}
|
||||||
- require:
|
- require:
|
||||||
- pkg: lxc-docker-{{ override_docker_ver }}
|
- pkg: lxc-docker-{{ override_docker_ver }}
|
||||||
|
@ -24,9 +24,11 @@ delete_etcd_default:
|
|||||||
file.absent:
|
file.absent:
|
||||||
- name: /etc/default/etcd
|
- name: /etc/default/etcd
|
||||||
|
|
||||||
|
{% if pillar.get('is_systemd') %}
|
||||||
delete_etcd_service_file:
|
delete_etcd_service_file:
|
||||||
file.absent:
|
file.absent:
|
||||||
- name: /usr/lib/systemd/system/etcd.service
|
- name: {{ pillar.get('systemd_system_path') }}/etcd.service
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
delete_etcd_initd:
|
delete_etcd_initd:
|
||||||
file.absent:
|
file.absent:
|
||||||
|
@ -119,13 +119,17 @@ addon-dir-create:
|
|||||||
- group: root
|
- group: root
|
||||||
- mode: 755
|
- mode: 755
|
||||||
|
|
||||||
{% if grains['os_family'] == 'RedHat' %}
|
{% if pillar.get('is_systemd') %}
|
||||||
|
|
||||||
/usr/lib/systemd/system/kube-addons.service:
|
{{ pillar.get('systemd_system_path') }}/kube-addons.service:
|
||||||
file.managed:
|
file.managed:
|
||||||
- source: salt://kube-addons/kube-addons.service
|
- source: salt://kube-addons/kube-addons.service
|
||||||
- user: root
|
- user: root
|
||||||
- group: root
|
- group: root
|
||||||
|
cmd.wait:
|
||||||
|
- name: /opt/kubernetes/helpers/services bounce kube-addons
|
||||||
|
- watch:
|
||||||
|
- file: {{ pillar.get('systemd_system_path') }}/kube-addons.service
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
@ -151,3 +155,9 @@ kube-addons:
|
|||||||
- enable: True
|
- enable: True
|
||||||
- require:
|
- require:
|
||||||
- service: service-kube-addon-stop
|
- 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 %}
|
@ -5,25 +5,6 @@
|
|||||||
- group: root
|
- group: root
|
||||||
- mode: 755
|
- mode: 755
|
||||||
|
|
||||||
{% if grains['os_family'] == 'RedHat' %}
|
|
||||||
|
|
||||||
/usr/lib/systemd/system/kube-master-addons.service:
|
|
||||||
file.managed:
|
|
||||||
- source: salt://kube-master-addons/kube-master-addons.service
|
|
||||||
- user: root
|
|
||||||
- group: root
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
/etc/init.d/kube-master-addons:
|
|
||||||
file.managed:
|
|
||||||
- source: salt://kube-master-addons/initd
|
|
||||||
- user: root
|
|
||||||
- group: root
|
|
||||||
- mode: 755
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
# Used to restart kube-master-addons service each time salt is run
|
# Used to restart kube-master-addons service each time salt is run
|
||||||
# Actually, it doens't work (the service is not restarted),
|
# Actually, it doens't work (the service is not restarted),
|
||||||
# but master-addon service always terminates after it does it job,
|
# but master-addon service always terminates after it does it job,
|
||||||
@ -37,6 +18,29 @@ master-docker-image-tags:
|
|||||||
file.touch:
|
file.touch:
|
||||||
- name: /srv/pillar/docker-images.sls
|
- name: /srv/pillar/docker-images.sls
|
||||||
|
|
||||||
|
{% if pillar.get('is_systemd') %}
|
||||||
|
|
||||||
|
{{ pillar.get('systemd_system_path') }}/kube-master-addons.service:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://kube-master-addons/kube-master-addons.service
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
cmd.wait:
|
||||||
|
- name: /opt/kubernetes/helpers/services bounce kube-master-addons
|
||||||
|
- watch:
|
||||||
|
- file: master-docker-image-tags
|
||||||
|
- file: /etc/kubernetes/kube-master-addons.sh
|
||||||
|
- file: {{ pillar.get('systemd_system_path') }}/kube-master-addons.service
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
/etc/init.d/kube-master-addons:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://kube-master-addons/initd
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 755
|
||||||
|
|
||||||
kube-master-addons:
|
kube-master-addons:
|
||||||
service.running:
|
service.running:
|
||||||
- enable: True
|
- enable: True
|
||||||
@ -44,3 +48,5 @@ kube-master-addons:
|
|||||||
- watch:
|
- watch:
|
||||||
- file: master-docker-image-tags
|
- file: master-docker-image-tags
|
||||||
- file: /etc/kubernetes/kube-master-addons.sh
|
- file: /etc/kubernetes/kube-master-addons.sh
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{% if grains['os_family'] == 'RedHat' %}
|
{% if pillar.get('is_systemd') %}
|
||||||
{% set environment_file = '/etc/sysconfig/kube-proxy' %}
|
{% set environment_file = '/etc/sysconfig/kube-proxy' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set environment_file = '/etc/default/kube-proxy' %}
|
{% set environment_file = '/etc/default/kube-proxy' %}
|
||||||
@ -11,25 +11,6 @@
|
|||||||
- group: root
|
- group: root
|
||||||
- mode: 755
|
- mode: 755
|
||||||
|
|
||||||
{% if grains['os_family'] == 'RedHat' %}
|
|
||||||
|
|
||||||
/usr/lib/systemd/system/kube-proxy.service:
|
|
||||||
file.managed:
|
|
||||||
- source: salt://kube-proxy/kube-proxy.service
|
|
||||||
- user: root
|
|
||||||
- group: root
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
/etc/init.d/kube-proxy:
|
|
||||||
file.managed:
|
|
||||||
- source: salt://kube-proxy/initd
|
|
||||||
- user: root
|
|
||||||
- group: root
|
|
||||||
- mode: 755
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{{ environment_file }}:
|
{{ environment_file }}:
|
||||||
file.managed:
|
file.managed:
|
||||||
- source: salt://kube-proxy/default
|
- source: salt://kube-proxy/default
|
||||||
@ -48,11 +29,41 @@ kube-proxy:
|
|||||||
- home: /var/kube-proxy
|
- home: /var/kube-proxy
|
||||||
- require:
|
- require:
|
||||||
- group: kube-proxy
|
- group: kube-proxy
|
||||||
|
|
||||||
|
{% if pillar.get('is_systemd') %}
|
||||||
|
|
||||||
|
{{ pillar.get('systemd_system_path') }}/kube-proxy.service:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://kube-proxy/kube-proxy.service
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
cmd.wait:
|
||||||
|
- name: /opt/kubernetes/helpers/services bounce kube-proxy
|
||||||
|
- watch:
|
||||||
|
- file: {{ environment_file }}
|
||||||
|
- file: {{ pillar.get('systemd_system_path') }}/kube-proxy.service
|
||||||
|
- file: /var/lib/kube-proxy/kubeconfig
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
/etc/init.d/kube-proxy:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://kube-proxy/initd
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 755
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
kube-proxy-service:
|
||||||
service.running:
|
service.running:
|
||||||
|
- name: kube-proxy
|
||||||
- enable: True
|
- enable: True
|
||||||
- watch:
|
- watch:
|
||||||
- file: {{ environment_file }}
|
- file: {{ environment_file }}
|
||||||
{% if grains['os_family'] != 'RedHat' %}
|
{% if pillar.get('is_systemd') %}
|
||||||
|
- file: {{ pillar.get('systemd_system_path') }}/kube-proxy.service
|
||||||
|
{% else %}
|
||||||
- file: /etc/init.d/kube-proxy
|
- file: /etc/init.d/kube-proxy
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- file: /var/lib/kube-proxy/kubeconfig
|
- file: /var/lib/kube-proxy/kubeconfig
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{% if grains['os_family'] == 'RedHat' %}
|
{% if pillar.get('is_systemd') %}
|
||||||
{% set environment_file = '/etc/sysconfig/kubelet' %}
|
{% set environment_file = '/etc/sysconfig/kubelet' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set environment_file = '/etc/default/kubelet' %}
|
{% set environment_file = '/etc/default/kubelet' %}
|
||||||
@ -19,25 +19,6 @@
|
|||||||
- group: root
|
- group: root
|
||||||
- mode: 755
|
- mode: 755
|
||||||
|
|
||||||
{% if grains['os_family'] == 'RedHat' %}
|
|
||||||
|
|
||||||
/usr/lib/systemd/system/kubelet.service:
|
|
||||||
file.managed:
|
|
||||||
- source: salt://kubelet/kubelet.service
|
|
||||||
- user: root
|
|
||||||
- group: root
|
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
/etc/init.d/kubelet:
|
|
||||||
file.managed:
|
|
||||||
- source: salt://kubelet/initd
|
|
||||||
- user: root
|
|
||||||
- group: root
|
|
||||||
- mode: 755
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
# The default here is that this file is blank. If this is the case, the kubelet
|
# The default here is that this file is blank. If this is the case, the kubelet
|
||||||
# won't be able to parse it as JSON and will try to use the kubernetes_auth file
|
# won't be able to parse it as JSON and will try to use the kubernetes_auth file
|
||||||
# instead. You'll see a single error line in the kubelet start up file
|
# instead. You'll see a single error line in the kubelet start up file
|
||||||
@ -64,12 +45,46 @@
|
|||||||
- mode: 400
|
- mode: 400
|
||||||
- makedirs: true
|
- makedirs: true
|
||||||
|
|
||||||
|
{% if pillar.get('is_systemd') %}
|
||||||
|
|
||||||
|
{{ pillar.get('systemd_system_path') }}/kubelet.service:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://kubelet/kubelet.service
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
|
||||||
|
# The service.running block below doesn't work reliably
|
||||||
|
# Instead we run our script which e.g. does a systemd daemon-reload
|
||||||
|
# But we keep the service block below, so it can be used by dependencies
|
||||||
|
# TODO: Fix this
|
||||||
|
fix-service-kubelet:
|
||||||
|
cmd.wait:
|
||||||
|
- name: /opt/kubernetes/helpers/services bounce kubelet
|
||||||
|
- watch:
|
||||||
|
- file: /usr/local/bin/kubelet
|
||||||
|
- file: {{ pillar.get('systemd_system_path') }}/kubelet.service
|
||||||
|
- file: {{ environment_file }}
|
||||||
|
- file: /var/lib/kubelet/kubernetes_auth
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
/etc/init.d/kubelet:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://kubelet/initd
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 755
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
kubelet:
|
kubelet:
|
||||||
service.running:
|
service.running:
|
||||||
- enable: True
|
- enable: True
|
||||||
- watch:
|
- watch:
|
||||||
- file: /usr/local/bin/kubelet
|
- file: /usr/local/bin/kubelet
|
||||||
{% if grains['os_family'] != 'RedHat' %}
|
{% if pillar.get('is_systemd') %}
|
||||||
|
- file: {{ pillar.get('systemd_system_path') }}/kubelet.service
|
||||||
|
{% else %}
|
||||||
- file: /etc/init.d/kubelet
|
- file: /etc/init.d/kubelet
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if grains['os_family'] == 'RedHat' %}
|
{% if grains['os_family'] == 'RedHat' %}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{% if grains['os_family'] != 'RedHat' %}
|
{% if not pillar.get('is_systemd') %}
|
||||||
|
|
||||||
monit:
|
monit:
|
||||||
pkg:
|
pkg:
|
||||||
|
15
cluster/saltbase/salt/salt-helpers/init.sls
Normal file
15
cluster/saltbase/salt/salt-helpers/init.sls
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{% if pillar.get('is_systemd') %}
|
||||||
|
/opt/kubernetes/helpers:
|
||||||
|
file.directory:
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- makedirs: True
|
||||||
|
- dir_mode: 755
|
||||||
|
|
||||||
|
/opt/kubernetes/helpers/services:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://salt-helpers/services
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 755
|
||||||
|
{% endif %}
|
69
cluster/saltbase/salt/salt-helpers/services
Normal file
69
cluster/saltbase/salt/salt-helpers/services
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2015 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.
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
ACTION=${1}
|
||||||
|
SERVICE=${2}
|
||||||
|
|
||||||
|
if [[ -z "${ACTION}" || -z "${SERVICE}" ]]; then
|
||||||
|
echo "Syntax: ${0} <action> <service>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
function reload_state() {
|
||||||
|
systemctl daemon-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
function start_service() {
|
||||||
|
systemctl start ${SERVICE}
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop_service() {
|
||||||
|
systemctl stop ${SERVICE}
|
||||||
|
}
|
||||||
|
|
||||||
|
function enable_service() {
|
||||||
|
systemctl enable ${SERVICE}
|
||||||
|
}
|
||||||
|
|
||||||
|
function disable_service() {
|
||||||
|
systemctl disable ${SERVICE}
|
||||||
|
}
|
||||||
|
|
||||||
|
function restart_service() {
|
||||||
|
systemctl restart ${SERVICE}
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "${ACTION}" == "up" ]]; then
|
||||||
|
reload_state
|
||||||
|
enable_service
|
||||||
|
start_service
|
||||||
|
elif [[ "${ACTION}" == "bounce" ]]; then
|
||||||
|
reload_state
|
||||||
|
enable_service
|
||||||
|
restart_service
|
||||||
|
elif [[ "${ACTION}" == "down" ]]; then
|
||||||
|
reload_state
|
||||||
|
disable_service
|
||||||
|
stop_service
|
||||||
|
else
|
||||||
|
echo "Unknown action: ${ACTION}"
|
||||||
|
exit 1
|
||||||
|
fi
|
@ -2,6 +2,7 @@ base:
|
|||||||
'*':
|
'*':
|
||||||
- base
|
- base
|
||||||
- debian-auto-upgrades
|
- debian-auto-upgrades
|
||||||
|
- salt-helpers
|
||||||
|
|
||||||
'roles:kubernetes-pool':
|
'roles:kubernetes-pool':
|
||||||
- match: grain
|
- match: grain
|
||||||
|
Loading…
Reference in New Issue
Block a user