diff --git a/Vagrantfile b/Vagrantfile index f884441db..88586710b 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -92,7 +92,7 @@ Vagrant.configure("2") do |config| if master config.vm.provision "deploy-k8s", type: "file", source: "deploy-k8s.kargo.sh", destination: "~/deploy-k8s.kargo.sh" config.vm.provision "custom.yaml", type: "file", source: "custom.yaml", destination: "~/custom.yaml" - config.vm.provision "kubedns.yaml", type: "file", source: "kubedns.yaml", destination: "~/kubedns.yaml" + config.vm.provision "playbooks", type: "file", source: "playbooks", destination: "~/playbooks" config.vm.provision "nodes", type: "file", source: "nodes", destination: "~/nodes" config.vm.provision "bootstrap", type: "shell", path: "bootstrap-master.sh" else diff --git a/bootstrap-master.sh b/bootstrap-master.sh index ff7e48342..73bcc00ac 100755 --- a/bootstrap-master.sh +++ b/bootstrap-master.sh @@ -16,7 +16,7 @@ sudo sh -c 'cd /root/kargo-cli && python setup.py install' # k8s deploy script and configs sudo sh -c 'cp -a ~vagrant/deploy-k8s.kargo.sh /root/ && chmod 755 /root/deploy-k8s.kargo.sh' sudo cp -a ~vagrant/custom.yaml /root/custom.yaml -sudo cp -a ~vagrant/kubedns.yaml /root/kubedns.yaml +sudo cp -a ~vagrant/playbooks /root/playbooks # SSH keys and config sudo rm -rf /root/.ssh diff --git a/deploy-k8s.kargo.sh b/deploy-k8s.kargo.sh index 35784659c..7a3152cc2 100755 --- a/deploy-k8s.kargo.sh +++ b/deploy-k8s.kargo.sh @@ -22,5 +22,5 @@ deploy_res=$? if [ "$deploy_res" -eq "0" ]; then echo "Setting up kubedns..." - ansible-playbook -i $INVENTORY kubedns.yaml + ansible-playbook -i $INVENTORY playbooks/kubedns.yaml fi diff --git a/examples/kubernetes/external-nginx/README.md b/examples/kubernetes/external-nginx/README.md new file mode 100644 index 000000000..2e051ba64 --- /dev/null +++ b/examples/kubernetes/external-nginx/README.md @@ -0,0 +1,18 @@ +Nginx example with external IPs +=============================== + +* Edit `nginx-frontend.yaml` and update `externalIPs` to the list of external IPs of your k8s minions + +* Deploy: + +```bash +kubectl create -f nginx-backends.yaml +kubectl create -f nginx-frontend.yaml +``` + +* Check: + +```bash +curl $ANY_MINION_EXTERNAL_IP +``` + diff --git a/examples/kubernetes/external-nginx/nginx-backends.yaml b/examples/kubernetes/external-nginx/nginx-backends.yaml new file mode 100644 index 000000000..0ccf8c557 --- /dev/null +++ b/examples/kubernetes/external-nginx/nginx-backends.yaml @@ -0,0 +1,24 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: nginx-backend +spec: + replicas: 3 + template: + metadata: + labels: + app: nginx-backend + tier: backend + spec: + containers: + - name: nginx + image: nginx + resources: + requests: + cpu: 100m + memory: 100Mi + env: + - name: GET_HOSTS_FROM + value: dns + ports: + - containerPort: 80 diff --git a/examples/kubernetes/external-nginx/nginx-frontend.yaml b/examples/kubernetes/external-nginx/nginx-frontend.yaml new file mode 100644 index 000000000..c91128e81 --- /dev/null +++ b/examples/kubernetes/external-nginx/nginx-frontend.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx-frontend + labels: + app: nginx-frontend + tier: frontend +spec: + externalIPs: + - 10.210.0.12 + - 10.210.0.13 + - 10.210.0.14 + - 10.210.0.15 + - 10.210.0.16 + - 10.210.0.17 + ports: + - name: http + port: 80 + protocol: TCP + targetPort: 80 + selector: + app: nginx-backend diff --git a/playbooks/kubedash.yaml b/playbooks/kubedash.yaml new file mode 100644 index 000000000..e62a4ba45 --- /dev/null +++ b/playbooks/kubedash.yaml @@ -0,0 +1,5 @@ +- hosts: kube-master + tasks: + - name: setup-kubedns + shell: kpm deploy kube-system/kubedash --namespace=kube-system + run_once: true diff --git a/playbooks/kubedashboard.yaml b/playbooks/kubedashboard.yaml new file mode 100644 index 000000000..ec8fdf6ae --- /dev/null +++ b/playbooks/kubedashboard.yaml @@ -0,0 +1,5 @@ +- hosts: kube-master + tasks: + - name: setup-kubedns + shell: kpm deploy kube-system/kubernetes-dashboard --namespace=kube-system + run_once: true diff --git a/kubedns.yaml b/playbooks/kubedns.yaml similarity index 100% rename from kubedns.yaml rename to playbooks/kubedns.yaml