blob: 7cf05b7cbcea01c5bf5fb347b8789edebe598176 [file] [log] [blame]
{%- from "kubernetes/map.jinja" import master with context %}
[Unit]
Description=calico-node on master
After=docker.service
Requires=docker.service
[Service]
ExecStartPre=-/usr/bin/docker rm -f calico-node
ExecStart=/usr/bin/docker run --net=host --privileged \
--name=calico-node \
-e NODENAME={{ master.host.name }}{% if master.host.get('domain') %}.{{ master.host.domain }}{%- endif %} \
-e IP={{ master.apiserver.address }} \
-e IP6={{ master.get('ipv6_address', '') }} \
{%- if master.network.calico.network_backend is defined %}
-e CALICO_NETWORKING_BACKEND="{{ master.network.calico.network_backend }}"
{%- endif %}
-e AS={{ master.network.calico.get('as', '64512') }} \
-e NO_DEFAULT_POOLS={{ master.network.calico.get('no_default_pools', false ) }} \
-e CALICO_STARTUP_LOGLEVEL={{ master.network.calico.get('log_level', 'INFO') }} \
-e CLUSTER_TYPE='k8s,bgp' \
-e CALICO_LIBNETWORK_ENABLED={{ master.network.calico.get('libnetwork_enabled', false ) }} \
-e ETCD_ENDPOINTS={% for member in master.network.calico.etcd.members %}http{% if master.network.calico.etcd.get('ssl', {}).get('enabled') %}s{% endif %}://{{ member.host }}:{{ member.port }}{% if not loop.last %},{% endif %}{% endfor %} \
{%- if master.network.calico.etcd.get('ssl', {}).get('enabled') %}
-e ETCD_CA_CERT_FILE=/var/lib/etcd/ca.pem \
-e ETCD_CERT_FILE=/var/lib/etcd/etcd-client.crt \
-e ETCD_KEY_FILE=/var/lib/etcd/etcd-client.key \
-v /var/lib/etcd/:/var/lib/etcd/:ro \
{%- endif %}
{%- if master.network.calico.get('prometheus', {}).get('enabled') %}
-e FELIX_PROMETHEUSMETRICSENABLED=true \
-e FELIX_PROMETHEUSMETRICSPORT={{ master.network.calico.prometheus.get('port', 9091) }} \
-p {{ master.network.calico.prometheus.get('address', '0.0.0.0') }}:{{ master.network.calico.get('prometheus', {}).get('port', 9091) }}:9091 \
{%- endif %}
-v /var/log/calico:/var/log/calico \
-v /var/lib/calico:/var/lib/calico \
-v /run/docker/plugins:/run/docker/plugins \
-v /lib/modules:/lib/modules \
-v /var/run/calico:/var/run/calico \
{%- if master.network.volumes is defined %}
{%- for volume in master.network.volumes %}
-v {{ volume }} \
{%- endfor %}
{%- endif %}
{{ master.network.calico.image }}
Restart=always
RestartSec=10s
ExecStop=-/usr/bin/docker rm -f calico-node
[Install]
WantedBy=multi-user.target