k8s/roles/uyuni/tasks/main.yml
mrwho 0112ca70ed feat(cert_manager): enable automated test issuer and certificate provisioning
Add self-signed ClusterIssuer and test Certificate deployment to cert_manager role for verifying cert-manager functionality, while refactoring uyuni role to use self-signed issuer locally instead of external Let's Encrypt references and introduce database credential secrets generation.
2026-07-19 16:40:59 +03:00

126 lines
3.7 KiB
YAML

---
- name: Create namespace
kubernetes.core.k8s:
api_version: v1
kind: Namespace
name: "{{ uyuni_namespace }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
state: present
- name: Create uyuni-selfsigned-issuer Issuer
kubernetes.core.k8s:
api_version: cert-manager.io/v1
kind: Issuer
name: uyuni-selfsigned-issuer
namespace: "{{ uyuni_namespace }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
definition:
spec:
selfSigned: {}
state: present
when: uyuni_create_certificates | bool
- name: Create uyuni Certificates
kubernetes.core.k8s:
api_version: cert-manager.io/v1
kind: Certificate
name: "{{ item.name }}"
namespace: "{{ item.namespace | default(uyuni_namespace) }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
definition:
spec:
secretName: "{{ item.secretName }}"
dnsNames: "{{ item.dnsNames }}"
issuerRef:
name: uyuni-selfsigned-issuer
kind: Issuer
state: present
loop: "{{ uyuni_certificates }}"
when: uyuni_create_certificates | bool
- name: Wait for uyuni-ingress-cert certificate to be ready
kubernetes.core.k8s_info:
api_version: cert-manager.io/v1
kind: Certificate
name: uyuni-ingress-cert
namespace: "{{ uyuni_namespace }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
register: _uyuni_cert_status
until: _uyuni_cert_status.resources[0].status.conditions | selectattr('type', 'equalto', 'Ready') | selectattr('status', 'equalto', 'True') | list | length > 0
retries: 60
delay: 10
when: uyuni_create_certificates | bool
- name: Wait for uyuni-db-cert certificate to be ready
kubernetes.core.k8s_info:
api_version: cert-manager.io/v1
kind: Certificate
name: uyuni-db-cert
namespace: "{{ uyuni_namespace }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
register: _db_cert_status
until: _db_cert_status.resources[0].status.conditions | selectattr('type', 'equalto', 'Ready') | selectattr('status', 'equalto', 'True') | list | length > 0
retries: 60
delay: 10
when: uyuni_create_certificates | bool
- name: Create db-admin-credentials secret
kubernetes.core.k8s:
api_version: v1
kind: Secret
name: db-admin-credentials
namespace: "{{ uyuni_namespace }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
definition:
type: Opaque
data:
username: "{{ uyuni_db_admin_user | b64encode }}"
password: "{{ uyuni_db_admin_password | b64encode }}"
database: "{{ uyuni_db_name | b64encode }}"
state: present
- name: Create db-credentials secret
kubernetes.core.k8s:
api_version: v1
kind: Secret
name: db-credentials
namespace: "{{ uyuni_namespace }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
definition:
type: Opaque
data:
username: "{{ uyuni_db_user | b64encode }}"
password: "{{ uyuni_db_admin_password | b64encode }}"
state: present
- name: Create reportdb-credentials secret
kubernetes.core.k8s:
api_version: v1
kind: Secret
name: reportdb-credentials
namespace: "{{ uyuni_namespace }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
definition:
type: Opaque
data:
username: "{{ uyuni_db_report_user | b64encode }}"
password: "{{ uyuni_db_report_password | b64encode }}"
state: present
- name: Create admin-credentials secret
kubernetes.core.k8s:
api_version: v1
kind: Secret
name: admin-credentials
namespace: "{{ uyuni_namespace }}"
kubeconfig: "{{ uyuni_kubeconfig }}"
definition:
type: Opaque
data:
username: "{{ uyuni_admin_user | b64encode }}"
password: "{{ uyuni_admin_password | b64encode }}"
state: present
- name: Include Helm installation
ansible.builtin.include_tasks: helm.yml