Skip to content

2025-04-01 | MAIN --> PROD | DEV (d98dcd9) --> STAGING#4843

Merged
asteel-gsa merged 2 commits into
prodfrom
main
Apr 1, 2025
Merged

2025-04-01 | MAIN --> PROD | DEV (d98dcd9) --> STAGING#4843
asteel-gsa merged 2 commits into
prodfrom
main

Conversation

@asteel-gsa
Copy link
Copy Markdown
Contributor

This is an auto-generated pull request to merge main into prod for a staging release on 2025-04-01 with the last commit being merged as d98dcd9

asteel-gsa and others added 2 commits March 31, 2025 12:01
* Bump Django

* Validate JSON exists in LogEntry message

As of django's new version `5.1.7`, this field `instance.change_message` is not equipped to handle a case where it is null.

* Linting

* Update Makefile

---------

Co-authored-by: Bobby Novak <176936850+rnovak338@users.noreply.github.com>
@asteel-gsa asteel-gsa added the autogenerated Automated pull request creation label Apr 1, 2025
@asteel-gsa asteel-gsa requested a review from a team as a code owner April 1, 2025 10:26
@asteel-gsa asteel-gsa added the automerge Used for automated deployments label Apr 1, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 1, 2025

Terraform plan for production

Plan: 1 to add, 5 to change, 1 to destroy.
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.domain.cloudfoundry_route.origin_route_connected[0] will be updated in-place
!~  resource "cloudfoundry_route" "origin_route_connected" {
!~      destinations = [
-           {
-               app_id           = "5dac166f-2fb0-4e72-8d4d-4359191bf284" -> null
-               app_process_type = "web" -> null
-               id               = "19893f9a-a457-4a76-8cc7-0ad89f68a815" -> null
-               port             = 8080 -> null
-               protocol         = "http1" -> null
            },
+           {
+               app_id           = "************************************"
+               app_process_type = (known after apply)
+               id               = (known after apply)
+               port             = (known after apply)
+               protocol         = (known after apply)
            },
        ]
        id           = "9bd3d201-f224-4a1f-933a-fddec488c1a5"
#        (7 unchanged attributes hidden)
    }

  # module.production.cloudfoundry_network_policy.app-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "app-network-policy" {
        id = "41e96938-1383-c2ce-3157-af85063feaa3"

-       policy {
-           destination_app = "ae5cd101-195d-4ca1-8a26-58b6a08a1fdb" -> null
-           port            = "61443" -> null
-           protocol        = "tcp" -> null
-           source_app      = "15290fef-8636-4e27-9b57-c86318f85cc8" -> null
        }
-       policy {
-           destination_app = "ae5cd101-195d-4ca1-8a26-58b6a08a1fdb" -> null
-           port            = "61443" -> null
-           protocol        = "tcp" -> null
-           source_app      = "5dac166f-2fb0-4e72-8d4d-4359191bf284" -> null
        }
+       policy {
+           destination_app = (known after apply)
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = "15290fef-8636-4e27-9b57-c86318f85cc8"
        }
+       policy {
+           destination_app = (known after apply)
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = "5dac166f-2fb0-4e72-8d4d-4359191bf284"
        }
    }

  # module.production.cloudfoundry_network_policy.clamav-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "clamav-network-policy" {
        id = "bffa4f44-73e2-295d-6c7e-2809a21406d6"

-       policy {
-           destination_app = "5e81ca8b-99cf-41f8-ae42-76652d51a44c" -> null
-           port            = "61443" -> null
-           protocol        = "tcp" -> null
-           source_app      = "99ba1218-5b6e-42fc-9484-00eebde48eda" -> null
        }
-       policy {
-           destination_app = "5e81ca8b-99cf-41f8-ae42-76652d51a44c" -> null
-           port            = "61443" -> null
-           protocol        = "tcp" -> null
-           source_app      = "ae5cd101-195d-4ca1-8a26-58b6a08a1fdb" -> null
        }
+       policy {
+           destination_app = "5e81ca8b-99cf-41f8-ae42-76652d51a44c"
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = (known after apply)
        }
+       policy {
+           destination_app = "5e81ca8b-99cf-41f8-ae42-76652d51a44c"
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = (known after apply)
        }
    }

  # module.production.module.clamav.cloudfoundry_app.clamav_api will be updated in-place
!~  resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2025-03-14T15:36:41Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:62bc1afee9a5c8f9f4cfcb475b117306cefb63053666080949f9c7d955345116" -> "ghcr.io/gsa-tts/fac/clamav@sha256:296c46bb74c5a29e4b71aa0d46a8518dd379b4410026a9a3ab97b0ea8fc7b4bd"
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-production"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2025-03-19T16:22:24Z" -> (known after apply)
#        (9 unchanged attributes hidden)
    }

  # module.production.module.cors.null_resource.cors_header must be replaced
-/+ resource "null_resource" "cors_header" {
!~      id       = "*******************" -> (known after apply)
!~      triggers = { # forces replacement
!~          "always_run" = "2025-03-19T16:27:48Z" -> (known after apply)
        }
    }

  # module.production.module.file_scanner_clamav.cloudfoundry_app.clamav_api will be updated in-place
!~  resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2025-03-14T15:36:41Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:62bc1afee9a5c8f9f4cfcb475b117306cefb63053666080949f9c7d955345116" -> "ghcr.io/gsa-tts/fac/clamav@sha256:296c46bb74c5a29e4b71aa0d46a8518dd379b4410026a9a3ab97b0ea8fc7b4bd"
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-production-fs"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2025-03-19T16:22:24Z" -> (known after apply)
#        (9 unchanged attributes hidden)
    }

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

❌ Error applying plan in Deploy to Production Environment #129

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 1, 2025

Terraform plan for staging

Plan: 1 to add, 4 to change, 1 to destroy.
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.staging.cloudfoundry_network_policy.app-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "app-network-policy" {
        id = "ce880589-cfed-0c08-7225-d78834d31d26"

-       policy {
-           destination_app = "74ef79bb-2502-40ea-9138-385669a4397b" -> null
-           port            = "61443" -> null
-           protocol        = "tcp" -> null
-           source_app      = "38f7f948-e7b4-4e8f-8ff4-7c89213ad857" -> null
        }
-       policy {
-           destination_app = "74ef79bb-2502-40ea-9138-385669a4397b" -> null
-           port            = "61443" -> null
-           protocol        = "tcp" -> null
-           source_app      = "e4cb13f2-3e3f-4b19-a1d2-076ebfd1fd7a" -> null
        }
+       policy {
+           destination_app = (known after apply)
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = "38f7f948-e7b4-4e8f-8ff4-7c89213ad857"
        }
+       policy {
+           destination_app = (known after apply)
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = "e4cb13f2-3e3f-4b19-a1d2-076ebfd1fd7a"
        }
    }

  # module.staging.cloudfoundry_network_policy.clamav-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "clamav-network-policy" {
        id = "b03ca21f-c8ff-335b-7ef7-89dd796c8e14"

-       policy {
-           destination_app = "1c9e7877-3c69-4fe5-8541-7bca3f845eb1" -> null
-           port            = "61443" -> null
-           protocol        = "tcp" -> null
-           source_app      = "23cd75fe-c912-44e7-8999-4686eae30d72" -> null
        }
-       policy {
-           destination_app = "1c9e7877-3c69-4fe5-8541-7bca3f845eb1" -> null
-           port            = "61443" -> null
-           protocol        = "tcp" -> null
-           source_app      = "74ef79bb-2502-40ea-9138-385669a4397b" -> null
        }
+       policy {
+           destination_app = "1c9e7877-3c69-4fe5-8541-7bca3f845eb1"
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = (known after apply)
        }
+       policy {
+           destination_app = "1c9e7877-3c69-4fe5-8541-7bca3f845eb1"
+           port            = "61443"
+           protocol        = "tcp"
+           source_app      = (known after apply)
        }
    }

  # module.staging.module.clamav.cloudfoundry_app.clamav_api will be updated in-place
!~  resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2025-03-14T14:54:12Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:a73b18094206cac34dc03bbbbfb5892f4b723bb35e6fab14e23381abecd6a1fa" -> "ghcr.io/gsa-tts/fac/clamav@sha256:296c46bb74c5a29e4b71aa0d46a8518dd379b4410026a9a3ab97b0ea8fc7b4bd"
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-staging"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2025-03-27T10:55:14Z" -> (known after apply)
#        (9 unchanged attributes hidden)
    }

  # module.staging.module.cors.null_resource.cors_header must be replaced
-/+ resource "null_resource" "cors_header" {
!~      id       = "*******************" -> (known after apply)
!~      triggers = { # forces replacement
!~          "always_run" = "2025-03-27T10:55:08Z" -> (known after apply)
        }
    }

  # module.staging.module.file_scanner_clamav.cloudfoundry_app.clamav_api will be updated in-place
!~  resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2025-03-14T14:54:12Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:a73b18094206cac34dc03bbbbfb5892f4b723bb35e6fab14e23381abecd6a1fa" -> "ghcr.io/gsa-tts/fac/clamav@sha256:296c46bb74c5a29e4b71aa0d46a8518dd379b4410026a9a3ab97b0ea8fc7b4bd"
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-staging-fs"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2025-03-27T10:55:14Z" -> (known after apply)
#        (9 unchanged attributes hidden)
    }

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

✅ Plan applied in Deploy to Staging Environment #343

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 1, 2025

Code Coverage

Package Line Rate Branch Rate Health
. 100% 100%
api 98% 90%
audit 97% 87%
audit.cross_validation 98% 88%
audit.fixtures 84% 50%
audit.intakelib 88% 82%
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 94% 73%
audit.templatetags 100% 100%
audit.views 72% 54%
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 77% 37%
curation 100% 100%
curation.curationlib 93% 100%
curation.migrations 100% 100%
dissemination 92% 72%
dissemination.migrations 97% 25%
dissemination.searchlib 76% 66%
dissemination.templatetags 100% 100%
djangooidc 53% 38%
djangooidc.tests 100% 94%
report_submission 93% 88%
report_submission.migrations 100% 100%
report_submission.templatetags 74% 100%
support 91% 66%
support.migrations 100% 100%
support.models 96% 50%
tools 98% 50%
users 95% 92%
users.fixtures 100% 83%
users.management 100% 100%
users.management.commands 100% 100%
users.migrations 100% 100%
Summary 91% (18504 / 20271) 77% (2279 / 2964)

Minimum allowed line rate is 85%

@asteel-gsa asteel-gsa merged commit 60a4477 into prod Apr 1, 2025
73 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 2, 2025

Terraform plan for production

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

Terraform will perform the following actions:

  # module.domain.cloudfoundry_route.origin_route_connected[0] will be created
+   resource "cloudfoundry_route" "origin_route_connected" {
+       created_at   = (known after apply)
+       destinations = [
+           {
+               app_id           = "************************************"
+               app_process_type = (known after apply)
+               id               = (known after apply)
+               port             = (known after apply)
+               protocol         = (known after apply)
            },
        ]
+       domain       = "559e0623-9057-45ef-a9ca-e183df56b4e3"
+       host         = "app"
+       id           = (known after apply)
+       protocol     = (known after apply)
+       space        = "5593dba8-7023-49a5-bdbe-e809fe23edf9"
+       updated_at   = (known after apply)
+       url          = (known after apply)
    }

  # module.domain.cloudfoundry_service_instance.external_domain_instance will be updated in-place
!~  resource "cloudfoundry_service_instance" "external_domain_instance" {
+       dashboard_url     = (known after apply)
        id                = "c36480a2-ec78-4e75-b175-d6b53abf2400"
!~      last_operation    = {
!~          created_at  = "2025-03-14T15:51:27Z" -> (known after apply)
+           description = (known after apply)
!~          state       = "succeeded" -> (known after apply)
!~          type        = "update" -> (known after apply)
!~          updated_at  = "2025-03-14T15:51:27Z" -> (known after apply)
        } -> (known after apply)
!~      maintenance_info  = {
+           description = (known after apply)
+           version     = (known after apply)
        } -> (known after apply)
        name              = "gsa-fac-fac.gov"
!~      parameters        = (sensitive value)
        tags              = [
            "terraform-cloudgov-managed",
        ]
!~      updated_at        = "2025-03-14T15:51:27Z" -> (known after apply)
!~      upgrade_available = false -> (known after apply)
#        (4 unchanged attributes hidden)
    }

  # module.production.module.cors.null_resource.cors_header must be replaced
-/+ resource "null_resource" "cors_header" {
!~      id       = "*******************" -> (known after apply)
!~      triggers = { # forces replacement
!~          "always_run" = "2025-04-02T17:24:18Z" -> (known after apply)
        }
    }

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

✅ Plan applied in Deploy to Production Environment #129

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autogenerated Automated pull request creation automerge Used for automated deployments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants