diff --git a/ansible/playbooks/deploy-fastpass-4step.yml b/ansible/playbooks/deploy-fastpass-4step.yml index 74ffb35..7aa255f 100644 --- a/ansible/playbooks/deploy-fastpass-4step.yml +++ b/ansible/playbooks/deploy-fastpass-4step.yml @@ -1,17 +1,17 @@ --- -- name: Step 1 - Install Prerequisites - hosts: fastpass - become: true - gather_facts: true - roles: - - role: kubernetes-prerequisites - -# - name: Step 2 - Deploy First Control Plane Node -# hosts: fastpass_control_plane[0] +# - name: Step 1 - Install Prerequisites +# hosts: fastpass # become: true -# gather_facts: false +# gather_facts: true # roles: -# - role: fastpass-first-control-plane +# - role: kubernetes-prerequisites + +- name: Step 2 - Deploy First Control Plane Node + hosts: fastpass_control_plane[0] + become: true + gather_facts: true # false + roles: + - role: fastpass-first-control-plane # - name: Step 3 - Deploy Additional Control Plane Nodes # hosts: fastpass_control_plane[1:] diff --git a/ansible/playbooks/roles/fastpass-first-control-plane/defaults/main.yml b/ansible/playbooks/roles/fastpass-first-control-plane/defaults/main.yml new file mode 100644 index 0000000..f71e7c2 --- /dev/null +++ b/ansible/playbooks/roles/fastpass-first-control-plane/defaults/main.yml @@ -0,0 +1,15 @@ +--- +# FastPass First Control Plane Role Defaults + +# Kubernetes services for control plane +kubernetes_services_control_plane: + - kubernetes_API + - etcd + - kubelet + - kube-scheduler + - kube-controller-manager + +kubernetes_services_worker: + - kubelet + - kube-proxy + - NodePort diff --git a/ansible/playbooks/roles/fastpass-first-control-plane/tasks/main.yml b/ansible/playbooks/roles/fastpass-first-control-plane/tasks/main.yml new file mode 100644 index 0000000..aaf7219 --- /dev/null +++ b/ansible/playbooks/roles/fastpass-first-control-plane/tasks/main.yml @@ -0,0 +1,66 @@ +--- +# role: fastpass-first-control-plane +# description: FastPass First Control Plane +# author: mk-labs +# version: 1.0.0 +# date: 2025-09-27 + +# Open sevices for control plane +- 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: kubeadm init --ignore-preflight-errors=NumCPU,Mem --control-plane-endpoint=fastpass # {{ cluster_name }} +# 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: Debug ansible_env.HOME + delegate_to: localhost + ansible.builtin.debug: + var: ansible_env.HOME + + +- name: Create .kube directory for user + delegate_to: localhost + ansible.builtin.file: + path: "{{ ansible_env.HOME }}/.kube" + state: directory + mode: '0755' + +- name: Copy admin.conf to user's .kube directory on controller + ansible.builtin.fetch: + src: /etc/kubernetes/admin.conf + dest: "{{ ansible_env.HOME }}/.kube/config-fastpass" # {{cluster_name}}" + mode: '0644' + \ No newline at end of file diff --git a/ansible/playbooks/roles/kubernetes-prerequisites/defaults/main.yml b/ansible/playbooks/roles/kubernetes-prerequisites/defaults/main.yml index 96174b8..73cb266 100644 --- a/ansible/playbooks/roles/kubernetes-prerequisites/defaults/main.yml +++ b/ansible/playbooks/roles/kubernetes-prerequisites/defaults/main.yml @@ -17,9 +17,9 @@ required_kernel_modules: # Sysctl parameters for Kubernetes k8s_sysctl_params: - - "net.bridge.bridge-nf-call-iptables: 1" - - "net.bridge.bridge-nf-call-ip6tables: 1" - - "net.ipv4.ip_forward: 1" + - "net.bridge.bridge-nf-call-iptables = 1" + - "net.bridge.bridge-nf-call-ip6tables = 1" + - "net.ipv4.ip_forward = 1" containerd_dependencies: - curl diff --git a/ansible/playbooks/roles/kubernetes-prerequisites/templates/kubernetes.repo.j2 b/ansible/playbooks/roles/kubernetes-prerequisites/templates/kubernetes.repo.j2 deleted file mode 100644 index e3f9280..0000000 --- a/ansible/playbooks/roles/kubernetes-prerequisites/templates/kubernetes.repo.j2 +++ /dev/null @@ -1,8 +0,0 @@ -[kubernetes] -name=Kubernetes -baseurl=https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version | default('1.33') | regex_replace('^v?(.*)$', '\\1') | regex_replace('^(\\d+\\.\\d+).*$', '\\1') }}/rpm/ -enabled=1 -gpgcheck=1 -gpgkey=https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version | default('1.33') | regex_replace('^v?(.*)$', '\\1') | regex_replace('^(\\d+\\.\\d+).*$', '\\1') }}/rpm/repodata/repomd.xml.key - - diff --git a/ansible/playbooks/roles/kubernetes/defaults/main.yml b/ansible/playbooks/roles/kubernetes/defaults/main.yml index 5655d4a..0c71fa0 100644 --- a/ansible/playbooks/roles/kubernetes/defaults/main.yml +++ b/ansible/playbooks/roles/kubernetes/defaults/main.yml @@ -1,3 +1,2 @@ -#SPDX-License-Identifier: MIT-0 --- # defaults file for kubernetes