diff --git a/docs/getting-started-guides/aws/cloudformation-template.json b/docs/getting-started-guides/aws/cloudformation-template.json index 222eb3279ab..960ee0dcd5d 100644 --- a/docs/getting-started-guides/aws/cloudformation-template.json +++ b/docs/getting-started-guides/aws/cloudformation-template.json @@ -113,121 +113,177 @@ "SecurityGroups": [{"Ref": "KubernetesSecurityGroup"}], "UserData": { "Fn::Base64": {"Fn::Join" : ["", [ "#cloud-config\n\n", + “---\n“, + “write_files:\n”, + “- path: /opt/bin/waiter.sh\n”, + “ owner: root\n”, + “ content: |\n”, + “ #! /usr/bin/bash\n”, + “ until curl http://127.0.0.1:4001/v2/machines; do sleep 2; done\n”, "coreos:\n", " fleet:\n", - " etcd_servers: http://127.0.0.1:4001\n", - " metadata: role=master\n", - " etcd:\n", - " name: etcd\n", - " addr: $private_ipv4:4001\n", - " bind-addr: 0.0.0.0\n", - " peer-addr: $private_ipv4:7001\n", - " cluster-active-size: 1\n", - " etcd-http-read-timeout: 86400\n", - " snapshot: true\n", - " units:\n", - " - name: etcd.service\n", - " command: start\n", - " - name: fleet.service\n", - " command: start\n", - " - name: flannel.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Requires=etcd.service\n", - " After=etcd.service\n", - " After=network-online.target\n", - " Wants=network-online.target\n", - " Description=flannel is an etcd backed overlay network for containers\n\n", - " [Service]\n", - " Type=notify\n", - " ExecStartPre=-/usr/bin/mkdir -p /opt/bin\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/flanneld\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld\n", - " ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{\"Network\":\"10.0.0.0/16\"}'\n", - " ExecStart=/opt/bin/flanneld\n", - " - name: kube-apiserver.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes API Server\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=etcd.service\n", - " After=etcd.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-apiserver\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver\n", - " ExecStart=/opt/bin/kube-apiserver \\\n", - " --address=0.0.0.0 \\\n", - " --port=8080 \\\n", - " --portal_net 10.1.0.0/16 \\\n", - " --etcd_servers=http://127.0.0.1:4001 \\\n", - " --logtostderr=true\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-controller-manager.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Controller Manager\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-controller-manager\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager\n", - " ExecStart=/opt/bin/kube-controller-manager \\\n", - " --master=127.0.0.1:8080 \\\n", - " --logtostderr=true\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-scheduler.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Scheduler\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-scheduler\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler\n", - " ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-proxy.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Proxy\n", - " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", - " Requires=etcd.service\n", - " After=etcd.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.5.4/bin/linux/amd64/kube-proxy\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy\n", - " ExecStart=/opt/bin/kube-proxy \\\n", - " --etcd_servers=http://127.0.0.1:4001 \\\n", - " --logtostderr=true\n", - " Restart=always\n", - " RestartSec=10\n", - " - name: kube-register.service\n", - " command: start\n", - " content: |\n", - " [Unit]\n", - " Description=Kubernetes Registration Service\n", - " Documentation=https://github.com/kelseyhightower/kube-register\n", - " Requires=kube-apiserver.service\n", - " After=kube-apiserver.service\n\n", - " [Service]\n", - " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/kube-register\n", - " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register\n", - " ExecStart=/opt/bin/kube-register \\\n", - " --metadata=role=knode \\\n", - " --fleet-endpoint=unix:///var/run/fleet.sock \\\n", - " --api-endpoint=http://127.0.0.1:8080\n", - " Restart=always\n", - " RestartSec=10\n", + " public-ip: $public_ipv4\n", + “units:\n", + “ - name: setup-network-environment.service\n", + “ command: start\n", + “ content: |\n", + “ [Unit]\n", + “ Description=Setup Network Environment\n", + “ Documentation=https://github.com/kelseyhightower/setup-network-environment\n", + “ Requires=network-online.target\n", + “ After=network-online.target\n\n”, + “ [Service]\n”, + “ ExecStartPre=/usr/bin/mkdir -p /opt/bin\n”, + “ ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/setup-network-environment\n”, + “ ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment\n”, + “ ExecStart=/opt/bin/setup-network-environment\n”, + “ RemainAfterExit=yes\n”, + “ Type=oneshot\n”, + " - name: etcd.service\n", + " command: start\n", + “ content: |\n", + “ [Unit]\n", + “ Description=etcd\n", + “ Requires=setup-network-environment.service\n", + “ After=setup-network-environment.service\n\n”, + “ [Service] + “ EnvironmentFile=/etc/network-environment\n", + “ User=etcd\n", + “ PermissionsStartOnly=true\n", + “ ExecStart=/usr/bin/etcd \\\n”, + “ --name $public_ipv4 \\\n", + “ --addr $public_ipv4:4001 \\\n", + “ --bind-addr 0.0.0.0 \\\n", + “ --cluster-active-size 1 \\\n", + “ --data-dir /var/lib/etcd \\\n", + “ --http-read-timeout 86400 \\\n", + “ --peer-addr $public_ipv4:7001 \\\n”, + “ --snapshot true\n", + “ Restart=always\n", + “ RestartSec=10s\n", + “ - name: fleet.socket\n", + “ command: start\n", + “ content: |\n", + “ [Socket]\n", + “ ListenStream=/var/run/fleet.sock\n", + " - name: fleet.service\n", + " command: start\n", + “ content: |\n", + “ [Unit]\n", + “ Description=fleet daemon\n", + “ Wants=etcd.service\n", + “ After=etcd.service\n", + “ Wants=fleet.socket\n", + “ After=fleet.socket\n\n”, + “ [Service]\n”, + “ Environment=\”FLEET_ETCD_SERVERS=http://127.0.0.1:4001\”\n”, + “ Environment=\”FLEET_METADATA=role=master\”\n”, + “ ExecStart=/usr/bin/fleetd\n”, + “ Restart=always\n”, + “ RestartSec=10s\n”, + “ - name: etcd-waiter.service\n”, + “ command: start\n”, + “ content: |\n”, + “ [Unit]\n”, + “ Description=etcd waiter\n”, + “ Wants=network-online.target\n”, + “ Wants=etcd.service\n”, + “ After=etcd.service\n”, + “ After=network-online.target\n”, + “ Before=flannel.service\n”, + “ Before=setup-network-environment.service\n\n”, + “ [Service]\n”, + “ ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh\n”, + “ ExecStart=/usr/bin/bash /opt/bin/waiter.sh\n”, + “ RemainAfterExit=true\n”, + “ Type=oneshot\n”, + " - name: flannel.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Requires=etcd-waiter.service\n", + " After=etcd-waiter.service\n", + " Requires=etcd.service\n", + " After=etcd.service\n", + " After=network-online.target\n", + " Wants=network-online.target\n", + " Description=flannel is an etcd backed overlay network for containers\n\n", + " [Service]\n", + " Type=notify\n", + " ExecStartPre=-/usr/bin/mkdir -p /opt/bin\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/flanneld\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld\n", + " ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{\"Network\":\"10.244.0.0/16\"}'\n", + " ExecStart=/opt/bin/flanneld\n", + " - name: kube-apiserver.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes API Server\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=etcd.service\n", + " After=etcd.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-apiserver\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver\n", + " ExecStart=/opt/bin/kube-apiserver \\\n", + " --address=0.0.0.0 \\\n", + " --port=8080 \\\n", + " --portal_net 10.244.0.0/16 \\\n", + " --etcd_servers=http://127.0.0.1:4001 \\\n", + “ --public_address_override=$private_ipv4 \\\n", + " --logtostderr=true\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-controller-manager.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Controller Manager\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-controller-manager\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager\n", + " ExecStart=/opt/bin/kube-controller-manager \\\n", + " --master=127.0.0.1:8080 \\\n", + " --logtostderr=true\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-scheduler.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Scheduler\n", + " Documentation=https://github.com/GoogleCloudPlatform/kubernetes\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.8.1/bin/linux/amd64/kube-scheduler\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler\n", + " ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080\n", + " Restart=always\n", + " RestartSec=10\n", + " - name: kube-register.service\n", + " command: start\n", + " content: |\n", + " [Unit]\n", + " Description=Kubernetes Registration Service\n", + " Documentation=https://github.com/kelseyhightower/kube-register\n", + " Requires=kube-apiserver.service\n", + " After=kube-apiserver.service\n\n", + " Requires=fleet.service\n", + " After=fleet.service\n\n", + " [Service]\n", + " ExecStartPre=/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/k8s/kube-register\n", + " ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register\n", + " ExecStart=/opt/bin/kube-register \\\n", + " --metadata=role=knode \\\n", + " --fleet-endpoint=unix:///var/run/fleet.sock \\\n", + " --api-endpoint=http://127.0.0.1:8080\n", + " Restart=always\n", + " RestartSec=10\n", " update:\n", " group: alpha\n", " reboot-strategy: off\n"