#!/bin/bash set -x juju scp resources/core.snap 0: juju run --machine 0 "sudo snap install --dangerous /home/ubuntu/core.snap" juju scp resources/core.snap 1: juju run --machine 1 "sudo snap install --dangerous /home/ubuntu/core.snap" juju scp resources/core.snap 2: juju run --machine 2 "sudo snap install --dangerous /home/ubuntu/core.snap" juju deploy --to 0 ./easyrsa juju deploy --to 0 ./etcd \ --config bind_to_all_interfaces=false \ --config channel=3.4/stable juju deploy --to 1 ./kubernetes-master \ --config channel=1.22/stable \ --config service-cidr=172.31.192.0/21 \ --config enable-dashboard-addons=false \ --config proxy-extra-args='bind-address=0.0.0.0 proxy-mode=ipvs' juju deploy --to 2 ./kubernetes-worker \ --config channel=1.22/stable \ --config ingress=false \ --config proxy-extra-args='bind-address=0.0.0.0 proxy-mode=ipvs' juju deploy ./containerd juju deploy ./calico \ --config cidr=172.31.128.0/18 \ --config vxlan=Always \ --config ignore-loose-rpf=true juju attach easyrsa easyrsa=./resources/easyrsa/easyrsa.tgz juju attach etcd snapshot=./resources/etcd/snapshot.gz juju attach kubernetes-worker cni-amd64=./resources/kubernetes-worker/cni-amd64.tgz juju attach calico calico=./resources/calico/calico.gz juju attach calico calico-node-image=./resources/calico/calico-node-image.gz juju attach calico calico-upgrade=./resources/calico/calico-upgrade.gz juju attach etcd etcd=./resources/etcd/etcd.snap juju attach kubernetes-master cdk-addons=./resources/kubernetes-master/cdk-addons.snap juju attach kubernetes-master kube-apiserver=./resources/kubernetes-master/kube-apiserver.snap juju attach kubernetes-master kube-controller-manager=./resources/kubernetes-master/kube-controller-manager.snap juju attach kubernetes-master kube-scheduler=./resources/kubernetes-master/kube-scheduler.snap juju attach kubernetes-master kube-proxy=./resources/kubernetes-master/kube-proxy.snap juju attach kubernetes-master kubectl=./resources/kubernetes-master/kubectl.snap juju attach kubernetes-worker kube-proxy=./resources/kubernetes-worker/kube-proxy.snap juju attach kubernetes-worker kubectl=./resources/kubernetes-worker/kubectl.snap juju attach kubernetes-worker kubelet=./resources/kubernetes-worker/kubelet.snap juju relate etcd:certificates easyrsa:client juju relate kubernetes-master:kube-control kubernetes-worker:kube-control juju relate kubernetes-master:certificates easyrsa:client juju relate kubernetes-worker:certificates easyrsa:client juju relate kubernetes-master:etcd etcd:db juju relate containerd:containerd kubernetes-worker:container-runtime juju relate containerd:containerd kubernetes-master:container-runtime juju relate kubernetes-master:kube-api-endpoint kubernetes-worker:kube-api-endpoint juju relate calico:etcd etcd:db juju relate calico:cni kubernetes-master:cni juju relate calico:cni kubernetes-worker:cni juju deploy --to 1 ./kubeapi-load-balancer juju remove-relation kubernetes-master:kube-api-endpoint kubernetes-worker:kube-api-endpoint juju relate kubernetes-master:kube-api-endpoint kubeapi-load-balancer:apiserver juju relate kubernetes-worker:kube-api-endpoint kubeapi-load-balancer:website juju relate kubernetes-master:loadbalancer kubeapi-load-balancer:loadbalancer juju relate kubeapi-load-balancer:certificates easyrsa:client # CoreDNS juju config -m controller kubernetes-master dns-provider=none juju add-k8s k8s-cloud --controller infra-demo juju add-model k8s-model k8s-cloud # https://charmhub.io/containers-coredns juju deploy ./coredns juju offer coredns:dns-provider juju consume -m controller k8s-model.coredns juju relate -m controller coredns kubernetes-master