--- # Install Forgejo using Helm - name: Get Forgejo admin credentials from external vars ansible.builtin.set_fact: forgejo_admin_username: "{{ global.forgejo.admin_username | default(forgejo_admin_username) }}" forgejo_admin_password: "{{ global.forgejo.admin_password | default(forgejo_admin_password) }}" forgejo_admin_email: "{{ global.forgejo.admin_email | default(forgejo_admin_email) }}" forgejo_db_password: "{{ global.forgejo.db_password | default(forgejo_db_password) }}" when: global is defined and global.forgejo is defined - name: Create values file from template ansible.builtin.template: src: forgejo_values.yaml.j2 dest: "/tmp/forgejo_values_{{ forgejo_namespace }}.yaml" register: values_template - name: Wait for PVCs to bind (verify volumeBindingMode is working) kubernetes.core.k8s_info: api_version: v1 kind: PersistentVolumeClaim namespace: "{{ forgejo_namespace }}" name: "{{ item }}" kubeconfig: "{{ k8s_auth_params.kubeconfig }}" validate_certs: "{{ k8s_auth_params.validate_certs }}" register: pvc_status until: pvc_status.resources[0].status.phase == 'Bound' retries: 5 delay: 2 with_items: - "data-forgejo-postgresql-ha-postgresql-0" - "data-forgejo-postgresql-ha-postgresql-1" - "data-forgejo-postgresql-ha-postgresql-2" - "forgejo-shared-storage" - "redis-data-forgejo-redis-cluster-0" - "redis-data-forgejo-redis-cluster-1" - "redis-data-forgejo-redis-cluster-2" - "redis-data-forgejo-redis-master" ignore_errors: true - name: Install Forgejo using Helm kubernetes.core.helm: name: "{{ forgejo_helm_release_name }}" chart_ref: "{{ forgejo_helm_chart_ref }}" release_namespace: "{{ forgejo_namespace }}" create_namespace: false wait: true wait_timeout: "{{ forgejo_helm_wait_timeout }}" force: true values: "{{ lookup('template', 'forgejo_values.yaml.j2') | from_yaml }}" kubeconfig: "{{ k8s_auth_params.kubeconfig }}" validate_certs: "{{ k8s_auth_params.validate_certs }}" register: helm_result - name: Clean up temporary values file ansible.builtin.file: path: "{{ values_template.dest }}" state: absent when: values_template.dest is defined - name: Show Helm installation result ansible.builtin.debug: var: helm_result verbosity: 1