this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: add Istio and Prometheus to new bootstrap

+183 -7
+1
infra/local/bootstrap/terragrunt.hcl
··· 14 14 client_key = dependency.cluster.outputs.credentials.client_key 15 15 cluster_ca_certificate = dependency.cluster.outputs.credentials.cluster_ca_certificate 16 16 } 17 + platform = "k3d" 17 18 }
+1 -1
infra/modules/local-bootstrap/argocd.tf
··· 21 21 "timeout.reconciliation.jitter" = "60s" 22 22 "resource.ignoreResourceUpdatesEnabled" = true 23 23 "resource.customizations.ignoreResourceUpdates.all" = yamlencode({ 24 - jsonPointers : [ 24 + jsonPointers = [ 25 25 "/status" 26 26 ] 27 27 })
+5 -6
infra/modules/local-bootstrap/ingress_nginx.tf
··· 21 21 targetRevision = "4.11.2" 22 22 helm = { 23 23 valuesObject = { 24 - controller : { 25 - podLabels : { 26 - "istio.io/dataplane-mode" : "ambient" 24 + controller = { 25 + podLabels = { 26 + "istio.io/dataplane-mode" = "ambient" 27 27 } 28 - admissionWebhooks : { 29 - timeoutSeconds : 30 28 + admissionWebhooks = { 29 + timeoutSeconds = 30 30 30 } 31 31 } 32 - 33 32 } 34 33 } 35 34 }
+121
infra/modules/local-bootstrap/istio.tf
··· 1 + resource "kubectl_manifest" "istio_cni" { 2 + server_side_apply = true 3 + yaml_body = yamlencode({ 4 + apiVersion = "argoproj.io/v1alpha1" 5 + kind = "Application" 6 + metadata = { 7 + name = "istio-cni" 8 + namespace = helm_release.argocd.namespace 9 + finalizers = ["resources-finalizer.argocd.argoproj.io"] 10 + } 11 + spec = { 12 + project = "default" 13 + destination = { 14 + name = "in-cluster" 15 + namespace = "istio-system" 16 + } 17 + syncPolicy = local.sync_policy 18 + source = { 19 + repoURL = "https://istio-release.storage.googleapis.com/charts" 20 + chart = "cni" 21 + targetRevision = "1.25.1" 22 + helm = { 23 + valuesObject = { 24 + global = { 25 + platform = var.platform 26 + } 27 + profile = "ambient" 28 + } 29 + } 30 + } 31 + } 32 + }) 33 + } 34 + 35 + resource "kubectl_manifest" "ztunnel" { 36 + server_side_apply = true 37 + yaml_body = yamlencode({ 38 + apiVersion = "argoproj.io/v1alpha1" 39 + kind = "Application" 40 + metadata = { 41 + name = "ztunnel" 42 + namespace = helm_release.argocd.namespace 43 + finalizers = ["resources-finalizer.argocd.argoproj.io"] 44 + } 45 + spec = { 46 + project = "default" 47 + destination = { 48 + name = "in-cluster" 49 + namespace = "istio-system" 50 + } 51 + syncPolicy = local.sync_policy 52 + source = { 53 + repoURL = "https://istio-release.storage.googleapis.com/charts" 54 + chart = "ztunnel" 55 + targetRevision = "1.25.1" 56 + helm = { 57 + valuesObject = { 58 + profile = "ambient" 59 + } 60 + } 61 + } 62 + } 63 + }) 64 + } 65 + 66 + resource "kubectl_manifest" "istio_base" { 67 + server_side_apply = true 68 + yaml_body = yamlencode({ 69 + apiVersion = "argoproj.io/v1alpha1" 70 + kind = "Application" 71 + metadata = { 72 + name = "istio-base" 73 + namespace = helm_release.argocd.namespace 74 + finalizers = ["resources-finalizer.argocd.argoproj.io"] 75 + } 76 + spec = { 77 + project = "default" 78 + destination = { 79 + name = "in-cluster" 80 + namespace = "istio-system" 81 + } 82 + syncPolicy = local.sync_policy 83 + source = { 84 + repoURL = "https://istio-release.storage.googleapis.com/charts" 85 + chart = "base" 86 + targetRevision = "1.25.1" 87 + } 88 + } 89 + }) 90 + } 91 + 92 + resource "kubectl_manifest" "istiod" { 93 + server_side_apply = true 94 + yaml_body = yamlencode({ 95 + apiVersion = "argoproj.io/v1alpha1" 96 + kind = "Application" 97 + metadata = { 98 + name = "istiod" 99 + namespace = helm_release.argocd.namespace 100 + finalizers = ["resources-finalizer.argocd.argoproj.io"] 101 + } 102 + spec = { 103 + project = "default" 104 + destination = { 105 + name = "in-cluster" 106 + namespace = "istio-system" 107 + } 108 + syncPolicy = local.sync_policy 109 + source = { 110 + repoURL = "https://istio-release.storage.googleapis.com/charts" 111 + chart = "istiod" 112 + targetRevision = "1.25.1" 113 + helm = { 114 + valuesObject = { 115 + profile = "ambient" 116 + } 117 + } 118 + } 119 + } 120 + }) 121 + }
+51
infra/modules/local-bootstrap/prometheus.tf
··· 1 + resource "kubectl_manifest" "prometheus" { 2 + server_side_apply = true 3 + yaml_body = yamlencode({ 4 + apiVersion = "argoproj.io/v1alpha1" 5 + kind = "Application" 6 + metadata = { 7 + name = "prometheus" 8 + namespace = helm_release.argocd.namespace 9 + finalizers = ["resources-finalizer.argocd.argoproj.io"] 10 + } 11 + spec = { 12 + project = "default" 13 + destination = { 14 + name = "in-cluster" 15 + namespace = "monitoring" 16 + } 17 + syncPolicy = local.sync_policy 18 + source = { 19 + repoURL = "https://prometheus-community.github.io/helm-charts" 20 + chart = "kube-prometheus-stack" 21 + targetRevision = "72.0.1" 22 + helm = { 23 + valuesObject = { 24 + valuesObject = { 25 + grafana = { 26 + additionalDataSources = [ 27 + { 28 + name = "Loki" 29 + type = "loki" 30 + url = "http://loki:3100" 31 + }, 32 + ] 33 + enabled = false 34 + forceDeployDashboards = true 35 + forceDeployDatasources = true 36 + } 37 + prometheus = { 38 + prometheusSpec = { 39 + podMonitorSelectorNilUsesHelmValues = false 40 + probeSelectorNilUsesHelmValues = false 41 + ruleSelectorNilUsesHelmValues = false 42 + serviceMonitorSelectorNilUsesHelmValues = false 43 + } 44 + } 45 + } 46 + } 47 + } 48 + } 49 + } 50 + }) 51 + }
+4
infra/modules/local-bootstrap/variables.tf
··· 15 15 type = string 16 16 default = "127-0-0-1.nip.io" 17 17 } 18 + 19 + variable "platform" { 20 + type = string 21 + }