58 lines
2.3 KiB
YAML
58 lines
2.3 KiB
YAML
- block:
|
|
- name: Aggregate manifest-component versions into dictionary
|
|
ansible.builtin.set_fact:
|
|
manifest_versions: "{{ manifest_versions | default([]) + [ item | combine( {'type': 'manifest', 'id': index } ) ] }}"
|
|
loop:
|
|
- name: cluster-api
|
|
versions:
|
|
management:
|
|
base: "{{ components.clusterapi.management.version.base }}"
|
|
cert_manager: "{{ components.clusterapi.management.version.cert_manager }}"
|
|
infrastructure_vsphere: "{{ components.clusterapi.management.version.infrastructure_vsphere }}"
|
|
ipam_incluster: "{{ components.clusterapi.management.version.ipam_incluster }}"
|
|
cpi_vsphere: "{{ components.clusterapi.management.version.cpi_vsphere }}"
|
|
workload:
|
|
calico: "{{ components.clusterapi.workload.version.calico }}"
|
|
k8s: "{{ components.clusterapi.workload.version.k8s }}"
|
|
- name: kube-vip
|
|
version: "{{ components.kubevip.version }}"
|
|
loop_control:
|
|
label: "{{ item.name }}"
|
|
index_var: index
|
|
|
|
- name: Install json-server chart
|
|
kubernetes.core.helm:
|
|
name: json-server
|
|
chart_ref: /opt/metacluster/helm-charts/json-server
|
|
release_namespace: json-server
|
|
create_namespace: true
|
|
wait: false
|
|
kubeconfig: "{{ kubeconfig.path }}"
|
|
values: |
|
|
{{
|
|
components['json-server'].chart_values |
|
|
combine(
|
|
{ 'jsonServer': { 'seedData': { 'configInline': (
|
|
{ 'appliance': { "version": appliance.version }, 'components': manifest_versions, 'healthz': { 'status': 'running' } }
|
|
) | to_json } } }
|
|
)
|
|
}}
|
|
|
|
- name: Ensure json-server API availability
|
|
ansible.builtin.uri:
|
|
url: https://version.{{ vapp['metacluster.fqdn'] }}/healthz
|
|
method: GET
|
|
# This mock REST API -ironically- does not support json encoded body argument
|
|
body_format: raw
|
|
register: api_readycheck
|
|
until:
|
|
- api_readycheck.json.status is defined
|
|
- api_readycheck.json.status == 'running'
|
|
retries: "{{ playbook.retries }}"
|
|
delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}"
|
|
|
|
module_defaults:
|
|
ansible.builtin.uri:
|
|
validate_certs: no
|
|
status_code: [200, 201]
|