feat(kubevirt): install virtctl plugin

!35
This commit is contained in:
2024-03-13 00:59:55 +09:30
parent 2ec8fe814c
commit 9d5a078320
5 changed files with 51 additions and 9 deletions

View File

@ -11,7 +11,9 @@ This Ansible role is designed to deploy a K3s Kubernetes cluster. Without adding
## Features
- CNI Setup
- CNI Setup, calico including `calicoctl` plugin
> `kubectl calico ....` instead of `calicoctl ....`
- Configurable:
@ -49,7 +51,9 @@ This Ansible role is designed to deploy a K3s Kubernetes cluster. Without adding
- Install MetalLB
- Install KubeVirt
- Install KubeVirt including `virtctl` plugin
> `kubectl virt ....` instead of `virtctl ....`
## Role Workflow

View File

@ -158,11 +158,6 @@
not nfc_role_kubernetes_worker | default(false) | bool
- name: Check Machine Architecture
ansible.builtin.set_fact:
nfc_kubernetes_install_architectures: "{{ nfc_kubernetes_install_architectures | default({}) | combine({ansible_architecture: ''}) }}"
- name: Download Install Scripts
ansible.builtin.uri:
url: "{{ item.url }}"
@ -541,4 +536,3 @@
kubernetes_installed: true
# Clear Token as no llonger required and due to being a sensitive value
k3s_join_token: null
nfc_kubernetes_install_architectures: {}

View File

@ -127,7 +127,7 @@
owner: root
group: 'root'
become: true
when: inventory_hostname in groups['kubernetes_master']
when: nfc_role_kubernetes_master
- name: Setup Automagic Host Endpoints

View File

@ -26,6 +26,45 @@
- kubevirt-cr.yaml.j2
- name: Fetch virtctl Kubectl Plugin
ansible.builtin.uri:
url: |-
https://github.com/kubevirt/kubevirt/releases/download/{{
nfc_role_kubernetes_container_images.kubevirt_operator.tag }}/virtctl-{{
nfc_role_kubernetes_container_images.kubevirt_operator.tag }}-linux-
{%- if cpu_arch.key == 'aarch64' -%}
arm64
{%- else -%}
amd64
{%- endif %}
status_code:
- 200
- 304
dest: "/tmp/kubectl-virtctl.{{ cpu_arch.key }}"
mode: '777'
owner: root
group: 'root'
changed_when: false
become: true
delegate_to: localhost
loop: "{{ nfc_kubernetes_install_architectures | dict2items }}"
loop_control:
loop_var: cpu_arch
vars:
ansible_connection: local
- name: Add virtctl Plugin
ansible.builtin.copy:
src: "/tmp/kubectl-virtctl.{{ ansible_architecture }}"
dest: /usr/local/bin/kubectl-virt
mode: '770'
owner: root
group: 'root'
become: true
when: nfc_role_kubernetes_master
- name: Wait for KubeVirt to initialize
ansible.builtin.command:
cmd: kubectl -n kubevirt wait kv kubevirt --for condition=Available

View File

@ -14,6 +14,11 @@
msg: The hostname must match the inventory_hostname
- name: Check Machine Architecture
ansible.builtin.set_fact:
nfc_kubernetes_install_architectures: "{{ nfc_kubernetes_install_architectures | default({}) | combine({ansible_architecture: ''}) }}"
- name: Firewall Rules
ansible.builtin.include_role:
name: nfc_firewall