mirror of
https://github.com/techno-tim/k3s-ansible.git
synced 2025-12-25 18:23:05 +01:00
Compare commits
12 Commits
v1.24.7+k3
...
v1.24.9+k3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c06af919f3 | ||
|
|
b86384c439 | ||
|
|
bf2bd1edc5 | ||
|
|
e98e3ee77c | ||
|
|
78f7a60378 | ||
|
|
e64fea760d | ||
|
|
764e32c778 | ||
|
|
e6cf14ea78 | ||
|
|
da049dcc28 | ||
|
|
2604caa483 | ||
|
|
82d820805f | ||
|
|
da72884a5b |
10
.github/workflows/lint.yml
vendored
10
.github/workflows/lint.yml
vendored
@@ -11,12 +11,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the codebase
|
- name: Check out the codebase
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # 3.0.2
|
uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # v3 2.5.0
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.sha }}
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
|
|
||||||
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
||||||
uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984 # 4.3.0
|
uses: actions/setup-python@75f3110429a8c05be0e1bf360334e4cced2b63fa # 2.3.3
|
||||||
with:
|
with:
|
||||||
python-version: ${{ env.PYTHON_VERSION }}
|
python-version: ${{ env.PYTHON_VERSION }}
|
||||||
cache: 'pip' # caching pip dependencies
|
cache: 'pip' # caching pip dependencies
|
||||||
@@ -56,12 +56,12 @@ jobs:
|
|||||||
|
|
||||||
ensure-pinned-actions:
|
ensure-pinned-actions:
|
||||||
name: Ensure SHA Pinned Actions
|
name: Ensure SHA Pinned Actions
|
||||||
runs-on: self-hosted
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # 3.0.2
|
uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # v3 2.5.0
|
||||||
- name: Ensure SHA pinned actions
|
- name: Ensure SHA pinned actions
|
||||||
uses: zgosalvez/github-actions-ensure-sha-pinned-actions@6ca5574367befbc9efdb2fa25978084159c5902d # 1.3.0
|
uses: zgosalvez/github-actions-ensure-sha-pinned-actions@af2eb3226618e2494e3d9084f515ad6dcf16e229 # 2.0.1
|
||||||
with:
|
with:
|
||||||
allowlist: |
|
allowlist: |
|
||||||
aws-actions/
|
aws-actions/
|
||||||
|
|||||||
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the codebase
|
- name: Check out the codebase
|
||||||
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # 3.0.2
|
uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 # v3 2.5.0
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.sha }}
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ jobs:
|
|||||||
run: ./.github/download-boxes.sh
|
run: ./.github/download-boxes.sh
|
||||||
|
|
||||||
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
- name: Set up Python ${{ env.PYTHON_VERSION }}
|
||||||
uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984 # 4.3.0
|
uses: actions/setup-python@75f3110429a8c05be0e1bf360334e4cced2b63fa # 2.3.3
|
||||||
with:
|
with:
|
||||||
python-version: ${{ env.PYTHON_VERSION }}
|
python-version: ${{ env.PYTHON_VERSION }}
|
||||||
cache: 'pip' # caching pip dependencies
|
cache: 'pip' # caching pip dependencies
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ local_tmp = $HOME/.ansible/tmp
|
|||||||
timeout = 60
|
timeout = 60
|
||||||
host_key_checking = False
|
host_key_checking = False
|
||||||
deprecation_warnings = False
|
deprecation_warnings = False
|
||||||
callback_whitelist = profile_tasks
|
callbacks_enabled = profile_tasks
|
||||||
log_path = ./ansible.log
|
log_path = ./ansible.log
|
||||||
|
|
||||||
[privilege_escalation]
|
[privilege_escalation]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
k3s_version: v1.24.7+k3s1
|
k3s_version: v1.24.9+k3s1
|
||||||
# this is the user that has ssh access to these machines
|
# this is the user that has ssh access to these machines
|
||||||
ansible_user: ansibleuser
|
ansible_user: ansibleuser
|
||||||
systemd_dir: /etc/systemd/system
|
systemd_dir: /etc/systemd/system
|
||||||
@@ -41,7 +41,7 @@ extra_agent_args: >-
|
|||||||
{{ extra_args }}
|
{{ extra_args }}
|
||||||
|
|
||||||
# image tag for kube-vip
|
# image tag for kube-vip
|
||||||
kube_vip_tag_version: "v0.5.6"
|
kube_vip_tag_version: "v0.5.7"
|
||||||
|
|
||||||
# image tag for metal lb
|
# image tag for metal lb
|
||||||
metal_lb_speaker_tag_version: "v0.13.7"
|
metal_lb_speaker_tag_version: "v0.13.7"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ ansible-compat==2.2.4
|
|||||||
# via
|
# via
|
||||||
# ansible-lint
|
# ansible-lint
|
||||||
# molecule
|
# molecule
|
||||||
ansible-core==2.13.5
|
ansible-core==2.14.1
|
||||||
# via
|
# via
|
||||||
# -r requirements.in
|
# -r requirements.in
|
||||||
# ansible-lint
|
# ansible-lint
|
||||||
@@ -68,8 +68,6 @@ identify==2.5.8
|
|||||||
# via pre-commit
|
# via pre-commit
|
||||||
idna==3.4
|
idna==3.4
|
||||||
# via requests
|
# via requests
|
||||||
importlib-resources==5.10.0
|
|
||||||
# via jsonschema
|
|
||||||
jinja2==3.1.2
|
jinja2==3.1.2
|
||||||
# via
|
# via
|
||||||
# ansible-core
|
# ansible-core
|
||||||
@@ -94,7 +92,7 @@ kubernetes==25.3.0
|
|||||||
# via -r requirements.in
|
# via -r requirements.in
|
||||||
markupsafe==2.1.1
|
markupsafe==2.1.1
|
||||||
# via jinja2
|
# via jinja2
|
||||||
molecule==4.0.3
|
molecule==4.0.4
|
||||||
# via
|
# via
|
||||||
# -r requirements.in
|
# -r requirements.in
|
||||||
# molecule-vagrant
|
# molecule-vagrant
|
||||||
@@ -118,17 +116,15 @@ pathspec==0.10.1
|
|||||||
# via
|
# via
|
||||||
# black
|
# black
|
||||||
# yamllint
|
# yamllint
|
||||||
pkgutil-resolve-name==1.3.10
|
|
||||||
# via jsonschema
|
|
||||||
platformdirs==2.5.2
|
platformdirs==2.5.2
|
||||||
# via
|
# via
|
||||||
# black
|
# black
|
||||||
# virtualenv
|
# virtualenv
|
||||||
pluggy==1.0.0
|
pluggy==1.0.0
|
||||||
# via molecule
|
# via molecule
|
||||||
pre-commit==2.20.0
|
pre-commit==2.21.0
|
||||||
# via -r requirements.in
|
# via -r requirements.in
|
||||||
pre-commit-hooks==4.3.0
|
pre-commit-hooks==4.4.0
|
||||||
# via -r requirements.in
|
# via -r requirements.in
|
||||||
pyasn1==0.4.8
|
pyasn1==0.4.8
|
||||||
# via
|
# via
|
||||||
@@ -184,8 +180,6 @@ ruamel-yaml==0.17.21
|
|||||||
# via
|
# via
|
||||||
# ansible-lint
|
# ansible-lint
|
||||||
# pre-commit-hooks
|
# pre-commit-hooks
|
||||||
ruamel-yaml-clib==0.2.7
|
|
||||||
# via ruamel-yaml
|
|
||||||
selinux==0.2.1
|
selinux==0.2.1
|
||||||
# via molecule-vagrant
|
# via molecule-vagrant
|
||||||
six==1.16.0
|
six==1.16.0
|
||||||
@@ -197,16 +191,6 @@ subprocess-tee==0.3.5
|
|||||||
# via ansible-compat
|
# via ansible-compat
|
||||||
text-unidecode==1.3
|
text-unidecode==1.3
|
||||||
# via python-slugify
|
# via python-slugify
|
||||||
toml==0.10.2
|
|
||||||
# via pre-commit
|
|
||||||
tomli==2.0.1
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# pre-commit-hooks
|
|
||||||
typing-extensions==4.4.0
|
|
||||||
# via
|
|
||||||
# black
|
|
||||||
# rich
|
|
||||||
urllib3==1.26.12
|
urllib3==1.26.12
|
||||||
# via
|
# via
|
||||||
# kubernetes
|
# kubernetes
|
||||||
@@ -217,12 +201,10 @@ wcmatch==8.4.1
|
|||||||
# via ansible-lint
|
# via ansible-lint
|
||||||
websocket-client==1.4.2
|
websocket-client==1.4.2
|
||||||
# via kubernetes
|
# via kubernetes
|
||||||
yamllint==1.28.0
|
yamllint==1.29.0
|
||||||
# via
|
# via
|
||||||
# -r requirements.in
|
# -r requirements.in
|
||||||
# ansible-lint
|
# ansible-lint
|
||||||
zipp==3.10.0
|
|
||||||
# via importlib-resources
|
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
# setuptools
|
# setuptools
|
||||||
|
|||||||
@@ -13,51 +13,11 @@
|
|||||||
args:
|
args:
|
||||||
warn: false # The ansible systemd module does not support reset-failed
|
warn: false # The ansible systemd module does not support reset-failed
|
||||||
|
|
||||||
- name: Create manifests directory on first master
|
- name: Deploy vip manifest
|
||||||
file:
|
include_tasks: vip.yml
|
||||||
path: /var/lib/rancher/k3s/server/manifests
|
|
||||||
state: directory
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: 0644
|
|
||||||
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
|
||||||
|
|
||||||
- name: Copy vip rbac manifest to first master
|
- name: Deploy metallb manifest
|
||||||
template:
|
include_tasks: metallb.yml
|
||||||
src: "vip.rbac.yaml.j2"
|
|
||||||
dest: "/var/lib/rancher/k3s/server/manifests/vip-rbac.yaml"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: 0644
|
|
||||||
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
|
||||||
|
|
||||||
- name: Copy vip manifest to first master
|
|
||||||
template:
|
|
||||||
src: "vip.yaml.j2"
|
|
||||||
dest: "/var/lib/rancher/k3s/server/manifests/vip.yaml"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: 0644
|
|
||||||
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
|
||||||
|
|
||||||
# these will be copied and installed now, then tested later and apply config
|
|
||||||
- name: Copy metallb namespace to first master
|
|
||||||
template:
|
|
||||||
src: "metallb.namespace.j2"
|
|
||||||
dest: "/var/lib/rancher/k3s/server/manifests/metallb-namespace.yaml"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: 0644
|
|
||||||
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
|
||||||
|
|
||||||
- name: Copy metallb namespace to first master
|
|
||||||
template:
|
|
||||||
src: "metallb.crds.j2"
|
|
||||||
dest: "/var/lib/rancher/k3s/server/manifests/metallb-crds.yaml"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: 0644
|
|
||||||
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
|
||||||
|
|
||||||
- name: Init cluster inside the transient k3s-init service
|
- name: Init cluster inside the transient k3s-init service
|
||||||
command:
|
command:
|
||||||
@@ -66,8 +26,6 @@
|
|||||||
--unit=k3s-init \
|
--unit=k3s-init \
|
||||||
k3s server {{ server_init_args }}"
|
k3s server {{ server_init_args }}"
|
||||||
creates: "{{ systemd_dir }}/k3s.service"
|
creates: "{{ systemd_dir }}/k3s.service"
|
||||||
args:
|
|
||||||
warn: false # The ansible systemd module does not support transient units
|
|
||||||
|
|
||||||
- name: Verification
|
- name: Verification
|
||||||
block:
|
block:
|
||||||
|
|||||||
27
roles/k3s/master/tasks/metallb.yml
Normal file
27
roles/k3s/master/tasks/metallb.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: Create manifests directory on first master
|
||||||
|
file:
|
||||||
|
path: /var/lib/rancher/k3s/server/manifests
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
||||||
|
|
||||||
|
- name: Copy metallb namespace to first master
|
||||||
|
template:
|
||||||
|
src: "metallb.namespace.j2"
|
||||||
|
dest: "/var/lib/rancher/k3s/server/manifests/metallb-namespace.yaml"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
||||||
|
|
||||||
|
- name: Copy metallb manifest to first master
|
||||||
|
template:
|
||||||
|
src: "metallb.crds.j2"
|
||||||
|
dest: "/var/lib/rancher/k3s/server/manifests/metallb-crds.yaml"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
||||||
27
roles/k3s/master/tasks/vip.yml
Normal file
27
roles/k3s/master/tasks/vip.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: Create manifests directory on first master
|
||||||
|
file:
|
||||||
|
path: /var/lib/rancher/k3s/server/manifests
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
||||||
|
|
||||||
|
- name: Copy vip rbac manifest to first master
|
||||||
|
template:
|
||||||
|
src: "vip.rbac.yaml.j2"
|
||||||
|
dest: "/var/lib/rancher/k3s/server/manifests/vip-rbac.yaml"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
||||||
|
|
||||||
|
- name: Copy vip manifest to first master
|
||||||
|
template:
|
||||||
|
src: "vip.yaml.j2"
|
||||||
|
dest: "/var/lib/rancher/k3s/server/manifests/vip.yaml"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
when: ansible_hostname == hostvars[groups['master'][0]]['ansible_hostname']
|
||||||
@@ -1,92 +1,6 @@
|
|||||||
---
|
---
|
||||||
- name: Create manifests directory for temp configuration
|
- name: Deploy metallb pool
|
||||||
file:
|
include_tasks: metallb.yml
|
||||||
path: /tmp/k3s
|
|
||||||
state: directory
|
|
||||||
owner: "{{ ansible_user }}"
|
|
||||||
mode: 0755
|
|
||||||
with_items: "{{ groups['master'] }}"
|
|
||||||
run_once: true
|
|
||||||
|
|
||||||
- name: Copy metallb CRs manifest to first master
|
|
||||||
template:
|
|
||||||
src: "metallb.crs.j2"
|
|
||||||
dest: "/tmp/k3s/metallb-crs.yaml"
|
|
||||||
owner: "{{ ansible_user }}"
|
|
||||||
mode: 0755
|
|
||||||
with_items: "{{ groups['master'] }}"
|
|
||||||
run_once: true
|
|
||||||
|
|
||||||
- name: Test metallb-system namespace
|
|
||||||
command: >-
|
|
||||||
k3s kubectl -n metallb-system
|
|
||||||
changed_when: false
|
|
||||||
with_items: "{{ groups['master'] }}"
|
|
||||||
run_once: true
|
|
||||||
|
|
||||||
- name: Wait for MetalLB resources
|
|
||||||
command: >-
|
|
||||||
k3s kubectl wait {{ item.resource }}
|
|
||||||
--namespace='metallb-system'
|
|
||||||
{% if item.name | default(False) -%}{{ item.name }}{%- endif %}
|
|
||||||
{% if item.selector | default(False) -%}--selector='{{ item.selector }}'{%- endif %}
|
|
||||||
{% if item.condition | default(False) -%}{{ item.condition }}{%- endif %}
|
|
||||||
--timeout='{{ metal_lb_available_timeout }}'
|
|
||||||
changed_when: false
|
|
||||||
run_once: true
|
|
||||||
with_items:
|
|
||||||
- description: controller
|
|
||||||
resource: deployment
|
|
||||||
name: controller
|
|
||||||
condition: --for condition=Available=True
|
|
||||||
- description: webhook service
|
|
||||||
resource: pod
|
|
||||||
selector: component=controller
|
|
||||||
condition: --for=jsonpath='{.status.phase}'=Running
|
|
||||||
- description: pods in replica sets
|
|
||||||
resource: pod
|
|
||||||
selector: component=controller,app=metallb
|
|
||||||
condition: --for condition=Ready
|
|
||||||
- description: ready replicas of controller
|
|
||||||
resource: replicaset
|
|
||||||
selector: component=controller,app=metallb
|
|
||||||
condition: --for=jsonpath='{.status.readyReplicas}'=1
|
|
||||||
- description: fully labeled replicas of controller
|
|
||||||
resource: replicaset
|
|
||||||
selector: component=controller,app=metallb
|
|
||||||
condition: --for=jsonpath='{.status.fullyLabeledReplicas}'=1
|
|
||||||
- description: available replicas of controller
|
|
||||||
resource: replicaset
|
|
||||||
selector: component=controller,app=metallb
|
|
||||||
condition: --for=jsonpath='{.status.availableReplicas}'=1
|
|
||||||
loop_control:
|
|
||||||
label: "{{ item.description }}"
|
|
||||||
|
|
||||||
- name: Test metallb-system webhook-service endpoint
|
|
||||||
command: >-
|
|
||||||
k3s kubectl -n metallb-system get endpoints webhook-service
|
|
||||||
changed_when: false
|
|
||||||
with_items: "{{ groups['master'] }}"
|
|
||||||
run_once: true
|
|
||||||
|
|
||||||
- name: Apply metallb CRs
|
|
||||||
command: >-
|
|
||||||
k3s kubectl apply -f /tmp/k3s/metallb-crs.yaml
|
|
||||||
--timeout='{{ metal_lb_available_timeout }}'
|
|
||||||
register: this
|
|
||||||
changed_when: false
|
|
||||||
run_once: true
|
|
||||||
until: this.rc == 0
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
- name: Test metallb-system resources
|
|
||||||
command: >-
|
|
||||||
k3s kubectl -n metallb-system get {{ item }}
|
|
||||||
changed_when: false
|
|
||||||
run_once: true
|
|
||||||
with_items:
|
|
||||||
- IPAddressPool
|
|
||||||
- L2Advertisement
|
|
||||||
|
|
||||||
- name: Remove tmp directory used for manifests
|
- name: Remove tmp directory used for manifests
|
||||||
file:
|
file:
|
||||||
|
|||||||
89
roles/k3s/post/tasks/metallb.yml
Normal file
89
roles/k3s/post/tasks/metallb.yml
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
---
|
||||||
|
- name: Create manifests directory for temp configuration
|
||||||
|
file:
|
||||||
|
path: /tmp/k3s
|
||||||
|
state: directory
|
||||||
|
owner: "{{ ansible_user }}"
|
||||||
|
mode: 0755
|
||||||
|
with_items: "{{ groups['master'] }}"
|
||||||
|
run_once: true
|
||||||
|
|
||||||
|
- name: Copy metallb CRs manifest to first master
|
||||||
|
template:
|
||||||
|
src: "metallb.crs.j2"
|
||||||
|
dest: "/tmp/k3s/metallb-crs.yaml"
|
||||||
|
owner: "{{ ansible_user }}"
|
||||||
|
mode: 0755
|
||||||
|
with_items: "{{ groups['master'] }}"
|
||||||
|
run_once: true
|
||||||
|
|
||||||
|
- name: Test metallb-system namespace
|
||||||
|
command: >-
|
||||||
|
k3s kubectl -n metallb-system
|
||||||
|
changed_when: false
|
||||||
|
with_items: "{{ groups['master'] }}"
|
||||||
|
run_once: true
|
||||||
|
|
||||||
|
- name: Wait for MetalLB resources
|
||||||
|
command: >-
|
||||||
|
k3s kubectl wait {{ item.resource }}
|
||||||
|
--namespace='metallb-system'
|
||||||
|
{% if item.name | default(False) -%}{{ item.name }}{%- endif %}
|
||||||
|
{% if item.selector | default(False) -%}--selector='{{ item.selector }}'{%- endif %}
|
||||||
|
{% if item.condition | default(False) -%}{{ item.condition }}{%- endif %}
|
||||||
|
--timeout='{{ metal_lb_available_timeout }}'
|
||||||
|
changed_when: false
|
||||||
|
run_once: true
|
||||||
|
with_items:
|
||||||
|
- description: controller
|
||||||
|
resource: deployment
|
||||||
|
name: controller
|
||||||
|
condition: --for condition=Available=True
|
||||||
|
- description: webhook service
|
||||||
|
resource: pod
|
||||||
|
selector: component=controller
|
||||||
|
condition: --for=jsonpath='{.status.phase}'=Running
|
||||||
|
- description: pods in replica sets
|
||||||
|
resource: pod
|
||||||
|
selector: component=controller,app=metallb
|
||||||
|
condition: --for condition=Ready
|
||||||
|
- description: ready replicas of controller
|
||||||
|
resource: replicaset
|
||||||
|
selector: component=controller,app=metallb
|
||||||
|
condition: --for=jsonpath='{.status.readyReplicas}'=1
|
||||||
|
- description: fully labeled replicas of controller
|
||||||
|
resource: replicaset
|
||||||
|
selector: component=controller,app=metallb
|
||||||
|
condition: --for=jsonpath='{.status.fullyLabeledReplicas}'=1
|
||||||
|
- description: available replicas of controller
|
||||||
|
resource: replicaset
|
||||||
|
selector: component=controller,app=metallb
|
||||||
|
condition: --for=jsonpath='{.status.availableReplicas}'=1
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.description }}"
|
||||||
|
|
||||||
|
- name: Test metallb-system webhook-service endpoint
|
||||||
|
command: >-
|
||||||
|
k3s kubectl -n metallb-system get endpoints webhook-service
|
||||||
|
changed_when: false
|
||||||
|
with_items: "{{ groups['master'] }}"
|
||||||
|
run_once: true
|
||||||
|
|
||||||
|
- name: Apply metallb CRs
|
||||||
|
command: >-
|
||||||
|
k3s kubectl apply -f /tmp/k3s/metallb-crs.yaml
|
||||||
|
--timeout='{{ metal_lb_available_timeout }}'
|
||||||
|
register: this
|
||||||
|
changed_when: false
|
||||||
|
run_once: true
|
||||||
|
until: this.rc == 0
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
- name: Test metallb-system resources
|
||||||
|
command: >-
|
||||||
|
k3s kubectl -n metallb-system get {{ item }}
|
||||||
|
changed_when: false
|
||||||
|
run_once: true
|
||||||
|
with_items:
|
||||||
|
- IPAddressPool
|
||||||
|
- L2Advertisement
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
---
|
---
|
||||||
- name: Reboot
|
- name: reboot
|
||||||
reboot:
|
reboot:
|
||||||
|
|||||||
Reference in New Issue
Block a user