mirror of https://github.com/k3s-io/k3s
221 lines
8.6 KiB
YAML
221 lines
8.6 KiB
YAML
#cloud-config
|
|
|
|
coreos:
|
|
update:
|
|
reboot-strategy: off
|
|
units:
|
|
- name: locksmithd.service
|
|
mask: true
|
|
- name: kube-env.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Fetch kubernetes-node-environment
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
ExecStartPre=/usr/bin/curl --fail --silent --show-error \
|
|
-H "X-Google-Metadata-Request: True" \
|
|
-o /etc/kube-env.yaml \
|
|
http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env
|
|
# Transform the yaml to env file.
|
|
ExecStartPre=/usr/bin/mv /etc/kube-env.yaml /etc/kube-env
|
|
ExecStart=/usr/bin/sed -i "s/: '/=/;s/'$//" /etc/kube-env
|
|
|
|
- name: kubernetes-install-cni.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Download cni
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
ExecStartPre=/usr/bin/mkdir -p /opt/cni
|
|
ExecStartPre=/usr/bin/curl --fail --silent --show-error --location --create-dirs --output /opt/downloads/cni.tar.gz https://storage.googleapis.com/kubernetes-release/network-plugins/cni-07a8a28637e97b22eb8dfe710eeae1344f69d16e.tar.gz
|
|
ExecStart=/usr/bin/tar xf /opt/downloads/cni.tar.gz -C /opt/cni/
|
|
|
|
- name: kubernetes-install-docker2aci.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Download docker2aci
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
ExecStartPre=/usr/bin/mkdir -p /opt/docker2aci
|
|
ExecStartPre=/usr/bin/curl --fail --silent --show-error --location --create-dirs --output /opt/downloads/docker2aci.tar.gz https://github.com/appc/docker2aci/releases/download/v0.11.1/docker2aci-v0.11.1.tar.gz
|
|
ExecStart=/usr/bin/tar --strip-components=1 -xf /opt/downloads/docker2aci.tar.gz -C /opt/docker2aci/ --overwrite
|
|
|
|
- name: kubernetes-install-rkt.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Fetch rkt
|
|
Documentation=http://github.com/coreos/rkt
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
Requires=kube-env.service
|
|
After=kube-env.service
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
EnvironmentFile=/etc/kube-env
|
|
ExecStartPre=/usr/bin/mkdir -p /etc/rkt /opt/downloads /opt/rkt/
|
|
ExecStartPre=/usr/bin/curl --fail --silent --location --create-dirs --output /opt/downloads/rkt.tar.gz https://github.com/coreos/rkt/releases/download/v${RKT_VERSION}/rkt-v${RKT_VERSION}.tar.gz
|
|
ExecStart=/usr/bin/tar --strip-components=1 -xf /opt/downloads/rkt.tar.gz -C /opt/rkt/ --overwrite
|
|
|
|
- name: kubernetes-load-rkt-stage1.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Load rkt stage1 images
|
|
Documentation=http://github.com/coreos/rkt
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
Requires=kubernetes-install-rkt.service
|
|
After=kubernetes-install-rkt.service
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/opt/rkt/rkt fetch /opt/rkt/stage1-coreos.aci /opt/rkt/stage1-kvm.aci /opt/rkt/stage1-fly.aci --insecure-options=image
|
|
|
|
- name: kubernetes-download-salt.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Download salt
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
Requires=kube-env.service
|
|
After=kube-env.service
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
EnvironmentFile=/etc/kube-env
|
|
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
|
|
ExecStartPre=/usr/bin/curl --fail --silent --show-error --location --create-dirs --output \
|
|
/opt/downloads/kubernetes-salt.tar.gz ${SALT_TAR_URL}
|
|
# TODO(yifan): Check hash.
|
|
ExecStart=/usr/bin/tar xf /opt/downloads/kubernetes-salt.tar.gz -C /opt --overwrite
|
|
|
|
- name: kubernetes-download-manifests.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Download manifests
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
Requires=kube-env.service
|
|
After=kube-env.service
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
EnvironmentFile=/etc/kube-env
|
|
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
|
|
ExecStartPre=/usr/bin/curl --fail --silent --show-error --location --create-dirs --output \
|
|
/opt/downloads/kubernetes-manifests.tar.gz ${KUBE_MANIFESTS_TAR_URL}
|
|
# TODO(yifan): Check hash.
|
|
ExecStartPre=/usr/bin/mkdir -p /opt/kube-manifests
|
|
ExecStart=/usr/bin/tar xf /opt/downloads/kubernetes-manifests.tar.gz -C /opt/kube-manifests --overwrite
|
|
|
|
- name: kubernetes-install-node.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Install Kubernetes Server
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
Requires=kube-env.service
|
|
After=kube-env.service
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
EnvironmentFile=/etc/kube-env
|
|
ExecStartPre=/usr/bin/mkdir -p /opt/downloads
|
|
ExecStartPre=/usr/bin/curl --fail --silent --show-error --location --create-dirs --output \
|
|
/opt/downloads/kubernetes-server-linux-amd64.tar.gz ${SERVER_BINARY_TAR_URL}
|
|
# TODO(yifan): Check hash.
|
|
ExecStart=/usr/bin/tar xf /opt/downloads/kubernetes-server-linux-amd64.tar.gz -C /opt --overwrite
|
|
|
|
- name: rkt-api-service.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Start rkt API service as Daemon
|
|
Requires=kubernetes-install-rkt.service
|
|
After=kubernetes-install-rkt.service
|
|
[Service]
|
|
ExecStart=/opt/rkt/rkt api-service
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
- name: kubelet.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Run Kubelet service
|
|
Requires=network-online.target kube-env.service kubernetes-download-manifests.service kubernetes-install-cni.service kubernetes-load-rkt-stage1.service
|
|
After=network-online.target kube-env.service kubernetes-download-manifests.service kubernetes-install-cni.service kubernetes-load-rkt-stage1.service
|
|
[Service]
|
|
EnvironmentFile=/etc/kube-env
|
|
ExecStartPre=/usr/bin/curl --fail --silent --show-error \
|
|
-H "X-Google-Metadata-Request: True" \
|
|
-o /run/configure-kubelet.sh \
|
|
http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-kubelet
|
|
ExecStartPre=/usr/bin/chmod 0755 /run/configure-kubelet.sh
|
|
ExecStartPre=/run/configure-kubelet.sh
|
|
ExecStart=/opt/kubernetes/server/bin/kubelet \
|
|
--api-servers=https://${INSTANCE_PREFIX}-master \
|
|
--enable-debugging-handlers=false \
|
|
--cloud-provider=gce \
|
|
--config=/etc/kubernetes/manifests \
|
|
--allow-privileged=true \
|
|
--v=2 \
|
|
--cluster-dns=${DNS_SERVER_IP} \
|
|
--cluster-domain=${DNS_DOMAIN} \
|
|
--logtostderr=true \
|
|
--container-runtime=rkt \
|
|
--rkt-path=/opt/rkt/rkt \
|
|
--rkt-stage1-image=${RKT_STAGE_IMAGE} \
|
|
--pod-cidr=${MASTER_IP_RANGE} \
|
|
--register-schedulable=false
|
|
Restart=always
|
|
RestartSec=10
|
|
KillMode=process
|
|
|
|
- name: docker.service
|
|
command: stop
|
|
|
|
- name: kubernetes-configure-node.service
|
|
command: start
|
|
content: |
|
|
[Unit]
|
|
Description=Configure Node For Kubernetes service
|
|
Requires=kubernetes-install-node.service
|
|
After=kubernetes-install-node.service
|
|
Requires=kubernetes-install-rkt.service
|
|
After=kubernetes-install-rkt.service
|
|
Requires=kubernetes-download-salt.service
|
|
After=kubernetes-download-salt.service
|
|
Requires=kubernetes-download-manifests.service
|
|
After=kubernetes-download-manifests.service
|
|
Requires=kubernetes-install-docker2aci.service
|
|
After=kubernetes-install-docker2aci.service
|
|
Requires=kubelet.service
|
|
After=kubelet.service
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=yes
|
|
EnvironmentFile=/etc/kube-env
|
|
ExecStartPre=/usr/bin/curl --fail --silent --show-error \
|
|
-H "X-Google-Metadata-Request: True" \
|
|
-o /run/configure-node.sh \
|
|
http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-node
|
|
ExecStartPre=/usr/bin/chmod 0755 /run/configure-node.sh
|
|
ExecStart=/run/configure-node.sh
|