Skip to content
Snippets Groups Projects
kubelet.rkt.service.j2 3.61 KiB
Newer Older
  • Learn to ignore specific revisions
  • Brad Beam's avatar
    Brad Beam committed
    [Unit]
    Description=Kubernetes Kubelet Server
    Documentation=https://github.com/GoogleCloudPlatform/kubernetes
    Wants=network.target
    
    [Service]
    Restart=on-failure
    RestartSec=10s
    TimeoutStartSec=0
    LimitNOFILE=40000
    
    ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/run/kubelet.uuid
    ExecStartPre=-/bin/mkdir -p /var/lib/kubelet
    
    EnvironmentFile={{kube_config_dir}}/kubelet.env
    # stage1-fly mounts /proc /sys /dev so no need to duplicate the mounts
    ExecStart=/usr/bin/rkt run \
    
            --volume os-release,kind=host,source=/etc/os-release,readOnly=true \
    
            --volume hosts,kind=host,source=/etc/hosts,readOnly=true \
    
    Brad Beam's avatar
    Brad Beam committed
            --volume dns,kind=host,source=/etc/resolv.conf \
            --volume etc-kubernetes,kind=host,source={{ kube_config_dir }},readOnly=false \
            --volume etc-ssl-certs,kind=host,source=/etc/ssl/certs,readOnly=true \
    
            --volume etcd-ssl,kind=host,source={{ etcd_config_dir }},readOnly=true \
            --volume run,kind=host,source=/run,readOnly=false \
    
            {% for dir in ssl_ca_dirs -%}
            --volume {{ dir | regex_replace('^/(.*)$', '\\1' ) | regex_replace('/', '-') }},kind=host,source={{ dir }},readOnly=true \
            {% endfor -%}
    
    Brad Beam's avatar
    Brad Beam committed
            --volume var-lib-docker,kind=host,source={{ docker_daemon_graph }},readOnly=false \
    
            --volume var-lib-kubelet,kind=host,source=/var/lib/kubelet,readOnly=false,recursive=true \
    
            --volume var-log,kind=host,source=/var/log \
    
    {% if kube_network_plugin in ["calico", "weave", "canal", "flannel"] %}
    
            --volume etc-cni,kind=host,source=/etc/cni,readOnly=true \
            --volume opt-cni,kind=host,source=/opt/cni,readOnly=true \
    
            --volume var-lib-cni,kind=host,source=/var/lib/cni,readOnly=false \
    
            --volume local-volume-base-dir,target {{ local_volume_base_dir }},readOnly=false,recursive=true \
    
            --mount volume=etc-cni,target=/etc/cni \
    
            --mount volume=opt-cni,target=/opt/cni \
    
            --mount volume=var-lib-cni,target=/var/lib/cni \
    
    {% endif %}
    
    Spencer Smith's avatar
    Spencer Smith committed
            --mount volume=os-release,target=/etc/os-release \
    
            --mount volume=dns,target=/etc/resolv.conf \
    
    Brad Beam's avatar
    Brad Beam committed
            --mount volume=etc-kubernetes,target={{ kube_config_dir }} \
            --mount volume=etc-ssl-certs,target=/etc/ssl/certs \
    
            --mount volume=etcd-ssl,target={{ etcd_config_dir }} \
            --mount volume=run,target=/run \
    
            {% for dir in ssl_ca_dirs -%}
            --mount volume={{ dir | regex_replace('^/(.*)$', '\\1' ) | regex_replace('/', '-') }},target={{ dir }} \
            {% endfor -%}
    
    Brad Beam's avatar
    Brad Beam committed
            --mount volume=var-lib-docker,target=/var/lib/docker \
            --mount volume=var-lib-kubelet,target=/var/lib/kubelet \
    
            --mount volume=var-log,target=/var/log \
    
            --mount volume=hosts,target=/etc/hosts \
    
            --mount volume=local-volume-base-dir,target={{ local_volume_base_dir }} \
    
    Brad Beam's avatar
    Brad Beam committed
            --stage1-from-dir=stage1-fly.aci \
    
    {% if kube_hyperkube_image_repo == "docker" %}
            --insecure-options=image \
            docker://{{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} \
    {% else %}
    
    Brad Beam's avatar
    Brad Beam committed
            {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} \
    
    Brad Beam's avatar
    Brad Beam committed
            --uuid-file-save=/var/run/kubelet.uuid \
            --debug --exec=/kubelet -- \
                    $KUBE_LOGTOSTDERR \
                    $KUBE_LOG_LEVEL \
                    $KUBELET_API_SERVER \
                    $KUBELET_ADDRESS \
                    $KUBELET_PORT \
                    $KUBELET_HOSTNAME \
                    $KUBE_ALLOW_PRIV \
                    $KUBELET_ARGS \
                    $DOCKER_SOCKET \
                    $KUBELET_REGISTER_NODE \
    
                    $KUBELET_NETWORK_PLUGIN \
                    $KUBELET_CLOUDPROVIDER
    
    Brad Beam's avatar
    Brad Beam committed
    
    ExecStop=-/usr/bin/rkt stop --uuid-file=/var/run/kubelet.uuid
    
    [Install]
    WantedBy=multi-user.target