
Migrate tests from microk8s to ck8s. Bootstrap a controller on a manual cloud, and add ck8s to available clouds. Upgrade juju to 3.5 Configure ephemeral device when available, configure k8s to use it for local storage. Change-Id: Ief491f8b339307f0c43d11639336b02d9f6479b4 Signed-off-by: Guillaume Boutry <guillaume.boutry@canonical.com>
75 lines
2.2 KiB
YAML
75 lines
2.2 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 "status: ready" not in res.stdout'
|