Skip to content

Metabase in All Environments#5488

Merged
jperson1 merged 4 commits into
mainfrom
jp/metabase-for-all
Mar 25, 2026
Merged

Metabase in All Environments#5488
jperson1 merged 4 commits into
mainfrom
jp/metabase-for-all

Conversation

@jperson1
Copy link
Copy Markdown
Contributor

@jperson1 jperson1 commented Mar 20, 2026

Metabase in All Environments

See PR #5420 for the changes being un-done.

Related tickets

  • N/A

Description of changes

  • Removing the delimiter for dev only, so it pops up in all environs

How to test

  • Put it in preview?

Screenshots and recordings

  • No >:(

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 20, 2026

Terraform plan for dev

Plan: 4 to add, 0 to change, 4 to destroy.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+   create
-   destroy
-/+ destroy and then create replacement
 <= read (data resources)

Terraform will perform the following actions:

  # module.dev.module.cors.null_resource.cors_header must be replaced
-/+ resource "null_resource" "cors_header" {
!~      id       = "*******************" -> (known after apply)
!~      triggers = { # forces replacement
!~          "always_run" = "2026-03-20T13:19:08Z" -> (known after apply)
        }
    }

  # module.dev.module.metabase-app.data.cloudfoundry_domain.public will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "cloudfoundry_domain" "public" {
+       annotations         = (known after apply)
+       created_at          = (known after apply)
+       id                  = (known after apply)
+       internal            = (known after apply)
+       labels              = (known after apply)
+       name                = "app.cloud.gov"
+       org                 = (known after apply)
+       router_group        = (known after apply)
+       shared_orgs         = (known after apply)
+       supported_protocols = (known after apply)
+       updated_at          = (known after apply)
    }

  # module.dev.module.metabase-app.data.cloudfoundry_org.app_org will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "cloudfoundry_org" "app_org" {
+       annotations = (known after apply)
+       created_at  = (known after apply)
+       id          = (known after apply)
+       labels      = (known after apply)
+       name        = "gsa-tts-oros-fac"
+       quota       = (known after apply)
+       suspended   = (known after apply)
+       updated_at  = (known after apply)
    }

  # module.dev.module.metabase-app.data.cloudfoundry_space.app_space will be read during apply
  # (config refers to values not yet known)
 <= data "cloudfoundry_space" "app_space" {
+       allow_ssh         = (known after apply)
+       annotations       = (known after apply)
+       created_at        = (known after apply)
+       id                = (known after apply)
+       isolation_segment = (known after apply)
+       labels            = (known after apply)
+       name              = "dev"
+       org               = (known after apply)
+       quota             = (known after apply)
+       updated_at        = (known after apply)
    }

  # module.dev.module.metabase-app.data.docker_registry_image.metabase will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "docker_registry_image" "metabase" {
+       id            = (known after apply)
+       name          = "metabase/metabase:v0.59.2"
+       sha256_digest = (known after apply)
    }

  # module.dev.module.metabase-app.cloudfoundry_app.metabase will be created
+   resource "cloudfoundry_app" "metabase" {
+       buildpacks                  = (known after apply)
+       command                     = <<-EOT
            MB_DB_CONNECTION_URI=$(echo "$VCAP_SERVICES" | grep -o '"uri":\s*"[^"]*' | sed 's/"uri":\s*//' | cut -d '"' -f2 | tail -1)
            export MB_DB_CONNECTION_URI
            
            ./app/run_metabase.sh
        EOT
+       created_at                  = (known after apply)
+       disk_quota                  = "3072M"
+       docker_image                = (known after apply)
+       enable_ssh                  = (known after apply)
+       environment                 = {
+           "ENV"                = "dev"
+           "REQUESTS_CA_BUNDLE" = "/etc/ssl/certs/ca-certificates.crt"
+           "SSL_CERT_FILE"      = "/etc/ssl/certs/ca-certificates.crt"
        }
+       health_check_http_endpoint  = "/api/health"
+       health_check_type           = "http"
+       id                          = (known after apply)
+       instances                   = 1
+       log_rate_limit_per_second   = (known after apply)
+       memory                      = "2048M"
+       name                        = "metabase"
+       org_name                    = "gsa-tts-oros-fac"
+       readiness_health_check_type = (known after apply)
+       routes                      = (known after apply)
+       service_bindings            = [
+           {
+               params           = jsonencode({})
+               service_instance = "fac-db"
            },
+           {
+               params           = jsonencode({})
+               service_instance = "https-proxy-creds"
            },
+           {
+               params           = jsonencode({})
+               service_instance = "metabase-db"
            },
        ]
+       space_name                  = "dev"
+       stack                       = (known after apply)
+       strategy                    = "rolling"
+       updated_at                  = (known after apply)
    }

  # module.dev.module.metabase-app.cloudfoundry_route.app_route will be created
+   resource "cloudfoundry_route" "app_route" {
+       created_at   = (known after apply)
+       destinations = [
+           {
+               app_id           = (known after apply)
+               app_process_type = (known after apply)
+               id               = (known after apply)
+               port             = (known after apply)
+               protocol         = (known after apply)
            },
        ]
+       domain       = (known after apply)
+       host         = "metabase-dev"
+       id           = (known after apply)
+       protocol     = (known after apply)
+       space        = (known after apply)
+       updated_at   = (known after apply)
+       url          = (known after apply)
    }

  # module.dev.module.metabase-app[0].cloudfoundry_app.metabase will be destroyed
  # (because module.dev.module.metabase-app[0] is not in configuration)
-   resource "cloudfoundry_app" "metabase" {
-       command                     = <<-EOT
            MB_DB_CONNECTION_URI=$(echo "$VCAP_SERVICES" | grep -o '"uri":\s*"[^"]*' | sed 's/"uri":\s*//' | cut -d '"' -f2 | tail -1)
            export MB_DB_CONNECTION_URI
            
            ./app/run_metabase.sh
        EOT -> null
-       created_at                  = "2026-03-06T18:05:06Z" -> null
-       disk_quota                  = "3072M" -> null
-       docker_image                = "metabase/metabase@sha256:80fdf179262eb4bc6e620eb2f90e1781b7d4ebb96e9ec45d974ca57675ed5003" -> null
-       enable_ssh                  = false -> null
-       environment                 = {
-           "ENV"                = "dev"
-           "REQUESTS_CA_BUNDLE" = "/etc/ssl/certs/ca-certificates.crt"
-           "SSL_CERT_FILE"      = "/etc/ssl/certs/ca-certificates.crt"
        } -> null
-       health_check_http_endpoint  = "/api/health" -> null
-       health_check_type           = "http" -> null
-       id                          = "c3491381-d837-411d-9344-ba7643f3647a" -> null
-       instances                   = 1 -> null
-       log_rate_limit_per_second   = "-1" -> null
-       memory                      = "2048M" -> null
-       name                        = "metabase" -> null
-       org_name                    = "gsa-tts-oros-fac" -> null
-       readiness_health_check_type = "process" -> null
-       routes                      = [
-           {
-               protocol = "http1" -> null
-               route    = "metabase-dev.app.cloud.gov" -> null
            },
        ] -> null
-       service_bindings            = [
-           {
-               params           = jsonencode({})
-               service_instance = "fac-db" -> null
            },
-           {
-               params           = jsonencode({})
-               service_instance = "https-proxy-creds" -> null
            },
-           {
-               params           = jsonencode({})
-               service_instance = "metabase-db" -> null
            },
        ] -> null
-       space_name                  = "dev" -> null
-       stack                       = "" -> null
-       strategy                    = "rolling" -> null
-       updated_at                  = "2026-03-10T16:38:49Z" -> null
    }

  # module.dev.module.metabase-app[0].cloudfoundry_route.app_route will be destroyed
  # (because module.dev.module.metabase-app[0] is not in configuration)
-   resource "cloudfoundry_route" "app_route" {
-       created_at   = "2026-03-06T18:05:13Z" -> null
-       destinations = [
-           {
-               app_id           = "c3491381-d837-411d-9344-ba7643f3647a" -> null
-               app_process_type = "web" -> null
-               id               = "e63f47ac-6183-4830-a509-0f37188f31fa" -> null
-               port             = 3000 -> null
-               protocol         = "http1" -> null
            },
        ] -> null
-       domain       = "50ba3f69-cd54-4963-9172-14f3334b479e" -> null
-       host         = "metabase-dev" -> null
-       id           = "ea798200-c973-4d43-91d1-af044bfdad25" -> null
-       protocol     = "http" -> null
-       space        = "06525ba3-19c2-451b-96e9-ea4a9134e8b9" -> null
-       updated_at   = "2026-03-06T18:05:13Z" -> null
-       url          = "metabase-dev.app.cloud.gov" -> null
    }

  # module.dev.module.metabasedb.cloudfoundry_service_instance.rds[0] will be created
+   resource "cloudfoundry_service_instance" "rds" {
+       created_at        = (known after apply)
+       dashboard_url     = (known after apply)
+       id                = (known after apply)
+       last_operation    = (known after apply)
+       maintenance_info  = (known after apply)
+       name              = "metabase-db"
+       parameters        = (sensitive value)
+       service_plan      = "815c6069-289a-4444-ba99-40f0fa03a8f5"
+       space             = "06525ba3-19c2-451b-96e9-ea4a9134e8b9"
+       tags              = [
+           "rds",
+           "terraform-cloudgov-managed",
        ]
+       type              = "managed"
+       updated_at        = (known after apply)
+       upgrade_available = (known after apply)
    }

  # module.dev.module.metabasedb[0].cloudfoundry_service_instance.rds[0] will be destroyed
  # (because module.dev.module.metabasedb[0] is not in configuration)
-   resource "cloudfoundry_service_instance" "rds" {
-       created_at        = "2026-03-06T17:55:56Z" -> null
-       id                = "0b9f3d72-61a8-421d-805d-eae0732533d7" -> null
-       last_operation    = {
-           created_at  = "2026-03-06T18:05:03Z" -> null
-           description = "Finished creating database resources" -> null
-           state       = "succeeded" -> null
-           type        = "create" -> null
-           updated_at  = "2026-03-06T18:05:03Z" -> null
        } -> null
-       maintenance_info  = {} -> null
-       name              = "metabase-db" -> null
-       parameters        = (sensitive value) -> null
-       service_plan      = "815c6069-289a-4444-ba99-40f0fa03a8f5" -> null
-       space             = "06525ba3-19c2-451b-96e9-ea4a9134e8b9" -> null
-       tags              = [
-           "rds",
-           "terraform-cloudgov-managed",
        ] -> null
-       type              = "managed" -> null
-       updated_at        = "2026-03-06T17:55:59Z" -> null
-       upgrade_available = false -> null
    }

Plan: 4 to add, 0 to change, 4 to destroy.

❌ Plan not applied in Deploy to Development and Meta Environments #1141 (Plan has changed)

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 20, 2026

Terraform plan for meta

No changes. Your infrastructure matches the configuration.
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.

✅ Plan applied in Deploy to Development and Meta Environments #1141

@github-actions
Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Branch Rate Health
. 100% 100%
api 98% 86%
api.serializers 97% 88%
api.views 91% 96%
audit 95% 81%
audit.cross_validation 97% 86%
audit.fixtures 84% 50%
audit.formlib 92% 62%
audit.intakelib 89% 83%
audit.intakelib.checks 92% 85%
audit.intakelib.common 98% 82%
audit.intakelib.transforms 100% 95%
audit.management.commands 78% 17%
audit.migrations 100% 100%
audit.models 91% 68%
audit.templatetags 100% 100%
audit.test_viewlib 100% 100%
audit.views 75% 52%
census_historical_migration 96% 65%
census_historical_migration.migrations 100% 100%
census_historical_migration.sac_general_lib 92% 84%
census_historical_migration.transforms 95% 90%
census_historical_migration.workbooklib 68% 69%
config 78% 37%
curation 98% 100%
curation.curationlib 88% 72%
curation.migrations 100% 100%
dissemination 90% 69%
dissemination.analytics 27% 0%
dissemination.forms 80% 30%
dissemination.migrations 97% 25%
dissemination.models 100% 100%
dissemination.report_generation 21% 0%
dissemination.report_generation.excel 32% 0%
dissemination.searchlib 61% 43%
dissemination.templatetags 52% 6%
dissemination.views 67% 47%
djangooidc 53% 38%
djangooidc.tests 100% 94%
report_submission 100% 96%
report_submission.migrations 100% 100%
report_submission.templatetags 74% 100%
report_submission.views 78% 61%
support 94% 75%
support.migrations 100% 100%
support.models 90% 50%
tools 98% 50%
users 95% 86%
users.fixtures 100% 83%
users.management 100% 100%
users.management.commands 100% 100%
users.migrations 100% 100%
Summary 89% (22059 / 24878) 69% (2701 / 3918)

Copy link
Copy Markdown
Contributor

@ccampbell-fearless ccampbell-fearless left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Copy Markdown
Contributor

@daryll daryll left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all lgtm!

@jperson1 jperson1 added this pull request to the merge queue Mar 25, 2026
Merged via the queue into main with commit 108ee22 Mar 25, 2026
18 checks passed
@jperson1 jperson1 deleted the jp/metabase-for-all branch March 25, 2026 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants