| {%- 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 |