stud42 icon indicating copy to clipboard operation
stud42 copied to clipboard

feat: add opentelemetry tracing

Open 42atomys opened this issue 2 years ago • 4 comments

Describe the pull request

Add to the app a tracing opentelemetry system

Checklist

  • [ ] I have linked the relative issue to this pull request
  • [ ] I have made the modifications or added tests related to my PR
  • [ ] I have added/updated the documentation for my RP
  • [ ] I put my PR in Ready for Review only when all the checklist is checked

Breaking changes ? no

42atomys avatar Aug 07 '22 23:08 42atomys

Terraform data for cluster stack

Terraform Initialization ⚙️ success

Terraform Validation 🤖 success

Show Validation
Success! The configuration is valid.


Terraform Plan 📖 success

Show Plan
module.loki.kubernetes_persistent_volume_claim.app["data"]: Refreshing state... [id=monitoring/loki-data]
module.cert_manager.null_resource.cert_manager_ovh_source: Refreshing state... [id=6901452211892208863]
module.cert_manager.helm_release.cert_manager: Refreshing state... [id=cert-manager]
kubernetes_service_account.tempo: Refreshing state... [id=monitoring/tempo]
module.grafana.kubernetes_persistent_volume_claim.app["data"]: Refreshing state... [id=monitoring/grafana-data]
kubernetes_service_account.prometheus: Refreshing state... [id=monitoring/prometheus]
kubernetes_role.loki: Refreshing state... [id=monitoring/loki]
kubernetes_service_account.loki: Refreshing state... [id=monitoring/loki]
kubernetes_cluster_role.prometheus: Refreshing state... [id=prometheus]
kubernetes_cluster_role.promtail: Refreshing state... [id=promtail]
module.promtail.kubernetes_daemonset.app[0]: Refreshing state... [id=monitoring/promtail]
kubernetes_service_account.promtail: Refreshing state... [id=monitoring/promtail]
module.promtail.kubernetes_service.app[0]: Refreshing state... [id=monitoring/promtail]
module.promtail.kubernetes_config_map.app["config"]: Refreshing state... [id=monitoring/promtail-config]
module.monitoring_routing.kubectl_manifest.virtual_services["app-s42-dashboards"]: Refreshing state... [id=/apis/networking.istio.io/v1alpha3/namespaces/monitoring/virtualservices/app-s42-dashboards]
module.istio.kubectl_manifest.gateways["app-s42"]: Refreshing state... [id=/apis/networking.istio.io/v1alpha3/namespaces/production/gateways/app-s42]
module.istio.kubectl_manifest.gateways["app-s42-dashboards"]: Refreshing state... [id=/apis/networking.istio.io/v1alpha3/namespaces/monitoring/gateways/app-s42-dashboards]
module.istio.kubectl_manifest.gateways["app-s42-next"]: Refreshing state... [id=/apis/networking.istio.io/v1alpha3/namespaces/staging/gateways/app-s42-next]
module.istio.kubectl_manifest.gateways["dev-s42-previews"]: Refreshing state... [id=/apis/networking.istio.io/v1alpha3/namespaces/previews/gateways/dev-s42-previews]
module.istio.kubectl_manifest.gateways["dev-s42-sandbox"]: Refreshing state... [id=/apis/networking.istio.io/v1alpha3/namespaces/sandbox/gateways/dev-s42-sandbox]
module.tempo.kubernetes_service.app[0]: Refreshing state... [id=monitoring/tempo]
module.tempo.kubernetes_config_map.app["config"]: Refreshing state... [id=monitoring/tempo-config]
module.tempo.kubernetes_persistent_volume_claim.app["data"]: Refreshing state... [id=monitoring/tempo-data]
module.loki.kubernetes_config_map.app["config"]: Refreshing state... [id=monitoring/loki-config]
module.grafana.kubernetes_deployment.app[0]: Refreshing state... [id=monitoring/grafana]
module.loki.kubernetes_service.app[0]: Refreshing state... [id=monitoring/loki]
module.grafana.kubernetes_service.app[0]: Refreshing state... [id=monitoring/grafana]
module.prometheus.kubernetes_service.app[0]: Refreshing state... [id=monitoring/prometheus]
module.prometheus.kubernetes_config_map.app["config"]: Refreshing state... [id=monitoring/prometheus-config]
kubernetes_role_binding.loki: Refreshing state... [id=monitoring/loki]
module.prometheus.kubernetes_persistent_volume_claim.app["data"]: Refreshing state... [id=monitoring/prometheus-data]
kubernetes_cluster_role_binding.promtail: Refreshing state... [id=promtail]
kubernetes_cluster_role_binding.prometheus: Refreshing state... [id=prometheus]
module.cert_manager.kubernetes_role.cert_manager_webhook_ovh_secret_reader: Refreshing state... [id=cert-manager/cert-manager-webhook-ovh:secret-reader]
module.cert_manager.kubectl_manifest.certificates["app-s42-dashboards"]: Refreshing state... [id=/apis/cert-manager.io/v1/namespaces/istio-system/certificates/app-s42-dashboards]
module.cert_manager.kubectl_manifest.certificates["app-s42"]: Refreshing state... [id=/apis/cert-manager.io/v1/namespaces/istio-system/certificates/app-s42]
module.secrets.kubernetes_manifest.sealed_secret["ovh-credentials"]: Refreshing state...
module.secrets.kubernetes_manifest.sealed_secret["ghcr-creds"]: Refreshing state...
module.cert_manager.kubectl_manifest.certificates["dev-s42-previews"]: Refreshing state... [id=/apis/cert-manager.io/v1/namespaces/istio-system/certificates/dev-s42-previews]
module.cert_manager.kubectl_manifest.certificates["app-s42-next"]: Refreshing state... [id=/apis/cert-manager.io/v1/namespaces/istio-system/certificates/app-s42-next]
module.cert_manager.kubectl_manifest.certificates["dev-s42-sandbox"]: Refreshing state... [id=/apis/cert-manager.io/v1/namespaces/istio-system/certificates/dev-s42-sandbox]
module.loki.kubernetes_stateful_set.app[0]: Refreshing state... [id=monitoring/loki]
module.tempo.kubernetes_stateful_set.app[0]: Refreshing state... [id=monitoring/tempo]
module.prometheus.kubernetes_stateful_set.app[0]: Refreshing state... [id=monitoring/prometheus]
module.cert_manager.kubernetes_role_binding.cert_manager_webhook_ovh_secret_reader: Refreshing state... [id=cert-manager/cert-manager-webhook-ovh:secret-reader]
module.cert_manager.helm_release.cert_manager_ovh: Refreshing state... [id=cert-manager-webhook-ovh]
module.cert_manager.kubectl_manifest.self_signed_issuers["selfsigned-issuer"]: Refreshing state... [id=/apis/cert-manager.io/v1/clusterissuers/selfsigned-issuer]
module.cert_manager.kubectl_manifest.issuers["ovh-staging-issuer"]: Refreshing state... [id=/apis/cert-manager.io/v1/clusterissuers/ovh-staging-issuer]
module.cert_manager.kubectl_manifest.issuers["ovh-issuer"]: Refreshing state... [id=/apis/cert-manager.io/v1/clusterissuers/ovh-issuer]

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

Warning: "default_secret_name" is no longer applicable for Kubernetes v1.24.0 and above

  with kubernetes_service_account.prometheus,
  on monitoring.tf line 73, in resource "kubernetes_service_account" "prometheus":
  73: resource "kubernetes_service_account" "prometheus" {

Starting from version 1.24.0 Kubernetes does not automatically generate a
token for service accounts, in this case, "default_secret_name" will be empty

(and 3 more similar warnings elsewhere)

github-actions[bot] avatar Nov 15 '22 23:11 github-actions[bot]

Terraform data for pre-cluster stack

Terraform Initialization ⚙️ success

Terraform Validation 🤖 success

Show Validation
Success! The configuration is valid.


Terraform Plan 📖 success

Show Plan
helm_release.istio_base: Refreshing state... [id=istio-base]
helm_release.rabbitmq_operator: Refreshing state... [id=primary]
helm_release.sealed_secret: Refreshing state... [id=sealed-secret]
helm_release.reflector: Refreshing state... [id=reflector]
kubernetes_namespace.namespace["cert-manager"]: Refreshing state... [id=cert-manager]
kubernetes_namespace.namespace["production"]: Refreshing state... [id=production]
kubernetes_namespace.namespace["permission-manager"]: Refreshing state... [id=permission-manager]
kubernetes_namespace.namespace["sandbox"]: Refreshing state... [id=sandbox]
kubernetes_namespace.namespace["monitoring"]: Refreshing state... [id=monitoring]
kubernetes_namespace.namespace["staging"]: Refreshing state... [id=staging]
kubernetes_namespace.namespace["istio-system"]: Refreshing state... [id=istio-system]
kubernetes_namespace.namespace["previews"]: Refreshing state... [id=previews]
helm_release.istiod: Refreshing state... [id=istiod]
helm_release.gateway: Refreshing state... [id=istio-ingressgateway]

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

github-actions[bot] avatar Nov 15 '22 23:11 github-actions[bot]

Terraform data for apps stack

Terraform Initialization ⚙️ success

Terraform Validation 🤖 success

Show Validation
Success! The configuration is valid.


Terraform Plan 📖 success

Show Plan
module.s42.random_password.next_auth_secret: Refreshing state... [id=none]
module.s42.module.istio.kubectl_manifest.virtual_services["app-s42"]: Refreshing state... [id=/apis/networking.istio.io/v1alpha3/namespaces/production/virtualservices/app-s42]
module.s42.random_password.postgres: Refreshing state... [id=none]
module.s42.kubernetes_config_map.stud42_config: Refreshing state... [id=production/stud42-config]
module.s42.module.postgres.kubernetes_service.app[0]: Refreshing state... [id=production/postgres]
module.s42.module.postgres.kubernetes_persistent_volume_claim.app["data"]: Refreshing state... [id=production/postgres-data]
module.s42.module.jwtks_service.kubernetes_service.app[0]: Refreshing state... [id=production/jwtks-service]
module.s42.module.postgres.kubernetes_config_map.app["config"]: Refreshing state... [id=production/postgres-config]
module.s42.module.crawler_campus.kubernetes_cron_job.app[0]: Refreshing state... [id=production/crawler-campus]
module.s42.module.crawler_locations.kubernetes_cron_job.app[0]: Refreshing state... [id=production/crawler-locations]
module.s42.module.jwtks_service.kubernetes_deployment.app[0]: Refreshing state... [id=production/jwtks-service]
module.s42.module.webhooks_processor.kubernetes_deployment.app[0]: Refreshing state... [id=production/webhooks-processor]
module.s42.module.interface.kubernetes_service.app[0]: Refreshing state... [id=production/interface]
module.s42.module.interface.kubernetes_deployment.app[0]: Refreshing state... [id=production/interface]
module.s42.module.api.kubernetes_deployment.app[0]: Refreshing state... [id=production/api]
module.s42.module.api.kubernetes_service.app[0]: Refreshing state... [id=production/api]
module.s42.module.jwtks_service.kubernetes_manifest.certificate["grpc-internal"]: Refreshing state...
module.s42.kubernetes_secret.next_auth_secret: Refreshing state... [id=production/next-auth-secret]
module.s42.kubernetes_manifest.rabbitmq: Refreshing state...
module.webhooked.module.webhooked.kubernetes_config_map.app["config"]: Refreshing state... [id=production/webhooked-config]
module.webhooked.module.webhooked.kubernetes_service.app[0]: Refreshing state... [id=production/webhooked]
module.s42.module.service-token.kubernetes_manifest.sealed_secret["oauth2-providers"]: Refreshing state...
module.s42.module.service-token.kubernetes_manifest.sealed_secret["github-token"]: Refreshing state...
module.s42.module.service-token.kubernetes_manifest.sealed_secret["s42-service-token"]: Refreshing state...
module.s42.module.service-token.kubernetes_manifest.sealed_secret["sentry-dsns"]: Refreshing state...
module.s42.module.service-token.kubernetes_manifest.sealed_secret["jwtks-service-certs-jwk"]: Refreshing state...
module.s42.module.service-token.kubernetes_manifest.sealed_secret["discord-token"]: Refreshing state...
module.s42.module.postgres.kubernetes_stateful_set.app[0]: Refreshing state... [id=production/postgres]
module.s42.module.jwtks_service.kubernetes_horizontal_pod_autoscaler_v2.app[0]: Refreshing state... [id=production/jwtks-service]
module.s42.module.webhooks_processor.kubernetes_horizontal_pod_autoscaler_v2.app[0]: Refreshing state... [id=production/webhooks-processor]
module.s42.module.interface.kubernetes_horizontal_pod_autoscaler_v2.app[0]: Refreshing state... [id=production/interface]
module.webhooked.module.secrets.kubernetes_manifest.sealed_secret["s42-webhooked-secrets"]: Refreshing state...
module.s42.module.postgres.kubernetes_secret.app["credentials"]: Refreshing state... [id=production/postgres-credentials]
module.s42.module.api.kubernetes_horizontal_pod_autoscaler_v2.app[0]: Refreshing state... [id=production/api]
module.s42.kubernetes_pod_disruption_budget.rabbitmq: Refreshing state... [id=production/rabbitmq]
module.webhooked.module.webhooked.kubernetes_deployment.app[0]: Refreshing state... [id=production/webhooked]
module.webhooked.module.webhooked.kubernetes_horizontal_pod_autoscaler_v2.app[0]: Refreshing state... [id=production/webhooked]

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # module.s42.module.api.kubernetes_deployment.app[0] will be updated in-place
  ~ resource "kubernetes_deployment" "app" {
        id               = "production/api"
        # (1 unchanged attribute hidden)

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "api"
            # (5 unchanged attributes hidden)
        }

      ~ spec {
            # (5 unchanged attributes hidden)

          ~ template {
              ~ metadata {
                  ~ labels      = {
                      ~ "version"                      = "0.17.3" -> "latest"
                        # (4 unchanged elements hidden)
                    }
                    # (2 unchanged attributes hidden)
                }

              ~ spec {
                    # (11 unchanged attributes hidden)

                  ~ container {
                      ~ image                      = "ghcr.io/42atomys/stud42:0.17.3" -> "ghcr.io/42atomys/stud42:latest"
                        name                       = "api"
                        # (8 unchanged attributes hidden)

                        # (14 unchanged blocks hidden)
                    }

                    # (3 unchanged blocks hidden)
                }
            }

            # (2 unchanged blocks hidden)
        }
    }

  # module.s42.module.api.kubernetes_horizontal_pod_autoscaler_v2.app[0] will be updated in-place
  ~ resource "kubernetes_horizontal_pod_autoscaler_v2" "app" {
        id = "production/api"

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "api"
            # (5 unchanged attributes hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.s42.module.api.kubernetes_service.app[0] will be updated in-place
  ~ resource "kubernetes_service" "app" {
        id                     = "production/api"
        # (2 unchanged attributes hidden)

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "api"
            # (5 unchanged attributes hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.s42.module.crawler_campus.kubernetes_cron_job.app[0] will be updated in-place
  ~ resource "kubernetes_cron_job" "app" {
        id = "production/crawler-campus"

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "crawler-campus"
            # (5 unchanged attributes hidden)
        }

      ~ spec {
            # (6 unchanged attributes hidden)

          ~ job_template {
              ~ metadata {
                  ~ labels      = {
                      ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
                      ~ "version"                      = "0.17.3" -> "latest"
                        # (5 unchanged elements hidden)
                    }
                    # (2 unchanged attributes hidden)
                }

              ~ spec {
                    # (7 unchanged attributes hidden)

                  ~ template {
                      ~ metadata {
                          ~ labels      = {
                              ~ "version"                      = "0.17.3" -> "latest"
                                # (5 unchanged elements hidden)
                            }
                            # (2 unchanged attributes hidden)
                        }

                      ~ spec {
                            # (11 unchanged attributes hidden)

                          ~ container {
                              ~ image                      = "ghcr.io/42atomys/stud42:0.17.3" -> "ghcr.io/42atomys/stud42:latest"
                                name                       = "crawler-campus"
                                # (8 unchanged attributes hidden)

                                # (12 unchanged blocks hidden)
                            }

                            # (3 unchanged blocks hidden)
                        }
                    }
                }
            }
        }
    }

  # module.s42.module.crawler_locations.kubernetes_cron_job.app[0] will be updated in-place
  ~ resource "kubernetes_cron_job" "app" {
        id = "production/crawler-locations"

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "crawler-locations"
            # (5 unchanged attributes hidden)
        }

      ~ spec {
            # (6 unchanged attributes hidden)

          ~ job_template {
              ~ metadata {
                  ~ labels      = {
                      ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
                      ~ "version"                      = "0.17.3" -> "latest"
                        # (5 unchanged elements hidden)
                    }
                    # (2 unchanged attributes hidden)
                }

              ~ spec {
                    # (7 unchanged attributes hidden)

                  ~ template {
                      ~ metadata {
                          ~ labels      = {
                              ~ "version"                      = "0.17.3" -> "latest"
                                # (5 unchanged elements hidden)
                            }
                            # (2 unchanged attributes hidden)
                        }

                      ~ spec {
                            # (11 unchanged attributes hidden)

                          ~ container {
                              ~ image                      = "ghcr.io/42atomys/stud42:0.17.3" -> "ghcr.io/42atomys/stud42:latest"
                                name                       = "crawler-locations"
                                # (8 unchanged attributes hidden)

                                # (12 unchanged blocks hidden)
                            }

                            # (3 unchanged blocks hidden)
                        }
                    }
                }
            }
        }
    }

  # module.s42.module.interface.kubernetes_deployment.app[0] will be updated in-place
  ~ resource "kubernetes_deployment" "app" {
        id               = "production/interface"
        # (1 unchanged attribute hidden)

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "interface"
            # (5 unchanged attributes hidden)
        }

      ~ spec {
            # (5 unchanged attributes hidden)

          ~ template {
              ~ metadata {
                  ~ labels      = {
                      ~ "version"                      = "0.17.3" -> "latest"
                        # (4 unchanged elements hidden)
                    }
                    # (2 unchanged attributes hidden)
                }

              ~ spec {
                    # (11 unchanged attributes hidden)

                  ~ container {
                      ~ image                      = "ghcr.io/42atomys/stud42:0.17.3" -> "ghcr.io/42atomys/stud42:latest"
                        name                       = "interface"
                        # (8 unchanged attributes hidden)

                        # (19 unchanged blocks hidden)
                    }

                    # (4 unchanged blocks hidden)
                }
            }

            # (2 unchanged blocks hidden)
        }
    }

  # module.s42.module.interface.kubernetes_horizontal_pod_autoscaler_v2.app[0] will be updated in-place
  ~ resource "kubernetes_horizontal_pod_autoscaler_v2" "app" {
        id = "production/interface"

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "interface"
            # (5 unchanged attributes hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.s42.module.interface.kubernetes_service.app[0] will be updated in-place
  ~ resource "kubernetes_service" "app" {
        id                     = "production/interface"
        # (2 unchanged attributes hidden)

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "interface"
            # (5 unchanged attributes hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.s42.module.jwtks_service.kubernetes_deployment.app[0] will be updated in-place
  ~ resource "kubernetes_deployment" "app" {
        id               = "production/jwtks-service"
        # (1 unchanged attribute hidden)

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "jwtks-service"
            # (5 unchanged attributes hidden)
        }

      ~ spec {
            # (5 unchanged attributes hidden)

          ~ template {
              ~ metadata {
                  ~ labels      = {
                      ~ "version"                      = "0.17.3" -> "latest"
                        # (4 unchanged elements hidden)
                    }
                    # (2 unchanged attributes hidden)
                }

              ~ spec {
                    # (11 unchanged attributes hidden)

                  ~ container {
                      ~ image                      = "ghcr.io/42atomys/stud42:0.17.3" -> "ghcr.io/42atomys/stud42:latest"
                        name                       = "jwtks-service"
                        # (8 unchanged attributes hidden)

                        # (10 unchanged blocks hidden)
                    }

                    # (5 unchanged blocks hidden)
                }
            }

            # (2 unchanged blocks hidden)
        }
    }

  # module.s42.module.jwtks_service.kubernetes_horizontal_pod_autoscaler_v2.app[0] will be updated in-place
  ~ resource "kubernetes_horizontal_pod_autoscaler_v2" "app" {
        id = "production/jwtks-service"

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "jwtks-service"
            # (5 unchanged attributes hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.s42.module.jwtks_service.kubernetes_manifest.certificate["grpc-internal"] will be updated in-place
  ~ resource "kubernetes_manifest" "certificate" {
      ~ manifest = {
          ~ metadata   = {
              ~ labels    = {
                  ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
                  ~ version                        = "0.17.3" -> "latest"
                    # (5 unchanged elements hidden)
                }
                name      = "jwtks-service-grpc-internal"
                # (1 unchanged element hidden)
            }
            # (3 unchanged elements hidden)
        }
      ~ object   = {
          ~ metadata   = {
              ~ labels                     = {
                  - "app"                          = "jwtks-service"
                  - "app.kubernetes.io/created-by" = "github-actions"
                  - "app.kubernetes.io/managed-by" = "terraform"
                  - "app.kubernetes.io/part-of"    = "jwtks-service"
                  - "app.kubernetes.io/version"    = "0.17.3"
                  - "kubernetes.io/name"           = "jwtks-service"
                  - "version"                      = "0.17.3"
                } -> (known after apply)
                name                       = "jwtks-service-grpc-internal"
                # (14 unchanged elements hidden)
            }
            # (3 unchanged elements hidden)
        }
    }

  # module.s42.module.jwtks_service.kubernetes_service.app[0] will be updated in-place
  ~ resource "kubernetes_service" "app" {
        id                     = "production/jwtks-service"
        # (2 unchanged attributes hidden)

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "jwtks-service"
            # (5 unchanged attributes hidden)
        }

        # (1 unchanged block hidden)
    }

  # module.s42.module.service-token.kubernetes_manifest.sealed_secret["sentry-dsns"] must be replaced
-/+ resource "kubernetes_manifest" "sealed_secret" {
      ~ manifest = {
          ~ spec       = {
              ~ encryptedData = { # forces replacement
                  ~ "API_DSN"                = "AgAbUOogu4NrjaHzukkiyT8eRjBzbK+O0/91nUtN+bAicpWcFAaxGTQmJt8MOskt9OotMTUiaHVwKx2iDjVeGHVOLVzA2N+Sfriik38nhaNu2GBxMNxvsvS9zvXH8RevOcpcR0P+ZO8aq1DXwOEQU7X6AHcwVhPv09+4ZRy8FeFqpxndNj/j2cqDTc+9zHF472IZEgV4Sat/Xk/NtAGMsxOPVsCJQmcZ4AJw5/ebgUdwPbljWlEE2Be+t7fQkXfjw4vBzcTh7GNEO7rtwVWN+sTetPZ+TJ2RVvifoOT0G9XLjeg7U+uj0R75tAwm4sPIk85lMRZ5blGlV3Yv9t0c1fOkEOwypKEJg2DzRm8wOhU0HBfI5SGblo90N18iDNjmVQLZq+9BDNahp/waHoSZvxOgo30XeThXKLU62ljoYEzR8DrtdIBmMOmXzHxsJhcjD/Y13agEJd9yPBt0i7rMOgz+R4BC/rds/P11y55416NVtpFhgjpqCqDIQrbvVlstAvt2XRGi9tpvtiGFQWOE6Ckl0EiC1hEZy3uh/WmD6CMZbh/58IfIp+s1P9x4TmedpXRHwYjyQBa7bMZqmCqmFZ0tROkur93Scicxgz7XCmbMztDBbAHIsFdWavPUfsx/ybekWbkQUgWIGkb7IMSAuiY2U1CS1lDfqAG+Z794SI/kwhhDvUY21zUn10e3yOlzct3cw90g4XFBb+l57WURsalol6OVpdrj9Y+9gD7jjm81S9cv+6Y+oYMfFKW2lmwM8vOtGzQPxZPJVcj4sd6VrjT4lCb0BK8e6T99" -> "AgAStueGmlJyOVjLoIT2ofvxgnNr7iSVtITZl27fv/sw31w0MhDluB8O8j2OBi2PDr4sAn+VwKMQqGnIiQiVVaRpp0um2p5VcTSIk/XRvc0LarLsl/ktkrB/RYxO+VQ97m+pHr5H1+IqoqudKA214bQ/KpYuAEYs4n8fjKt6uTXZB9Aj64LJOBO/DLC50ig+0JSoPWY/P9uqHiFmNGBWuXePdffICR0TqZgJn01LEk763ezHoMTAOqhDo4rZI21mYXxjIgjw/nEsVDO13xQdw+ROqsmKDTRZgpioVfoVO6i7c2HcFL7W2lxg4ZD7lVM50kUDdqjL1z+qghDADIxK0zsyVU5TpEbTz5bfBmYdhCWHNyCZih6sZIYtzoMWFNb21UDCipwsOxu+b2JlFk+ODwL5xSKcyhN7SoY61Pkb+1f2Io2u1YMU4Mn2yS38YDsplyhWDZZMCD4gAcxn6EFj8E1ehjZXjuhbc6MEM9clybaWsSd3Y7HHNBKV2A6B5QhKjyhXzfrUSZ4qXmuSGwjFM9P4FFYV90hT3UoMht84aKpqrxQZK5salfJ/HAiUUMRzWknkFXMN9tl0ZbDGFsgD82QDFJ+IjgdDjTK9HSrZaJkrbBs2E6+QEPfkH7sLrpx41r2JF6dJq/7qoRExCefVPABUJuSprmg68Ubg3JCT4QtrWsvQHah9meH3hczR9xjVus02Z/bCFrT3ogaJiVBGQGuWRuv6N0l7LWDMxN7i8hyqJ78mLXZE6Qs1w2wBP3Bai7fVzLdbKrcTSiPLRgrZ/DFKmb4yG8KmC5Op"
                  ~ "INTERFACE_DSN"          = "AgBUCG/yK9Azth5ivDzKFJu7i789HYgNnd0y6+xyNXvjiRUorz6oSW0PXp0V1Gx86fxa9eyBa43UrbmUUpRX13ArFi6XZt8/Yp8SkG40YPfY3PvJvlnaKiM1dRUEzAmWi44lKUS1F2cgdoVl+eQQllVH3utU/gbbY4kJG5W+Z86hXlQnMTJW+k04NM9C95KBbZKRUXw99BZOEio919DfdK7Rc9D0ve9lqIJO6n89DHFY1ejqKR/CJR2T6nbRA0WOD7LZZfwkmZU/SaOVIxo9EfdCNtGQq96J5DEU7ryRSbaIdEZJZ1UFrHvZ2dWnCvUDBBq3K5bxZ+DN4EGL8eJWjH6SM1JQ5/MP127XjASkmHbw4oXLdboEYOR36PDrhEBz1LDGqj2deqKwi4UTgUFasdnnUmRX6s6mC1bM0hXor6V/UzRIYKI4WnbpN3aiH457cKYJuhdqJEUzkwN9DYGXK+Er9QNFIvrDU15rk5NcemvKzbWR4NjE/BCdBNXkzICQS/mZsIk347b7YCyi1uKGqFhP4NJBcVMof8NzXYlWScOjayPZH3t92FtQIM88f2QQ2N4R++5y1ukIujJeFfiWkXstro8Brd6Kidszslf4Kmn5VmrYmbGORNQz6rU6uCXfgVSm+RDNbODw8KG1jJDHaUG4cYudsjZzFv/xtnHfcIlEe/eDpSI7pt5ae87L9T7RtYGT+mPlWq+vZm3MHqUSlTZnZFDCPYcU1xuGwMDZP8TfCRFrgTitLdhZDvj9jHLngTfDci/71ai7qw6K0B6iTirZeOASDv7QLjri" -> "AgCT0mChafJcN917V94P3jrJfx3DJ65V/Xf1IwU/6XEvJLQBP3lgBvtHSF8VYPlfLS7angbVxWlEJd+vejzRfoMMHM6s2CN7qVkZK7tO4EQQ6D/g7g0v7JzlKBQQMtRvsbvTUeUdab5ZYQmVWCu+62pTJTiq38jqq3tdhN2GS1a7IRWtYTUN6R833E4Cnc2MrcCCGpRktN8zR7ZZ8ZYYmipOGoYxXetc6bW+LMzcBOkifL6vAPN4EqV42qUzZFMAt7pw/r5/pNR9eITu7jfnF3QeBaUZh+7Qy6swcVyfFsXg0ilLHSj8DDOtvEQvoVjhZia6uVGVjRquJwKzljMutKhqjTL4Ct2llohJelGQGKkqldJq0L0402PEKEydyJZtPKbJDUTPxq7N4OP0GOoEQNgo6hTR8Kdc3zKZIqRtqt0kPaWuNGu8E2/+kVB0UqVkCDKvsqDztyFsyWrEylISUpaIoaafHAnsxX4eF8SU71LPzHfovfE4KQzK6VuyiVHWh6ApRJ44cMcTMxPeY26qYzyanelupF/pad5kX+9tRTbdi8lW1JpYYz/lU2HfR43PynwJzImQ/m9UT5Qpmc7MkcwPHTk1ymDhbJA7mZ5eKtuGE4mcn8Xrg22NYBo5a//eeiz3vKt+IVMsgKkNIwExg/QWESAeVE5ItHFZvPyedjYfjESuVx145uuNTDMNR1GG+K22p+Oay5OCMzYj7AJpW9z9vC+ALh1bQYwkHA2ajcsexi4FALaTCYyl4E7b0dbd+ax4SSHLyjVOXYtYot2S0CIeKS/EHotlumob"
                  ~ "JWTKS_SERVICE_DSN"      = "AgAsFgEttWqgXUHoW3CA6r+k2PkqIk6ufcLN4wnhXFbBwWsLc9kLQWJl07U54jym3BMPi1jCTiXgzESbA2o2z7EhhnNfSTWhlJnbbbYnbuDi1cBkG+ak3H7VZnaFXEHSZ5zvcABNqA8OenguL40wkK4+m+5/v1+T95wkRk+moVCbiy/YJfaWBdXF289r5d7lLFWiYKRG1sBL4Z7nbow8zEdLxY8KPWAb2newFLzj1JZk+b7FCFF4/4HBtZs4DhjbLb/Qkxzr5KaFlneJ9/wJurvIeo30PQk+U0XYuo1Hd/tlGQrX9/u2jub5e7RhkRsbQ8o/Qh0v7nm9Q2i2vemaegtwAJmaOStIAXkIIdOylPxiZswNC+aQl5MrcYcDwDXUA8X22VyN3DGONvL+C9ePwtvh+mF8WJJqXGdUOK7TFxa5CVo5ab1uzCAEzHEmSqZQnsfSCblyRQFQ3GwDWfCKwkfMcGaq6fiPikJx65YG7tejPaCD+P9aMjlgAF3gkYkzYjricDyz/XO6xgD4X/HVRKuFR1SPu3IXCrqdPqB3/wlKAD049/Y/IN50gV4I8OTe3PGFx2pyu//oKcKLqgdBQq00QLNbFL0F6YehB590oxGiAO+4Xh+KZatzTD+P+2HDskDeHfnTNzyIFRWHi4MFtWJouR4AH8F6oIdGHaIhoFaD0wPpJcjaLiRgdulQ8tJA3R0VPtwu7EP1XfUCFkwXhw+0UjZPtOcuh33QwRHTQIkheH9lrmieiAdGwtzuy91xkQztDZZHkCYFCs2hl2FAKrUwTn7mkC62gZft" -> "AgBmjxjsYzqckBkIrCOvdpBXzfSzafJepqKCJ27N1Gi9a8xzFFFJYco2VLq9YqzezPRUp6LoHbVCdCr44IxC4vDehWpHs/8B9cy9e9o1o3IBWx1lCSKULB5Dobc4jvZc0ioKj01CnRMYkAM69a0TP6QIgM2wMRF+yPrc56ct1k3krgVoTIep7PYr0c5O2QhDiO21VkeSHD1R1b8A4dnI9h7xPCShIvbmQFLapna05NsrwRrHiD6tRnAPcRugcnksrjkJj/TH8ZSRe77//hyLALFbJx0APTlbURqbMf+o44k+6amYkTJZDLYoZOuoK/gz1Ic1rqRhgIRCGHf2uK1TNovrpGJsBqvAZ53/wj5MBnT6XqT17dvQppXglfaaemqBiWC76McPiqKHRTb+nHXLm106eTVW9Y3/5hwV350gu3V3rKUn/pHMpIJ4AN9IOEJNlXot1IhQ55fB2vOIYMem2xeECSWZ+rwtaqATpjPtM0F96ODa3/ARZ0blSt36Z6sXp4QHK2uWwToTPNUQgTetPXQEZE7Oa5ze7y+Tj5xWF1V17n2EYJ6Hdd3lk0IJ97PbwTWAMugxe1CXwjQmNHBZZf3FUVyTaJwA5CCjXd7XU42MBFDPAOG449cZyTY78cOjESSWRSvuFP6Hu3hNeZmKRiQUUmNAiO9QHJcQoZit2vA7CFct2N4qjuVzJJTuuvF119nzxNZAXnkGQweWG8/HqGBhF4SBF6Og6y1fyj8KGGJj2VtWmB62NxiIqaVX7/c65pFzen97gaEf66/1YRT+1rm+oHvcliSxB4GN"
                  ~ "WEBHOOKS_PROCESSOR_DSN" = "AgAZFMsR5SRTM4E4XvXK83ihfQuM9phC0sKkgdreBgFMX1oT5asScNj9PLMK3uPQsqtgq8e+J1Bm2FS0Ll8lB/F80PVZzQ9S1H3OYo+iU01e08V1hppdsGDletYjknD5nSIslzX1B16tYL63ZZQ4AcH9B0TBegCd63U1a+MyL4NG/eEl88qPc1gHOSiQHXetYluyJTYpXX7D3W+FXQf26M+r2VqqKF86SyqEaXjOqdKtWydyApha5U93doyw1wM8KeeTNgmHsDr8U+Sl/vc0can3FJfmOESC+LMB8MialAbDsYGLtYfCGA/2HPwcNm9iPEBNuR5C+1ckgJeV2q1XZZ6nPZ26fF6kTuMkm+3x6aVKH6hdVorforQ79+CR3Tx9pv2AnGtCgIYGkFYmmUJ719wK7Zn2sBKQ9t++k2EGE3NRHECFGVQ/8c7ca6bxSd9C80wnO9z80gjkBF1RNn/yETwDXYyZ5NZK5DHVx1uNjrHD4wLJ0ml/JIst9r5598vbAx7M4q2K/YcGQQAzUP2VOFNhfuZzLXo6Q/GFZYfsvXToINGyrQ69gCvw29EEXe1vhxGiFNXy+LYCh2NEuPXgacu1rK3N4qn6c4xKHm3TBgQr/xnkTq4a4iQQu8UJl27aRw6GGQz6CDePgDllGllrZWdwSkTcdVZDzFGMfVOd9hsn7/5ecqK+iqeyacJ4XKc4zRDOKtk3zfjiJ91a+mwc7QYRc3ghjfqv+oQP/ql3j+O4BIhLusC1oqPynyb4SzyLwSZTnUOgv1IIkhVtQjL4zbjXk84Cgk3fsLyT" -> "AgCTNFKxePhsbvlVWcKp+jj0YTJWVwTBkpnPTwEwI/4mL3Q6fi4bwwYneU+zvvk3jNHmg3+N72dk0+A+n1b5Av5fcjCS2Ccsc1T99/Bl6aMLYigcQsRgjX+PKNPt0YhL7mB2nfofZb64LMgufg8l+osIge9XkZwORDuZEiTFCDEU1mDDqzo1VnA4SERMKV+tM/S7mW7GtTesh+AcotLPPUHbHBYIyKyZ8OStvKd+0tkNT/9cpZYCfW1Q+IPqQDZSkrZiK2P6FZzFBNmpYbH04eYGjFzRHzPLHs7B4l7yk6MF1lI9qVurBT2DqxmOhCFHtV0IF1gJam8ICy0+8H9xt8EWrUlpR2+vtfewXW5bllqLKGFFJkHSmYgoHFnfAkS6KoZFVXs74/vv5zFuC6pW7qqkk+Ei7HSwHzuvLKKQOSzkwExpwseLqRU77FyAYq4wBe80I7QGNZ0pzf9TEUoi6YkBravmQqNA5X1y6ycW/qq10idJ3SAK0za32FgWx4SF2TytqbYRdeBoGzAnu6VOk6juLbAEl7pmzpEel6OeSI3anrwTYzyP0M3RJ7+j7PQTXSnf/OFSrmblynHVS83HUwbyMpkJSIh3QiVTbe5Z+CgNBMwlVsIVu2MUvFWdy/5fNc9ZyDyC0KE95MKcPYErsXIhe94w+W/kuZrMJ4+JvQPocEOow7ccffK05sj1QyJiY3QNuXV/aHYocTGkEScRJ24CMvXb8o+TaL2Yy2Rv3+VarDK5EtCYUeg0yyqXo9LAPJkp+GDMHKpnc0b8mnpYSvjv2LURvk/Qqp7D"
                }
                # (1 unchanged element hidden)
            }
            # (3 unchanged elements hidden)
        }
      ~ object   = {
          ~ metadata   = {
              ~ annotations                = {
                  - "kubectl.kubernetes.io/last-applied-configuration" = jsonencode(
                        {
                          - apiVersion = "bitnami.com/v1alpha1"
                          - kind       = "SealedSecret"
                          - metadata   = {
                              - annotations       = {
                                  - "sealedsecrets.bitnami.com/namespace-wide" = "true"
                                }
                              - creationTimestamp = null
                              - name              = "sentry-dsns"
                              - namespace         = "production"
                            }
                          - spec       = {
                              - encryptedData = {
                                  - API_DSN                = "AgAStueGmlJyOVjLoIT2ofvxgnNr7iSVtITZl27fv/sw31w0MhDluB8O8j2OBi2PDr4sAn+VwKMQqGnIiQiVVaRpp0um2p5VcTSIk/XRvc0LarLsl/ktkrB/RYxO+VQ97m+pHr5H1+IqoqudKA214bQ/KpYuAEYs4n8fjKt6uTXZB9Aj64LJOBO/DLC50ig+0JSoPWY/P9uqHiFmNGBWuXePdffICR0TqZgJn01LEk763ezHoMTAOqhDo4rZI21mYXxjIgjw/nEsVDO13xQdw+ROqsmKDTRZgpioVfoVO6i7c2HcFL7W2lxg4ZD7lVM50kUDdqjL1z+qghDADIxK0zsyVU5TpEbTz5bfBmYdhCWHNyCZih6sZIYtzoMWFNb21UDCipwsOxu+b2JlFk+ODwL5xSKcyhN7SoY61Pkb+1f2Io2u1YMU4Mn2yS38YDsplyhWDZZMCD4gAcxn6EFj8E1ehjZXjuhbc6MEM9clybaWsSd3Y7HHNBKV2A6B5QhKjyhXzfrUSZ4qXmuSGwjFM9P4FFYV90hT3UoMht84aKpqrxQZK5salfJ/HAiUUMRzWknkFXMN9tl0ZbDGFsgD82QDFJ+IjgdDjTK9HSrZaJkrbBs2E6+QEPfkH7sLrpx41r2JF6dJq/7qoRExCefVPABUJuSprmg68Ubg3JCT4QtrWsvQHah9meH3hczR9xjVus02Z/bCFrT3ogaJiVBGQGuWRuv6N0l7LWDMxN7i8hyqJ78mLXZE6Qs1w2wBP3Bai7fVzLdbKrcTSiPLRgrZ/DFKmb4yG8KmC5Op"
                                  - INTERFACE_DSN          = "AgCT0mChafJcN917V94P3jrJfx3DJ65V/Xf1IwU/6XEvJLQBP3lgBvtHSF8VYPlfLS7angbVxWlEJd+vejzRfoMMHM6s2CN7qVkZK7tO4EQQ6D/g7g0v7JzlKBQQMtRvsbvTUeUdab5ZYQmVWCu+62pTJTiq38jqq3tdhN2GS1a7IRWtYTUN6R833E4Cnc2MrcCCGpRktN8zR7ZZ8ZYYmipOGoYxXetc6bW+LMzcBOkifL6vAPN4EqV42qUzZFMAt7pw/r5/pNR9eITu7jfnF3QeBaUZh+7Qy6swcVyfFsXg0ilLHSj8DDOtvEQvoVjhZia6uVGVjRquJwKzljMutKhqjTL4Ct2llohJelGQGKkqldJq0L0402PEKEydyJZtPKbJDUTPxq7N4OP0GOoEQNgo6hTR8Kdc3zKZIqRtqt0kPaWuNGu8E2/+kVB0UqVkCDKvsqDztyFsyWrEylISUpaIoaafHAnsxX4eF8SU71LPzHfovfE4KQzK6VuyiVHWh6ApRJ44cMcTMxPeY26qYzyanelupF/pad5kX+9tRTbdi8lW1JpYYz/lU2HfR43PynwJzImQ/m9UT5Qpmc7MkcwPHTk1ymDhbJA7mZ5eKtuGE4mcn8Xrg22NYBo5a//eeiz3vKt+IVMsgKkNIwExg/QWESAeVE5ItHFZvPyedjYfjESuVx145uuNTDMNR1GG+K22p+Oay5OCMzYj7AJpW9z9vC+ALh1bQYwkHA2ajcsexi4FALaTCYyl4E7b0dbd+ax4SSHLyjVOXYtYot2S0CIeKS/EHotlumob"
                                  - JWTKS_SERVICE_DSN      = "AgBmjxjsYzqckBkIrCOvdpBXzfSzafJepqKCJ27N1Gi9a8xzFFFJYco2VLq9YqzezPRUp6LoHbVCdCr44IxC4vDehWpHs/8B9cy9e9o1o3IBWx1lCSKULB5Dobc4jvZc0ioKj01CnRMYkAM69a0TP6QIgM2wMRF+yPrc56ct1k3krgVoTIep7PYr0c5O2QhDiO21VkeSHD1R1b8A4dnI9h7xPCShIvbmQFLapna05NsrwRrHiD6tRnAPcRugcnksrjkJj/TH8ZSRe77//hyLALFbJx0APTlbURqbMf+o44k+6amYkTJZDLYoZOuoK/gz1Ic1rqRhgIRCGHf2uK1TNovrpGJsBqvAZ53/wj5MBnT6XqT17dvQppXglfaaemqBiWC76McPiqKHRTb+nHXLm106eTVW9Y3/5hwV350gu3V3rKUn/pHMpIJ4AN9IOEJNlXot1IhQ55fB2vOIYMem2xeECSWZ+rwtaqATpjPtM0F96ODa3/ARZ0blSt36Z6sXp4QHK2uWwToTPNUQgTetPXQEZE7Oa5ze7y+Tj5xWF1V17n2EYJ6Hdd3lk0IJ97PbwTWAMugxe1CXwjQmNHBZZf3FUVyTaJwA5CCjXd7XU42MBFDPAOG449cZyTY78cOjESSWRSvuFP6Hu3hNeZmKRiQUUmNAiO9QHJcQoZit2vA7CFct2N4qjuVzJJTuuvF119nzxNZAXnkGQweWG8/HqGBhF4SBF6Og6y1fyj8KGGJj2VtWmB62NxiIqaVX7/c65pFzen97gaEf66/1YRT+1rm+oHvcliSxB4GN"
                                  - WEBHOOKS_PROCESSOR_DSN = "AgCTNFKxePhsbvlVWcKp+jj0YTJWVwTBkpnPTwEwI/4mL3Q6fi4bwwYneU+zvvk3jNHmg3+N72dk0+A+n1b5Av5fcjCS2Ccsc1T99/Bl6aMLYigcQsRgjX+PKNPt0YhL7mB2nfofZb64LMgufg8l+osIge9XkZwORDuZEiTFCDEU1mDDqzo1VnA4SERMKV+tM/S7mW7GtTesh+AcotLPPUHbHBYIyKyZ8OStvKd+0tkNT/9cpZYCfW1Q+IPqQDZSkrZiK2P6FZzFBNmpYbH04eYGjFzRHzPLHs7B4l7yk6MF1lI9qVurBT2DqxmOhCFHtV0IF1gJam8ICy0+8H9xt8EWrUlpR2+vtfewXW5bllqLKGFFJkHSmYgoHFnfAkS6KoZFVXs74/vv5zFuC6pW7qqkk+Ei7HSwHzuvLKKQOSzkwExpwseLqRU77FyAYq4wBe80I7QGNZ0pzf9TEUoi6YkBravmQqNA5X1y6ycW/qq10idJ3SAK0za32FgWx4SF2TytqbYRdeBoGzAnu6VOk6juLbAEl7pmzpEel6OeSI3anrwTYzyP0M3RJ7+j7PQTXSnf/OFSrmblynHVS83HUwbyMpkJSIh3QiVTbe5Z+CgNBMwlVsIVu2MUvFWdy/5fNc9ZyDyC0KE95MKcPYErsXIhe94w+W/kuZrMJ4+JvQPocEOow7ccffK05sj1QyJiY3QNuXV/aHYocTGkEScRJ24CMvXb8o+TaL2Yy2Rv3+VarDK5EtCYUeg0yyqXo9LAPJkp+GDMHKpnc0b8mnpYSvjv2LURvk/Qqp7D"
                                }
                              - template      = {
                                  - metadata = {
                                      - annotations       = {
                                          - "reflector.v1.k8s.emberstack.com/reflection-allowed"            = "true"
                                          - "reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces" = "staging,previews,sandbox"
                                          - "reflector.v1.k8s.emberstack.com/reflection-auto-enabled"       = "true"
                                          - "reflector.v1.k8s.emberstack.com/reflection-auto-namespaces"    = "staging,previews,sandbox"
                                          - "sealedsecrets.bitnami.com/namespace-wide"                      = "true"
                                        }
                                      - creationTimestamp = null
                                      - name              = "sentry-dsns"
                                      - namespace         = "production"
                                    }
                                  - type     = "Opaque"
                                }
                            }
                        }
                    )
                  - "sealedsecrets.bitnami.com/cluster-wide"           = "false"
                  - "sealedsecrets.bitnami.com/namespace-wide"         = "true"
                } -> (known after apply)
              ~ clusterName                = null -> (known after apply)
              ~ creationTimestamp          = null -> (known after apply)
              ~ deletionGracePeriodSeconds = null -> (known after apply)
              ~ deletionTimestamp          = null -> (known after apply)
              ~ finalizers                 = null -> (known after apply)
              ~ generateName               = null -> (known after apply)
              ~ generation                 = null -> (known after apply)
              ~ labels                     = null -> (known after apply)
              ~ managedFields              = null -> (known after apply)
                name                       = "sentry-dsns"
              ~ ownerReferences            = null -> (known after apply)
              ~ resourceVersion            = null -> (known after apply)
              ~ selfLink                   = null -> (known after apply)
              ~ uid                        = null -> (known after apply)
                # (1 unchanged element hidden)
            }
          ~ spec       = {
              ~ data          = null -> (known after apply)
              ~ template      = {
                  ~ data     = null -> (known after apply)
                    # (2 unchanged elements hidden)
                }
                # (1 unchanged element hidden)
            }
            # (2 unchanged elements hidden)
        }
    }

  # module.s42.module.webhooks_processor.kubernetes_deployment.app[0] will be updated in-place
  ~ resource "kubernetes_deployment" "app" {
        id               = "production/webhooks-processor"
        # (1 unchanged attribute hidden)

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "webhooks-processor"
            # (5 unchanged attributes hidden)
        }

      ~ spec {
            # (5 unchanged attributes hidden)

          ~ template {
              ~ metadata {
                  ~ labels      = {
                      ~ "version"                      = "0.17.3" -> "latest"
                        # (5 unchanged elements hidden)
                    }
                    # (2 unchanged attributes hidden)
                }

              ~ spec {
                    # (11 unchanged attributes hidden)

                  ~ container {
                      ~ image                      = "ghcr.io/42atomys/stud42:0.17.3" -> "ghcr.io/42atomys/stud42:latest"
                        name                       = "webhooks-processor"
                        # (8 unchanged attributes hidden)

                        # (18 unchanged blocks hidden)
                    }

                    # (3 unchanged blocks hidden)
                }
            }

            # (2 unchanged blocks hidden)
        }
    }

  # module.s42.module.webhooks_processor.kubernetes_horizontal_pod_autoscaler_v2.app[0] will be updated in-place
  ~ resource "kubernetes_horizontal_pod_autoscaler_v2" "app" {
        id = "production/webhooks-processor"

      ~ metadata {
          ~ labels           = {
              ~ "app.kubernetes.io/version"    = "0.17.3" -> "latest"
              ~ "version"                      = "0.17.3" -> "latest"
                # (5 unchanged elements hidden)
            }
            name             = "webhooks-processor"
            # (5 unchanged attributes hidden)
        }

        # (1 unchanged block hidden)
    }

Plan: 1 to add, 14 to change, 1 to destroy.

─────────────────────────────────────────────────────────────────────────────

Saved the plan to: apps-tfplan

To perform exactly these actions, run the following command to apply:
    terraform apply "apps-tfplan"

github-actions[bot] avatar Nov 15 '22 23:11 github-actions[bot]

Terraform data for sandbox stack

Terraform Initialization ⚙️ success

Terraform Validation 🤖 success

Show Validation
Success! The configuration is valid.


Terraform Plan 📖 success

Show Plan
kubernetes_config_map.stud42_config: Refreshing state... [id=sandbox/stud42-config]
module.istio.kubectl_manifest.virtual_services["dev-s42-sandbox"]: Refreshing state... [id=/apis/networking.istio.io/v1alpha3/namespaces/sandbox/virtualservices/dev-s42-sandbox]
module.jwtks_service.kubernetes_service.app[0]: Refreshing state... [id=sandbox/jwtks-service]
module.jwtks_service.kubernetes_deployment.app[0]: Refreshing state... [id=sandbox/jwtks-service]
module.jwtks_service.kubernetes_horizontal_pod_autoscaler_v2.app[0]: Refreshing state... [id=sandbox/jwtks-service]
module.jwtks_service.kubernetes_manifest.certificate["grpc-internal"]: Refreshing state...

No changes. Your infrastructure matches the configuration.

Terraform has compared your real infrastructure against your configuration
and found no differences, so no changes are needed.

github-actions[bot] avatar Nov 25 '22 22:11 github-actions[bot]