@@ -17,28 +17,28 @@ data "azurerm_key_vault_secret" "argocd_entra_app_client_id" {
1717}
1818
1919#
20- # Setup ArgoCD
20+ # Setup ArgoCD (module)
2121#
22- resource "helm_release" "argocd" {
23- name = " argo "
24- chart = " https://github.com/argoproj/argo-helm/releases/download/argo-cd- ${ var . argocd_helm_release_version } /argo-cd- ${ var . argocd_helm_release_version } .tgz "
25- namespace = kubernetes_namespace. namespace_argocd . metadata [0 ]. name
26- wait = true
27-
28- values = [
29- templatefile ( " ${ path . module } /argocd/argocd_helm_setup_values.yaml " , {
30- ARGOCD_APPLICATION_NAMESPACES = var.argocd_application_namespaces
31- TENANT_ID = data.azurerm_subscription.current.tenant_id
32- APP_CLIENT_ID = data.azurerm_key_vault_secret.argocd_entra_app_client_id.value
33- ENTRA_ADMIN_GROUP_OBJECT_IDS = []
34- ENTRA_DEVELOPER_GROUP_OBJECT_IDS = []
35- ENTRA_READER_GROUP_OBJECT_IDS = []
36- ENTRA_GUEST_GROUP_OBJECT_IDS = []
37- ARGOCD_INTERNAL_URL = local.argocd_internal_url
38- ARGOCD_INGRESS_TLS_SECRET_NAME = replace ( local. argocd_internal_url , " . " , " - " , )
39- FORCE_REINSTALL = var.argocd_force_reinstall_version
40- })
41- ]
22+ module "argocd" {
23+ source = " ./modules/argocd "
24+
25+ namespace = kubernetes_namespace. namespace_argocd . metadata [0 ]. name
26+ argocd_helm_release_version = var . argocd_helm_release_version
27+ argocd_application_namespaces = var . argocd_application_namespaces
28+ argocd_force_reinstall_version = var . argocd_force_reinstall_version
29+ tenant_id = data . azurerm_subscription . current . tenant_id
30+ app_client_id = data . azurerm_key_vault_secret . argocd_entra_app_client_id . value
31+ argocd_internal_url = local . argocd_internal_url
32+ kv_core_id = data. azurerm_key_vault . kv_core_ita . id
33+ aks_name = module . aks . name
34+ aks_resource_group_name = azurerm_resource_group . rg_aks . name
35+ workload_identity_resource_group_name = azurerm_resource_group . rg_aks . name
36+ location = var . location
37+ internal_dns_zone_name = data . azurerm_private_dns_zone . internal . name
38+ internal_dns_zone_resource_group_name = local. internal_dns_zone_resource_group_name
39+ ingress_load_balancer_ip = var. ingress_load_balancer_ip
40+ ingress_hostname_prefix = local . ingress_hostname_prefix
41+ admin_password = data . azurerm_key_vault_secret . argocd_admin_password . value
4242
4343 depends_on = [
4444 module . aks ,
@@ -53,73 +53,12 @@ data "azurerm_key_vault_secret" "argocd_admin_password" {
5353 name = " argocd-admin-password"
5454}
5555
56- resource "null_resource" "argocd_change_admin_password" {
57-
58- triggers = {
59- argocd_password = data.azurerm_key_vault_secret.argocd_admin_password.value
60- force_reinstall = var.argocd_force_reinstall_version
61- }
62-
63- provisioner "local-exec" {
64- command = " kubectl -n argocd patch secret argocd-secret -p '{\" stringData\" : {\" admin.password\" : \" ${ bcrypt (data. azurerm_key_vault_secret . argocd_admin_password . value )} \" , \" admin.passwordMtime\" : \" '$(date +%FT%T%Z)'\" }}'"
65- }
66-
67- depends_on = [
68- data . azurerm_key_vault_secret . argocd_admin_password ,
69- helm_release . argocd
70- ]
71- }
72-
73- resource "null_resource" "restart_argocd_server" {
74- triggers = {
75- force_reinstall = var.argocd_force_reinstall_version
76- helm_version = helm_release.argocd.version
77- helm_values = helm_release.argocd.values[0 ]
78- }
79-
80- provisioner "local-exec" {
81- command = " kubectl -n argocd rollout restart deployment/argo-argocd-server"
82- }
83-
84- depends_on = [
85- helm_release . argocd ,
86- null_resource. argocd_change_admin_password
87- ]
88- }
89-
90- resource "azurerm_key_vault_secret" "argocd_admin_username" {
91- key_vault_id = data. azurerm_key_vault . kv_core_ita . id
92- name = " argocd-admin-username"
93- value = " admin"
94- }
56+ # moved to module
9557
9658#
9759# tools
9860#
99- module "argocd_workload_identity_init" {
100- source = " git::https://github.com/pagopa/terraform-azurerm-v3.git//kubernetes_workload_identity_init?ref=v8.77.0"
101-
102- workload_identity_name_prefix = " argocd"
103- workload_identity_resource_group_name = azurerm_resource_group. rg_aks . name
104- workload_identity_location = var. location
105- }
106-
107- module "argocd_workload_identity_configuration" {
108- source = " git::https://github.com/pagopa/terraform-azurerm-v3.git//kubernetes_workload_identity_configuration?ref=v8.77.0"
109-
110- workload_identity_name_prefix = " argocd"
111- workload_identity_resource_group_name = azurerm_resource_group. rg_aks . name
112- aks_name = module. aks . name
113- aks_resource_group_name = azurerm_resource_group. rg_aks . name
114- namespace = kubernetes_namespace. namespace_argocd . metadata [0 ]. name
115-
116- key_vault_id = data. azurerm_key_vault . kv_core_ita . id
117- key_vault_certificate_permissions = [" Get" ]
118- key_vault_key_permissions = [" Get" ]
119- key_vault_secret_permissions = [" Get" ]
120-
121- depends_on = [module . argocd_workload_identity_init ]
122- }
61+ # moved to module
12362
12463module "cert_mounter_argocd_internal" {
12564 source = " git::https://github.com/pagopa/terraform-azurerm-v3.git//cert_mounter?ref=v8.77.0"
@@ -129,11 +68,11 @@ module "cert_mounter_argocd_internal" {
12968 tenant_id = data. azurerm_subscription . current . tenant_id
13069
13170 workload_identity_enabled = true
132- workload_identity_service_account_name = module. argocd_workload_identity_configuration . workload_identity_service_account_name
133- workload_identity_client_id = module. argocd_workload_identity_configuration . workload_identity_client_id
71+ workload_identity_service_account_name = module. argocd . workload_identity_service_account_name
72+ workload_identity_client_id = module. argocd . workload_identity_client_id
13473
13574 depends_on = [
136- module . argocd_workload_identity_configuration
75+ module . argocd
13776 ]
13877}
13978
@@ -153,10 +92,4 @@ resource "helm_release" "reloader_argocd" {
15392#
15493# 🌐 Network
15594#
156- resource "azurerm_private_dns_a_record" "argocd_ingress" {
157- name = local. ingress_hostname_prefix
158- zone_name = data. azurerm_private_dns_zone . internal . name
159- resource_group_name = local. internal_dns_zone_resource_group_name
160- ttl = 3600
161- records = [var . ingress_load_balancer_ip ]
162- }
95+ # moved to module
0 commit comments