prole/infrastructure/roles/k3s/tasks/acme_cert.yml
chrisfu 765aa0b926 Checkpoint: cluster env UI layout + k3s common services
- Tighten Cluster Environment screen layout; switch Service/Prod to kubectx context selection; keep namespace and key controls on one line; ensure Repair button remains reachable.

- Add UI layout regression test to render with large mock data and assert key widgets remain visible and console is scrollable.

- Make kubeconfig generation deterministic under tests by avoiding overwriting cert-based kubeconfigs; write token sidecar kubeconfig when needed.

- Update common-services init scripts and add k3s/Helm deployment bits (svc-check, Kong/CertMgr tasks).
2026-02-27 14:35:14 -08:00

60 lines
1.6 KiB
YAML

---
- name: Ensure cert-manager CRDs exist for ACME
ansible.builtin.command: k3s kubectl get crd certificates.cert-manager.io
register: k3s_acme_crd
changed_when: false
failed_when: k3s_acme_crd.rc != 0
run_once: true
- name: Set ACME contact email (defaults to admin@prole.org)
ansible.builtin.set_fact:
svc_check_acme_email: "{{ letsencrypt_email | default('admin@prole.org') }}"
run_once: true
- name: Ensure namespace exists for ACME certificate secret
ansible.builtin.shell: |
k3s kubectl apply -f - <<'EOF'
apiVersion: v1
kind: Namespace
metadata:
name: {{ k3s_svc_check_kong_namespace }}
EOF
args:
executable: /bin/bash
run_once: true
- name: Configure ACME ClusterIssuer and Certificate for svc.prole.org
ansible.builtin.shell: |
k3s kubectl apply -f - <<'EOF'
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
email: {{ svc_check_acme_email }}
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: traefik
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: svc-prole-org
namespace: {{ k3s_svc_check_kong_namespace }}
spec:
secretName: svc-prole-org-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- {{ k3s_svc_check_domain }}
EOF
args:
executable: /bin/bash
run_once: true