diff --git a/roles/ocp4_workload_field_content/defaults/main.yml b/roles/ocp4_workload_field_content/defaults/main.yml index 5678290..c4734c2 100644 --- a/roles/ocp4_workload_field_content/defaults/main.yml +++ b/roles/ocp4_workload_field_content/defaults/main.yml @@ -15,6 +15,15 @@ # ----------------------------------------------------------------------------- ocp4_workload_field_content_gitops_repo_url: "" +# ----------------------------------------------------------------------------- +# Optional: GitHub PAT or access token for private repositories +# ----------------------------------------------------------------------------- +# When provided, creates an ArgoCD repository secret so it can clone the repo. +# For GitHub: use a Personal Access Token (PAT) with repo scope. +# For GitLab: use a Project Access Token or PAT with read_repository scope. +# Leave empty for public repositories. +ocp4_workload_field_content_gitops_repo_key: "" + # ----------------------------------------------------------------------------- # Optional: Git revision and path # ----------------------------------------------------------------------------- diff --git a/roles/ocp4_workload_field_content/tasks/workload.yml b/roles/ocp4_workload_field_content/tasks/workload.yml index a91b32b..5cbbdda 100644 --- a/roles/ocp4_workload_field_content/tasks/workload.yml +++ b/roles/ocp4_workload_field_content/tasks/workload.yml @@ -29,6 +29,15 @@ ansible.builtin.set_fact: _litemaas_available: false +# =================================================================== +# Register private repo credentials with ArgoCD (if key provided) +# =================================================================== +- name: Create ArgoCD repository secret for private repo + kubernetes.core.k8s: + state: present + template: repository-secret.yaml.j2 + when: ocp4_workload_field_content_gitops_repo_key | default('') | length > 0 + # =================================================================== # Build Helm values # =================================================================== diff --git a/roles/ocp4_workload_field_content/templates/repository-secret.yaml.j2 b/roles/ocp4_workload_field_content/templates/repository-secret.yaml.j2 new file mode 100644 index 0000000..421b0bc --- /dev/null +++ b/roles/ocp4_workload_field_content/templates/repository-secret.yaml.j2 @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: Secret +metadata: + name: field-content-repo-credentials + namespace: {{ ocp4_workload_field_content_namespace }} + labels: + argocd.argoproj.io/secret-type: repository +stringData: + type: git + url: "{{ ocp4_workload_field_content_gitops_repo_url }}" + username: "git" + password: "{{ ocp4_workload_field_content_gitops_repo_key }}"