Move files between payload folders;Define upgrade vapp properties;Join metacluster
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
1428fe73f7
commit
43d83e8e31
@ -1,13 +1 @@
|
|||||||
- block:
|
- import_tasks: vcenter.yml
|
||||||
|
|
||||||
- name: Check for vCenter connectivity
|
|
||||||
community.vmware.vmware_vcenter_settings_info:
|
|
||||||
schema: vsphere
|
|
||||||
register: vcenter_info
|
|
||||||
|
|
||||||
module_defaults:
|
|
||||||
group/vmware:
|
|
||||||
hostname: "{{ vapp['hv.fqdn'] }}"
|
|
||||||
validate_certs: no
|
|
||||||
username: "{{ vapp['hv.username'] }}"
|
|
||||||
password: "{{ vapp['hv.password'] }}"
|
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
- block:
|
||||||
|
|
||||||
|
- name: Check for vCenter connectivity
|
||||||
|
community.vmware.vmware_vcenter_settings_info:
|
||||||
|
schema: vsphere
|
||||||
|
register: vcenter_info
|
||||||
|
|
||||||
|
module_defaults:
|
||||||
|
group/vmware:
|
||||||
|
hostname: "{{ vapp['hv.fqdn'] }}"
|
||||||
|
validate_certs: no
|
||||||
|
username: "{{ vapp['hv.username'] }}"
|
||||||
|
password: "{{ vapp['hv.password'] }}"
|
@ -12,7 +12,7 @@
|
|||||||
- preflight
|
- preflight
|
||||||
- users
|
- users
|
||||||
- disks
|
- disks
|
||||||
# - metacluster
|
- metacluster
|
||||||
# - workloadcluster
|
# - workloadcluster
|
||||||
- tty
|
- tty
|
||||||
- cleanup
|
- cleanup
|
||||||
|
@ -0,0 +1,63 @@
|
|||||||
|
- name: Store custom configuration files
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "{{ item.filename }}"
|
||||||
|
content: "{{ item.content }}"
|
||||||
|
loop:
|
||||||
|
- filename: /etc/rancher/k3s/config.yaml
|
||||||
|
content: |
|
||||||
|
kubelet-arg:
|
||||||
|
- "config=/etc/rancher/k3s/kubelet.config"
|
||||||
|
- filename: /etc/rancher/k3s/kubelet.config
|
||||||
|
content: |
|
||||||
|
apiVersion: kubelet.config.k8s.io/v1beta1
|
||||||
|
kind: KubeletConfiguration
|
||||||
|
|
||||||
|
shutdownGracePeriod: 180s
|
||||||
|
shtudownGracePeriodCriticalPods: 60s
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.filename }}"
|
||||||
|
|
||||||
|
- name: Gather service facts
|
||||||
|
ansible.builtin.service_facts:
|
||||||
|
# Module requires no attributes
|
||||||
|
|
||||||
|
- name: Install K3s
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: ./install.sh
|
||||||
|
chdir: /opt/metacluster/k3s
|
||||||
|
environment:
|
||||||
|
INSTALL_K3S_SKIP_DOWNLOAD: 'true'
|
||||||
|
INSTALL_K3S_EXEC: "server --token {{ vapp['metacluster.token'] }} --server https://{{ vapp['metacluster.fqdn'] }}:6443 --disable local-storage --config /etc/rancher/k3s/config.yaml"
|
||||||
|
when: ansible_facts.services['k3s.service'] is undefined
|
||||||
|
|
||||||
|
- name: Ensure API availability
|
||||||
|
ansible.builtin.uri:
|
||||||
|
url: https://{{ vapp['guestinfo.ipaddress'] }}:6443/livez?verbose
|
||||||
|
method: GET
|
||||||
|
validate_certs: no
|
||||||
|
status_code: [200, 401]
|
||||||
|
register: api_readycheck
|
||||||
|
until: api_readycheck.json.apiVersion is defined
|
||||||
|
retries: "{{ playbook.retries }}"
|
||||||
|
delay: "{{ playbook.delays.medium }}"
|
||||||
|
|
||||||
|
- name: Install kubectl tab-completion
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: kubectl completion bash | tee /etc/bash_completion.d/kubectl
|
||||||
|
|
||||||
|
- name: Initialize tempfile
|
||||||
|
ansible.builtin.tempfile:
|
||||||
|
state: file
|
||||||
|
register: kubeconfig
|
||||||
|
|
||||||
|
- name: Retrieve kubeconfig
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: kubectl config view --raw
|
||||||
|
register: kubectl_config
|
||||||
|
|
||||||
|
- name: Store kubeconfig in tempfile
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "{{ kubeconfig.path }}"
|
||||||
|
content: "{{ kubectl_config.stdout }}"
|
||||||
|
mode: 0600
|
||||||
|
no_log: true
|
@ -0,0 +1,9 @@
|
|||||||
|
# - import_tasks: init.yml
|
||||||
|
- import_tasks: k3s.yml
|
||||||
|
# - import_tasks: assets.yml
|
||||||
|
# - import_tasks: ingress.yml
|
||||||
|
# - import_tasks: storage.yml
|
||||||
|
# - import_tasks: certauthority.yml
|
||||||
|
# - import_tasks: registry.yml
|
||||||
|
# - import_tasks: git.yml
|
||||||
|
# - import_tasks: gitops.yml
|
@ -0,0 +1,2 @@
|
|||||||
|
- import_tasks: vcenter.yml
|
||||||
|
- import_tasks: metacluster.yml
|
@ -0,0 +1,6 @@
|
|||||||
|
- name: Check for metacluster connectivity
|
||||||
|
ansible.builtin.uri:
|
||||||
|
url: https://{{ vapp['metacluster.fqdn'] }}:6443/livez?verbose
|
||||||
|
method: GET
|
||||||
|
validate_certs: no
|
||||||
|
status_code: [200, 401]
|
@ -42,7 +42,7 @@ PropertyCategories:
|
|||||||
- Key: metacluster.password
|
- Key: metacluster.password
|
||||||
Type: password(7..)
|
Type: password(7..)
|
||||||
Label: Appliance password*
|
Label: Appliance password*
|
||||||
Description: 'Initial password for respective administrator accounts within each component'
|
Description: ''
|
||||||
DefaultValue: ''
|
DefaultValue: ''
|
||||||
Configurations: '*'
|
Configurations: '*'
|
||||||
UserConfigurable: true
|
UserConfigurable: true
|
||||||
@ -65,9 +65,17 @@ PropertyCategories:
|
|||||||
|
|
||||||
- Key: metacluster.fqdn
|
- Key: metacluster.fqdn
|
||||||
Type: string(1..)
|
Type: string(1..)
|
||||||
Label: Appliance FQDN*
|
Label: Meta-cluster FQDN/IP-address*
|
||||||
Description: Respective subdomains will be available for each component (e.g. storage.example.org); this address should already be configured as a wildcard record within your DNS zone.
|
Description: The address of the target meta-cluster which this appliance will perform an upgrade on.
|
||||||
DefaultValue: meta.k8s.cluster
|
DefaultValue: ''
|
||||||
|
Configurations: '*'
|
||||||
|
UserConfigurable: true
|
||||||
|
|
||||||
|
- key: metacluster.token
|
||||||
|
Type: string(1..)
|
||||||
|
Label: K3s install token*
|
||||||
|
Description: Must match the token originally used for the target meta-cluster
|
||||||
|
DefaultValue: ''
|
||||||
Configurations: '*'
|
Configurations: '*'
|
||||||
UserConfigurable: true
|
UserConfigurable: true
|
||||||
|
|
||||||
@ -95,53 +103,18 @@ PropertyCategories:
|
|||||||
Configurations: '*'
|
Configurations: '*'
|
||||||
UserConfigurable: true
|
UserConfigurable: true
|
||||||
|
|
||||||
- Name: 2) Workload-cluster
|
- Name: 2) Common
|
||||||
ProductProperties:
|
|
||||||
|
|
||||||
- Key: workloadcluster.name
|
|
||||||
Type: string(1..15)
|
|
||||||
Label: Workload-cluster name*
|
|
||||||
Description: ''
|
|
||||||
DefaultValue: 'workload-{{ hostname.suffix }}'
|
|
||||||
Configurations: '*'
|
|
||||||
UserConfigurable: true
|
|
||||||
|
|
||||||
- Key: workloadcluster.vip
|
|
||||||
Type: ip
|
|
||||||
Label: Workload-cluster virtual IP*
|
|
||||||
Description: Workload-cluster control plane endpoint virtual IP
|
|
||||||
DefaultValue: ''
|
|
||||||
Configurations: '*'
|
|
||||||
UserConfigurable: true
|
|
||||||
|
|
||||||
- Key: ippool.startip
|
|
||||||
Type: ip
|
|
||||||
Label: Workload-cluster IP-pool start IP*
|
|
||||||
Description: All nodes for the workload-cluster will be provisioned within this IP pool
|
|
||||||
DefaultValue: ''
|
|
||||||
Configurations: '*'
|
|
||||||
UserConfigurable: true
|
|
||||||
|
|
||||||
- Key: ippool.endip
|
|
||||||
Type: ip
|
|
||||||
Label: Workload-cluster IP-pool end IP*
|
|
||||||
Description: All nodes for the workload-cluster will be provisioned within this IP pool
|
|
||||||
DefaultValue: ''
|
|
||||||
Configurations: '*'
|
|
||||||
UserConfigurable: true
|
|
||||||
|
|
||||||
- Name: 3) Common
|
|
||||||
ProductProperties:
|
ProductProperties:
|
||||||
|
|
||||||
- Key: guestinfo.rootsshkey
|
- Key: guestinfo.rootsshkey
|
||||||
Type: password(1..)
|
Type: password(1..)
|
||||||
Label: SSH public key*
|
Label: SSH public key*
|
||||||
Description: Authentication for any node (meta-cluster *and* workloadcluster); this line should start with 'ssh-rsa AAAAB3N'
|
Description: Authentication for this meta-cluster node; this line should start with 'ssh-rsa AAAAB3N'
|
||||||
DefaultValue: ''
|
DefaultValue: ''
|
||||||
Configurations: '*'
|
Configurations: '*'
|
||||||
UserConfigurable: true
|
UserConfigurable: true
|
||||||
|
|
||||||
- Name: 4) Hypervisor
|
- Name: 3) Hypervisor
|
||||||
ProductProperties:
|
ProductProperties:
|
||||||
|
|
||||||
- Key: hv.fqdn
|
- Key: hv.fqdn
|
||||||
|
Loading…
Reference in New Issue
Block a user