promenade/roles/deploy-kubelet/tasks/deploy-kubernetes.yaml

65 lines
1.8 KiB
YAML

---
#TODO: Version kubelet, with checksum
- name: Install kubelet
get_url:
url: "http://storage.googleapis.com/kubernetes-release/release/{{ kubelet_version }}/bin/linux/amd64/kubelet"
dest: /usr/bin/kubelet
# checksum: md5:33af080e876b1f3d481b0ff1ceec3ab8
mode: 0755
- name: Ensures /etc/kubernetes dir exists
file:
path: /etc/kubernetes
state: directory
#Gets Kubeconfig from the bootstrap node. See roles/bootstrap/tasks/main.yml
- name: Install kubeconfig
template:
src: kubeconfig
dest: /etc/kubernetes/kubeconfig
- name: Setup kubelet.service
template:
src: kubelet.service
dest: /etc/systemd/system/kubelet.service
notify: restart kubelet
- name: Enable Kubelet to be started on boot
systemd:
name: kubelet
state: started
enabled: yes
daemon_reload: yes
- name: Create Directories for Kubernetes manifests
file:
path: /opt/openstack-helm/manifests
state: directory
#Wait for Kubeapi Server to come up
- action: shell hyperkube kubectl get pods --all-namespaces | grep kube-apiserver
register: kubeapi_output
until: kubeapi_output.stdout.find("Running") != -1
retries: 40
delay: 15
#Wait for cluster to stabilize across all nodes
- action: shell hyperkube kubectl get pods --all-namespaces
register: cluster_stable
until: '"ContainerCreating" not in cluster_stable.stdout'
retries: 40
delay: 15
#Re-Deploy Calico with ETCD
- name: Inject Custom manifests - kube-calico.yaml
template:
src: kube-calico.yaml.j2
dest: "/tmp/bootkube/assets/manifests/kube-flannel.yaml"
notify: restart kubelet
- name: Inject Custom manifests - kube-calico-cfg.yaml
template:
src: kube-calico-cfg.yaml.j2
dest: "/tmp/bootkube/assets/manifests/kube-flannel-cfg.yaml"
notify: restart kubelet