104 lines
2.9 KiB
YAML
104 lines
2.9 KiB
YAML
---
|
|
# role: fastpass-first-control-plane
|
|
# description: FastPass First Control Plane
|
|
# author: Ryan Blundon
|
|
# version: 1.0.0
|
|
# date: 2025-09-27
|
|
|
|
- name: Setup DNS record for cluster
|
|
ansible.builtin.include_role:
|
|
name: dns-manager
|
|
vars:
|
|
host_name: "{{ cluster_name }}"
|
|
|
|
- name: Open services for control plane
|
|
become: true
|
|
when: ansible_os_family == "Debian"
|
|
block:
|
|
- name: Open firewall ports for control plane
|
|
community.general.ufw:
|
|
rule: allow
|
|
name: "{{ item }}"
|
|
loop: "{{ kubernetes_services_control_plane }}"
|
|
|
|
- name: Create initial kubelet config file
|
|
become: true
|
|
ansible.builtin.copy:
|
|
dest: /var/lib/kubelet/config.yaml
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
content: |
|
|
apiVersion: kubelet.config.k8s.io/v1beta1
|
|
kind: KubeletConfiguration
|
|
cgroupDriver: systemd
|
|
containerRuntimeEndpoint: unix:///run/containerd/containerd.sock
|
|
|
|
- name: Initialize Kubernetes cluster
|
|
become: true
|
|
ansible.builtin.command:
|
|
argv:
|
|
- kubeadm
|
|
- init
|
|
- --apiserver-advertise-address={{ ip_address }}
|
|
- --control-plane-endpoint={{ cluster_name }}
|
|
- --pod-network-cidr={{ pod_network_cidr }}
|
|
- --service-cidr={{ service_cidr }}
|
|
args:
|
|
creates: /etc/kubernetes/admin.conf
|
|
register: kubeadm_init
|
|
changed_when: kubeadm_init.rc == 0
|
|
|
|
- name: Ensure kubelet is enabled and started
|
|
become: true
|
|
ansible.builtin.systemd:
|
|
name: kubelet
|
|
enabled: true
|
|
state: started
|
|
|
|
- name: Setup kubeconfig for FastPass cluster
|
|
ansible.builtin.include_role:
|
|
name: kubeconfig-manager
|
|
|
|
# - name: Download tigera-operator manifest
|
|
# delegate_to: localhost
|
|
# ansible.builtin.get_url:
|
|
# url: https://raw.githubusercontent.com/projectcalico/calico/{{ calico_version }}/manifests/tigera-operator.yaml
|
|
# dest: /tmp/tigera-operator.yaml
|
|
# mode: "0644"
|
|
|
|
# - name: Install tigera-operator from downloaded file
|
|
# delegate_to: localhost
|
|
# kubernetes.core.k8s:
|
|
# kubeconfig: "{{ local_home }}/.kube/config"
|
|
# state: present
|
|
# src: /tmp/tigera-operator.yaml
|
|
|
|
# - name: Download Calico CRDs
|
|
# delegate_to: localhost
|
|
# ansible.builtin.get_url:
|
|
# url: https://raw.githubusercontent.com/projectcalico/calico/{{ calico_version }}/manifests/custom-resources.yaml
|
|
# dest: /tmp/custom-resources.yaml
|
|
# mode: "0644"
|
|
|
|
# - name: Install Calico CRDs from downloaded file
|
|
# delegate_to: localhost
|
|
# kubernetes.core.k8s:
|
|
# kubeconfig: "{{ local_home }}/.kube/config"
|
|
# state: present
|
|
# src: /tmp/custom-resources.yaml
|
|
|
|
- name: Download Flannel CNI
|
|
delegate_to: localhost
|
|
ansible.builtin.get_url:
|
|
url: https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
|
|
dest: /tmp/kube-flannel.yaml
|
|
mode: "0644"
|
|
|
|
- name: Install Flannel CNI from downloaded file
|
|
delegate_to: localhost
|
|
kubernetes.core.k8s:
|
|
kubeconfig: "{{ local_home }}/.kube/config"
|
|
state: present
|
|
src: /tmp/kube-flannel.yaml
|