Files
HetznerTerra/ansible/roles/doppler-bootstrap/tasks/main.yml
T

49 lines
1.8 KiB
YAML
Raw Normal View History

2026-03-09 00:25:41 +00:00
---
- name: Ensure Doppler service token is provided
assert:
that:
- doppler_hetznerterra_service_token | length > 0
fail_msg: doppler_hetznerterra_service_token must be provided for External Secrets bootstrap.
2026-05-05 01:52:24 +00:00
- name: Ensure GHCR pull credentials are provided
assert:
that:
- ghcr_username | default("") | length > 0
- ghcr_read_token | default("") | length > 0
fail_msg: ghcr_username and ghcr_read_token must be provided for private MicroServices image pulls.
2026-03-09 00:25:41 +00:00
- name: Ensure external-secrets namespace exists
shell: kubectl create namespace external-secrets --dry-run=client -o yaml | kubectl apply -f -
changed_when: true
2026-05-05 01:52:24 +00:00
- name: Ensure microservices namespace exists
shell: kubectl create namespace microservices --dry-run=client -o yaml | kubectl apply -f -
changed_when: true
2026-03-09 00:25:41 +00:00
- name: Apply Doppler service token secret
shell: >-
kubectl -n external-secrets create secret generic doppler-hetznerterra-service-token
--from-literal=dopplerToken='{{ doppler_hetznerterra_service_token }}'
--dry-run=client -o yaml | kubectl apply -f -
changed_when: true
2026-04-26 20:25:42 +00:00
no_log: true
2026-03-09 02:58:26 +00:00
2026-05-05 01:52:24 +00:00
- name: Apply GHCR pull secret for private MicroServices images
shell: >-
kubectl -n microservices create secret docker-registry ghcr-pull-secret
--docker-server=ghcr.io
--docker-username='{{ ghcr_username | default("") }}'
--docker-password='{{ ghcr_read_token | default("") }}'
--dry-run=client -o yaml | kubectl apply -f -
changed_when: true
no_log: true
when:
- ghcr_username | default("") | length > 0
- ghcr_read_token | default("") | length > 0
- name: Note pending Doppler ClusterSecretStore bootstrap
debug:
msg: >-
Doppler service token secret is bootstrapped. The deploy workflow creates the
ClusterSecretStore after External Secrets CRDs and webhook endpoints are ready.