70 lines
1.9 KiB
YAML
70 lines
1.9 KiB
YAML
#cloud-config
|
|
write_files:
|
|
- path: /etc/systemd/system/enable-network-service.service
|
|
owner: "root:root"
|
|
permissions: "0644"
|
|
content: |
|
|
[Unit]
|
|
Description=Enable Network Service
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
EnvironmentFile=/etc/sysconfig/heat-params
|
|
ExecStart=/etc/sysconfig/enable-network-service.sh
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
- path: /etc/sysconfig/enable-network-service.sh
|
|
owner: "root:root"
|
|
permissions: "0755"
|
|
content: |
|
|
#!/bin/sh
|
|
|
|
if [ "$NETWORK_DRIVER" != "flannel" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
myip=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)
|
|
ETCD_SERVER_IP=${ETCD_SERVER_IP:-127.0.0.1}
|
|
|
|
PROTOCOL=https
|
|
|
|
if [ "$TLS_DISABLED" = "True" ]; then
|
|
PROTOCOL=http
|
|
fi
|
|
|
|
ENV_FILE=/etc/flannel/options.env
|
|
mkdir -p $(dirname $ENV_FILE)
|
|
cat > $ENV_FILE <<EOF
|
|
FLANNELD_IFACE=$myip
|
|
FLANNELD_ETCD_ENDPOINTS=${PROTOCOL}://${ETCD_SERVER_IP}:2379
|
|
EOF
|
|
|
|
if [ "$TLS_DISABLED" = "False" ]; then
|
|
cat >> $ENV_FILE <<EOF
|
|
FLANNELD_ETCD_CAFILE=${KUBE_CERTS_PATH}/ca.pem
|
|
FLANNELD_ETCD_CERTFILE=${KUBE_CERTS_PATH}/worker.pem
|
|
FLANNELD_ETCD_KEYFILE=${KUBE_CERTS_PATH}/worker-key.pem
|
|
EOF
|
|
fi
|
|
|
|
DROP_IN_FILE=/etc/systemd/system/flanneld.service.d/40-ExecStartPre-symlink.conf
|
|
mkdir -p $(dirname $DROP_IN_FILE)
|
|
cat > $DROP_IN_FILE <<EOF
|
|
[Service]
|
|
Environment=ETCD_SSL_DIR=${KUBE_CERTS_PATH}
|
|
ExecStartPre=/usr/bin/ln -sf /etc/flannel/options.env /run/flannel/options.env
|
|
EOF
|
|
|
|
DOCKER_FLANNEL_CONF=/etc/systemd/system/docker.service.d/40-flannel.conf
|
|
mkdir -p $(dirname $DOCKER_FLANNEL_CONF)
|
|
cat > $DOCKER_FLANNEL_CONF <<EOF
|
|
[Unit]
|
|
Requires=flanneld.service
|
|
After=flanneld.service
|
|
EOF
|
|
|
|
systemctl enable flanneld
|
|
systemctl --no-block start flanneld
|