Divide hypervisor/vapp details over secret/configmap;Add filter plugin;Retain newlines in template;Add vApp properties
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Danny Bessems 2022-09-06 13:34:39 +02:00
parent 1794b24998
commit a67ef0e1bd
4 changed files with 60 additions and 6 deletions

View File

@ -0,0 +1,14 @@
import netaddr
def netaddr_iter_iprange(ip_start, ip_end):
return [str(ip) for ip in netaddr.iter_iprange(ip_start, ip_end)]
class FilterModule(object):
''' Ansible filter. Interface to netaddr methods.
https://pypi.org/project/netaddr/
'''
def filters(self):
return {
'netaddr_iter_iprange': netaddr_iter_iprange
}

View File

@ -7,15 +7,20 @@
kubeconfig: "{{ kubeconfig.path }}" kubeconfig: "{{ kubeconfig.path }}"
# values: "{{ components.sealedsecrets.chart_values }}" # values: "{{ components.sealedsecrets.chart_values }}"
- name: Store hypervisor details in secret - name: Store hypervisor details in configmap/secret
kubernetes.core.k8s: kubernetes.core.k8s:
state: present state: present
template: secret.j2 template: "{{ item.kind }}.j2"
kubeconfig: "{{ kubeconfig.path }}" kubeconfig: "{{ kubeconfig.path }}"
vars: vars:
_template: _template:
name: hypervisor-credentials name: "{{ item.name }}"
namespace: "{{ item.namespace }}"
data: "{{ item.data }}"
loop:
- name: hypervisor-credentials
namespace: kube-system namespace: kube-system
kind: secret
data: data:
- key: HV_FQDN - key: HV_FQDN
value: "{{ vapp['hv.fqdn'] | b64encode }}" value: "{{ vapp['hv.fqdn'] | b64encode }}"
@ -23,3 +28,21 @@
value: "{{ vapp['hv.username'] | b64encode }}" value: "{{ vapp['hv.username'] | b64encode }}"
- key: HV_PASSWORD - key: HV_PASSWORD
value: "{{ vapp['hv.password'] | b64encode }}" value: "{{ vapp['hv.password'] | b64encode }}"
- name: hypervisor-ippool
namespace: kube-system
kind: configmap
data:
- key: VAPP_MOREF
value: "{{ moref_id }}"
- key: VAPP_IPPOOL_NETWORK
value: "{{ (vapp['guestinfo.ipaddress'] + '/' + vapp['guestinfo.prefixlength']) | ansible.utils.ipaddr('network') }}"
- key: VAPP_IPPOOL_NETMASK
value: "{{ (vapp['guestinfo.ipaddress'] + '/' + vapp['guestinfo.prefixlength']) | ansible.utils.ipaddr('netmask') }}"
- key: VAPP_IPPOOL_DNSSERVER
value: "{{ vapp['guestinfo.dnsserver'] }}"
- key: VAPP_IPPOOL_GATEWAY
value: "{{ vapp['guestinfo.gateway'] }}"
- key: VAPP_IPPOOL_RANGE
value: "{{ vapp['ippool.startip'] + '#' + (vapp['ippool.startip'] | netaddr_iter_iprange(vapp['ippool.endip']) | length | string) }}"
loop_control:
label: "{{ item.kind + '/' + item.name + ' (' + item.namespace + ')' }}"

View File

@ -9,5 +9,6 @@ metadata:
{{ _template.labels }} {{ _template.labels }}
data: data:
{% for kv_pair in _template.data %} {% for kv_pair in _template.data %}
"{{ kv_pair.key }}": "{{ kv_pair.value }}" "{{ kv_pair.key }}": |
{{ kv_pair.value | indent(width=4, first=True) }}
{% endfor %} {% endfor %}

View File

@ -39,8 +39,24 @@ PropertyCategories:
- Key: metacluster.fqdn - Key: metacluster.fqdn
Type: string(1..) Type: string(1..)
Label: Appliance FQDN* Label: Appliance FQDN*
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: 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.
DefaultValue: 'meta.k8s.cluster' DefaultValue: meta.k8s.cluster
Configurations: '*'
UserConfigurable: true
- Key: ippool.startip
Type: ip
Label: 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: IP-pool end IP*
Description: All nodes for the workload cluster will be provisioned within this IP pool
DefaultValue: ''
Configurations: '*' Configurations: '*'
UserConfigurable: true UserConfigurable: true