Files
sunbeam-charms/roles/k8s/tasks/main.yaml
Hemanth Nakkina 03000df1de [ci] bump k8s channel to 1.32-classic/stable
Bump k8s channel to 1.32-classic/stable

Change-Id: I9b9faf4ade277ac1759626bc84a51af341a6d881
2025-01-06 13:07:27 +05:30

88 lines
2.6 KiB
YAML

- name: Snapd is installed
ansible.builtin.apt:
name: snapd
become: true
- name: NFtables is installed
ansible.builtin.apt:
name: nftables
become: true
when:
- ansible_distribution_release in ('jammy', 'noble')
- nftables_enabled | default(true) | bool
- name: Allow packets from pod cir
ansible.builtin.command: nft insert rule filter openstack-INPUT ip saddr {{ k8s_pod_cidr }} accept
become: true
changed_when: false
when:
- ansible_distribution_release in ('jammy', 'noble')
- nftables_enabled | default(true) | bool
- name: Allow packets to pod cir
ansible.builtin.command: nft insert rule filter openstack-INPUT ip daddr {{ k8s_pod_cidr }} accept
become: true
changed_when: false
when:
- ansible_distribution_release in ('jammy', 'noble')
- nftables_enabled | default(true) | bool
- name: Allow packets to metallb cir
ansible.builtin.command: nft insert rule filter openstack-INPUT ip daddr {{ k8s_load_balancer_cidr }} accept
become: true
changed_when: false
when:
- ansible_distribution_release in ('jammy', 'noble')
- nftables_enabled | default(true) | bool
- name: Ensure k8s is installed
community.general.snap:
name: k8s
channel: '{{ k8s_channel }}'
classic: '{{ k8s_classic_mode }}'
become: true
- name: Template docker.io registry
ansible.builtin.include_tasks: registry.yaml
when: docker_mirror is defined
vars:
reg_server_name: docker.io
reg_server: https://docker.io
reg_mirror_location: '{{ docker_mirror }}'
- name: Template k8s bootstrap configuration
ansible.builtin.template:
src: k8s-bootstrap.yaml.j2
dest: k8s-bootstrap.yaml
mode: '0644'
become: true
- name: Bootstrap k8s
ansible.builtin.command:
cmd: k8s bootstrap --file k8s-bootstrap.yaml --timeout 300s --address {{ k8s_host_ip }}
become: true
register: res
failed_when: res.rc != 0 and "already part of a cluster" not in res.stderr
changed_when: res.rc == 0 and "Bootstrapped a new Kubernetes cluster" in res.stdout
- name: Wait for k8s readiness
ansible.builtin.command:
cmd: k8s status --wait-ready --timeout 300s
register: res
become: true
changed_when: false
failed_when: 'res.rc != 0 or not res.stdout is ansible.builtin.regex(multiline=true, match_type="search", pattern="cluster status:\ *ready")'
- name: Get k8s config
ansible.builtin.command:
cmd: k8s config
become: true
register: kubeconfig
- name: Copy kubeconfig to local
ansible.builtin.copy:
content: '{{ kubeconfig.stdout }}'
dest: '{{ ansible_env.HOME }}/kubeconfig'
mode: '0644'
owner: '{{ ansible_user }}'