Refactor templating #42
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Danny Bessems 2022-07-11 09:24:04 +02:00
parent 2847542976
commit f04095db8c
3 changed files with 25 additions and 19 deletions

View File

@ -1 +0,0 @@
#jinja2:variable_start_string:'[%' , variable_end_string:'%]'

View File

@ -25,16 +25,16 @@
- name: Aggregate chart_values into dict
ansible.builtin.set_fact:
chart_values: "{{ chart_values | default({}) | combine({ item.key: { 'chart_values': item.value.helm.chart_values } }) }}"
chart_values: "{{ chart_values | default({}) | combine({ item.key: { 'chart_values': (item.value.helm.chart_values | from_yaml) } }) }}"
when: item.value.helm.chart_values is defined
loop: "{{ lookup('ansible.builtin.dict', components) }}"
loop_control:
label: "{{ item.key }}"
- name: Write dict to vars_file
ansible.builtin.blockinfile:
path: /opt/firstboot/ansible/vars/metacluster.yml
block: "{{ { 'components': chart_values } | to_nice_yaml(indent=2, width=4096) }}"
ansible.builtin.copy:
dest: /opt/firstboot/ansible/vars/metacluster.yml
content: "{{ { 'components': chart_values } | to_nice_yaml(indent=2, width=4096) }}"
- name: Parse helm charts for container images
ansible.builtin.shell:

View File

@ -20,69 +20,76 @@ components:
version: 1.3.0
chart: longhorn/longhorn
parse_logic: cat values.yaml | yq eval '.. | select(has("repository")) | .repository + ":" + .tag'
chart_values:
chart_values: |
{% raw %}
defaultSettings:
defaultDataPath: /mnt/blockstorage
defaultReplicaCount: 1
ingress:
enabled: true
host: storage.[% vapp['metacluster.fqdn'] %]
host: storage.{{ vapp['metacluster.fqdn'] }}
persistence:
defaultClassReplicaCount: 1
{% endraw %}
harbor:
helm:
version: 1.9.1 # (= Harbor v2.5.1)
chart: harbor/harbor
parse_logic: helm template . | yq --no-doc eval '.. | .image? | select(.)' | sort -u | awk '!/ /'
chart_values:
chart_values: |
{% raw %}
expose:
ingress:
hosts:
core: registry.[% vapp['metacluster.fqdn'] %]
externalURL: https://registry.[% vapp['metacluster.fqdn'] %]
harborAdminPassword: "[% vapp['guestinfo.rootpw'] %]"
core: registry.{{ vapp['metacluster.fqdn'] }}
externalURL: https://registry.{{ vapp['metacluster.fqdn'] }}
harborAdminPassword: "{{ vapp['guestinfo.rootpw'] }}"
notary:
enabled: false
{% endraw %}
gitea:
helm:
version: v5.0.9 # (= Gitea v1.16.8)
chart: gitea-charts/gitea
parse_logic: helm template . | yq --no-doc eval '.. | .image? | select(.)' | sort -u | sed '/:/!s/$/:latest/'
chart_values:
chart_values: |
{% raw %}
gitea:
admin:
username: administrator
password: "[% vapp['guestinfo.rootpw'] %]"
email: admin@[% vapp['metacluster.fqdn'] %]
password: "{{ vapp['guestinfo.rootpw'] }}"
email: admin@{{ vapp['metacluster.fqdn'] }}
image:
pullPolicy: IfNotPresent
ingress:
enabled: true
hosts:
- host: git.[% vapp['metacluster.fqdn'] %]
- host: git.{{ vapp['metacluster.fqdn'] }}
paths:
- path: /
pathType: Prefix
{% endraw %}
argo-cd:
helm:
version: 4.9.7 # (= ArgoCD v2.4.2)
chart: argo/argo-cd
parse_logic: helm template . | yq --no-doc eval '.. | .image? | select(.)' | sort -u | awk '!/ /'
chart_values:
chart_values: |
{% raw %}
server:
extraArgs:
- --insecure
ingress:
enabled: true
hosts:
- gitops.[% vapp['metacluster.fqdn'] %]
- gitops.{{ vapp['metacluster.fqdn'] }}
configs:
secret:
argocdServerAdminPassword: "[% vapp['guestinfo.rootpw'] | password_hash('bcrypt') %]"
argocdServerAdminPassword: "{{ vapp['guestinfo.rootpw'] | password_hash('bcrypt') }}"
{% endraw %}
dependencies: