Fixed Mayastor DiskPool, K8S upgrade.
This commit is contained in:
parent
c7469d55e5
commit
41f67af217
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Mark installation finished using DCI Manager
|
||||||
|
gather_facts: false
|
||||||
|
hosts:
|
||||||
|
- talos_hardware_nodes
|
||||||
|
roles:
|
||||||
|
- role: dci_finish
|
|
@ -1,5 +1,6 @@
|
||||||
---
|
---
|
||||||
kubernetes_version: v1.26.7
|
kubernetes_version: v1.26.9 # Rancher can't run on v1.27, see https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-7-6/
|
||||||
|
talos_image_version: v1.5.2
|
||||||
talos_version: v1.5.3
|
talos_version: v1.5.3
|
||||||
ansible_root_dir: "{{ inventory_dir | ansible.builtin.dirname }}"
|
ansible_root_dir: "{{ inventory_dir | ansible.builtin.dirname }}"
|
||||||
ansible_vault_password_file: "{{ ansible_root_dir }}/.ansible/vault_pass"
|
ansible_vault_password_file: "{{ ansible_root_dir }}/.ansible/vault_pass"
|
||||||
|
@ -13,7 +14,6 @@ talos_node_config_file: "{{ talos_cluster_config_dir }}/talos-{{ inventory_hostn
|
||||||
talos_disk: /dev/sda
|
talos_disk: /dev/sda
|
||||||
talosconfig: "{{ talos_cluster_config_dir }}/talosconfig.yaml"
|
talosconfig: "{{ talos_cluster_config_dir }}/talosconfig.yaml"
|
||||||
kubeconfig: "{{ talos_cluster_config_dir }}/kubeconfig.yaml"
|
kubeconfig: "{{ talos_cluster_config_dir }}/kubeconfig.yaml"
|
||||||
talos_image_version: v1.4.7
|
|
||||||
kubectl_host: localhost
|
kubectl_host: localhost
|
||||||
talosctl_host: localhost
|
talosctl_host: localhost
|
||||||
ingress_lb_hostname: "workers.{{ cluster_name }}"
|
ingress_lb_hostname: "workers.{{ cluster_name }}"
|
||||||
|
@ -21,4 +21,4 @@ ingress_ips: [] # One or more IPs must be defined for first cluster node using I
|
||||||
rancher_hostname: "rancher.{{ cluster_name }}"
|
rancher_hostname: "rancher.{{ cluster_name }}"
|
||||||
letsencrypt_email: "jeroen@deovero.com"
|
letsencrypt_email: "jeroen@deovero.com"
|
||||||
network_interface: "eth0"
|
network_interface: "eth0"
|
||||||
network_cidr_prefix: "24"
|
network_cidr_prefix: "24"
|
||||||
|
|
|
@ -24,10 +24,21 @@
|
||||||
register: _dci_reinstall
|
register: _dci_reinstall
|
||||||
until: _dci_reinstall.status != 503 and _dci_reinstall.status != -1
|
until: _dci_reinstall.status != 503 and _dci_reinstall.status != -1
|
||||||
|
|
||||||
- name: Wait for Talos port 50000
|
- name: Wait for Talos port 50000 to go down
|
||||||
|
delegate_to: "{{ talosctl_host }}"
|
||||||
|
become: false
|
||||||
|
ansible.builtin.wait_for:
|
||||||
|
delay: 10
|
||||||
|
state: stopped
|
||||||
|
host: "{{ ansible_remote }}"
|
||||||
|
port: 50000
|
||||||
|
timeout: 300
|
||||||
|
|
||||||
|
- name: Wait for Talos port 50000 to be open
|
||||||
delegate_to: "{{ talosctl_host }}"
|
delegate_to: "{{ talosctl_host }}"
|
||||||
become: false
|
become: false
|
||||||
ansible.builtin.wait_for:
|
ansible.builtin.wait_for:
|
||||||
delay: 10
|
delay: 10
|
||||||
host: "{{ ansible_remote }}"
|
host: "{{ ansible_remote }}"
|
||||||
port: 50000
|
port: 50000
|
||||||
|
timeout: 1200
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: DiskPool for Mayastor
|
||||||
|
delegate_to: "{{ kubectl_host }}"
|
||||||
|
when: "mayastor_disk is defined"
|
||||||
|
kubernetes.core.k8s:
|
||||||
|
kubeconfig: "{{ kubeconfig }}"
|
||||||
|
resource_definition:
|
||||||
|
apiVersion: "openebs.io/v1beta1"
|
||||||
|
kind: DiskPool
|
||||||
|
metadata:
|
||||||
|
name: "{{ inventory_hostname | ansible.builtin.regex_replace('[^a-z0-9]+', '-') }}-{{ mayastor_disk | ansible.builtin.regex_replace('[^a-z0-9]+', '-') }}"
|
||||||
|
namespace: mayastor
|
||||||
|
spec:
|
||||||
|
node: "{{ inventory_hostname }}"
|
||||||
|
disks:
|
||||||
|
- "{{ mayastor_disk }}"
|
|
@ -14,6 +14,7 @@
|
||||||
- name: Apply Talos node config
|
- name: Apply Talos node config
|
||||||
delegate_to: "{{ talosctl_host }}"
|
delegate_to: "{{ talosctl_host }}"
|
||||||
become: false
|
become: false
|
||||||
|
throttle: 1
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: >-
|
cmd: >-
|
||||||
talosctl apply-config
|
talosctl apply-config
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
---
|
|
||||||
|
|
||||||
- name: Create Talos control node config
|
|
||||||
delegate_to: "{{ talosctl_host }}"
|
|
||||||
become: false
|
|
||||||
ansible.builtin.command:
|
|
||||||
cmd: >-
|
|
||||||
talosctl gen config '{{ cluster_name }}' 'https://{{ talos_control_lb_hostname }}:6443'
|
|
||||||
--output-types controlplane
|
|
||||||
--output '{{ talos_node_config_file }}'
|
|
||||||
--with-secrets '{{ talos_cluster_secrets_file }}'
|
|
||||||
--config-patch @'{{ talos_generic_config_dir }}/talos-patch.yaml'
|
|
||||||
--config-patch-control-plane @'{{ talos_generic_config_dir }}/talos-patch-control.yaml'
|
|
||||||
--config-patch='[{"op": "replace", "path": "/machine/network/hostname", "value": "{{ inventory_hostname }}"}]'
|
|
||||||
--config-patch='[{"op": "replace", "path": "/machine/install/disk", "value": "{{ talos_disk }}"}]'
|
|
||||||
--talos-version '{{ talos_image_version }}'
|
|
||||||
--kubernetes-version '{{ kubernetes_version }}'
|
|
||||||
--additional-sans '{{ talos_control_lb_hostname }}'
|
|
||||||
--force
|
|
||||||
changed_when: true
|
|
|
@ -15,17 +15,20 @@
|
||||||
gateway: "{{ (ansible_remote ~ '/' ~ network_cidr_prefix) | ansible.utils.ipaddr('1') | ansible.utils.ipaddr('address') }}"
|
gateway: "{{ (ansible_remote ~ '/' ~ network_cidr_prefix) | ansible.utils.ipaddr('1') | ansible.utils.ipaddr('address') }}"
|
||||||
install:
|
install:
|
||||||
disk: "{{ talos_disk }}"
|
disk: "{{ talos_disk }}"
|
||||||
|
kubelet:
|
||||||
|
extraArgs:
|
||||||
|
max-pods: "{% if 'talos_hardware_nodes' in group_names %}250{% else %}110{% endif %}"
|
||||||
|
|
||||||
- name: Create Talos interfaces bond append
|
- name: Create Talos interfaces bond append
|
||||||
when: "network_interfaces_bond is defined"
|
when: "network_interface_bond is defined"
|
||||||
ansible.utils.update_fact:
|
ansible.utils.update_fact:
|
||||||
updates:
|
updates:
|
||||||
- path: "_talos_override_config.machine.network.interfaces.0.bond"
|
- path: "_talos_override_config.machine.network.interfaces.0.bond"
|
||||||
value: "{{ network_interfaces_bond }}"
|
value: "{{ network_interface_bond }}"
|
||||||
register: _talos_override_update
|
register: _talos_override_update
|
||||||
|
|
||||||
- name: Apply Talos interfaces bond append
|
- name: Apply Talos interfaces bond append
|
||||||
when: "network_interfaces_bond is defined"
|
when: "network_interface_bond is defined"
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
_talos_override_config: "{{ _talos_override_update._talos_override_config }}"
|
_talos_override_config: "{{ _talos_override_update._talos_override_config }}"
|
||||||
|
|
||||||
|
@ -52,10 +55,11 @@
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: >-
|
cmd: >-
|
||||||
talosctl gen config '{{ cluster_name }}' 'https://{{ talos_control_lb_hostname }}:6443'
|
talosctl gen config '{{ cluster_name }}' 'https://{{ talos_control_lb_hostname }}:6443'
|
||||||
--output-types='worker'
|
--output-types='{% if "talos_control_nodes" in group_names %}controlplane{% else %}worker{% endif %}'
|
||||||
--output='{{ talos_node_config_file }}'
|
--output='{{ talos_node_config_file }}'
|
||||||
--with-secrets='{{ talos_cluster_secrets_file }}'
|
--with-secrets='{{ talos_cluster_secrets_file }}'
|
||||||
--config-patch=@'{{ talos_generic_config_dir }}/talos-patch.yaml'
|
--config-patch=@'{{ talos_generic_config_dir }}/talos-patch.yaml'
|
||||||
|
--config-patch-control-plane @'{{ talos_generic_config_dir }}/talos-patch-control.yaml'
|
||||||
--config-patch-worker=@'{{ talos_generic_config_dir }}/talos-patch-worker.yaml'
|
--config-patch-worker=@'{{ talos_generic_config_dir }}/talos-patch-worker.yaml'
|
||||||
--config-patch=@'{{ _talos_override_tempfile }}'
|
--config-patch=@'{{ _talos_override_tempfile }}'
|
||||||
--talos-version='{{ talos_image_version }}'
|
--talos-version='{{ talos_image_version }}'
|
|
@ -14,10 +14,5 @@
|
||||||
- name: Import create_talosconfig tasks
|
- name: Import create_talosconfig tasks
|
||||||
ansible.builtin.import_tasks: create_talosconfig.yml
|
ansible.builtin.import_tasks: create_talosconfig.yml
|
||||||
|
|
||||||
- name: Import create_control_configs tasks
|
- name: Import create_node_config tasks
|
||||||
when: "'talos_control_nodes' in group_names"
|
ansible.builtin.import_tasks: create_node_config.yml
|
||||||
ansible.builtin.import_tasks: create_control_configs.yml
|
|
||||||
|
|
||||||
- name: Import create_worker_configs tasks
|
|
||||||
when: "'talos_worker_nodes' in group_names"
|
|
||||||
ansible.builtin.import_tasks: create_worker_configs.yml
|
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- name: Upgrade Talos
|
- name: Upgrade Talos
|
||||||
delegate_to: "{{ talosctl_host }}"
|
delegate_to: "{{ talosctl_host }}"
|
||||||
become: false
|
|
||||||
throttle: 1
|
throttle: 1
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: >-
|
cmd: >-
|
||||||
talosctl upgrade
|
talosctl upgrade
|
||||||
--image="ghcr.io/siderolabs/installer:{{ talos_version }}"
|
--image="ghcr.io/siderolabs/installer:{{ talos_version }}"
|
||||||
--endpoints '{{ talos_control_lb_hostname }}'
|
--endpoints='{{ talos_control_lb_hostname }}'
|
||||||
--nodes '{{ ansible_remote }}'
|
--nodes='{{ ansible_remote }}'
|
||||||
|
--timeout='30m'
|
||||||
--wait=true
|
--wait=true
|
||||||
changed_when: false
|
changed_when: true
|
||||||
environment:
|
environment:
|
||||||
TALOSCONFIG: "{{ talosconfig }}"
|
TALOSCONFIG: "{{ talosconfig }}"
|
||||||
|
|
||||||
- name: Wait for Talos port 50000
|
- name: Wait for Talos port 50000
|
||||||
delegate_to: "{{ talosctl_host }}"
|
delegate_to: "{{ talosctl_host }}"
|
||||||
|
throttle: 1
|
||||||
become: false
|
become: false
|
||||||
ansible.builtin.wait_for:
|
ansible.builtin.wait_for:
|
||||||
host: "{{ ansible_remote }}"
|
host: "{{ ansible_remote }}"
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -0,0 +1,21 @@
|
||||||
|
---
|
||||||
|
- name: Upgrade Kubernetes to {{ kubernetes_version }}
|
||||||
|
delegate_to: "{{ talosctl_host }}"
|
||||||
|
run_once: true
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: >-
|
||||||
|
talosctl upgrade-k8s
|
||||||
|
--to={{ kubernetes_version }}
|
||||||
|
changed_when: true
|
||||||
|
environment:
|
||||||
|
TALOSCONFIG: "{{ talosconfig }}"
|
||||||
|
|
||||||
|
- name: Wait for Talos port 50000
|
||||||
|
delegate_to: "{{ talosctl_host }}"
|
||||||
|
throttle: 1
|
||||||
|
become: false
|
||||||
|
ansible.builtin.wait_for:
|
||||||
|
host: "{{ ansible_remote }}"
|
||||||
|
port: 50000
|
||||||
|
delay: 5
|
||||||
|
timeout: 300
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- role: common
|
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Wait for Talos health
|
||||||
|
delegate_to: "{{ talosctl_host }}"
|
||||||
|
run_once: true
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: >-
|
||||||
|
talosctl health
|
||||||
|
--wait-timeout='30m'
|
||||||
|
changed_when: false
|
||||||
|
environment:
|
||||||
|
TALOSCONFIG: "{{ talosconfig }}"
|
11
services.yml
11
services.yml
|
@ -28,3 +28,14 @@
|
||||||
- role: velero
|
- role: velero
|
||||||
tags:
|
tags:
|
||||||
- velero
|
- velero
|
||||||
|
|
||||||
|
- name: Install per-node services on K8S
|
||||||
|
become: false
|
||||||
|
gather_facts: false
|
||||||
|
hosts:
|
||||||
|
- talos
|
||||||
|
roles:
|
||||||
|
- role: mayastor_diskpool
|
||||||
|
tags:
|
||||||
|
- mayastor
|
||||||
|
- mayastor_diskpool
|
||||||
|
|
|
@ -1,7 +1,17 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
|
- name: Wait for Talos health
|
||||||
|
gather_facts: false
|
||||||
|
serial: 1
|
||||||
|
hosts:
|
||||||
|
- talos_first_nodes
|
||||||
|
roles:
|
||||||
|
- role: talos_wait_port
|
||||||
|
- role: talos_wait_health
|
||||||
|
|
||||||
- name: Upgrade Talos
|
- name: Upgrade Talos
|
||||||
gather_facts: false
|
gather_facts: false
|
||||||
|
serial: 1
|
||||||
hosts:
|
hosts:
|
||||||
- talos
|
- talos
|
||||||
roles:
|
roles:
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Upgrade Talos
|
||||||
|
gather_facts: false
|
||||||
|
throttle: 1
|
||||||
|
serial: 1
|
||||||
|
hosts:
|
||||||
|
- talos_first_nodes
|
||||||
|
roles:
|
||||||
|
- role: talos_wait_port
|
||||||
|
- role: talos_wait_health
|
||||||
|
- role: talos_upgrade_k8s
|
Loading…
Reference in New Issue