Add GCS bucket for external TestGrid configurations#9169
Add GCS bucket for external TestGrid configurations#9169ameukam wants to merge 1 commit intokubernetes:mainfrom
Conversation
|
/hold |
|
Unknown CLA label state. Rechecking for CLA labels. Send feedback to sig-contributor-experience at kubernetes/community. /check-cla |
|
/test pull-k8sio-verify |
|
atlantis plan |
This comment has been minimized.
This comment has been minimized.
Argo CD Diff PreviewSummary: No changes foundNo changes found Stats: |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ameukam The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This comment has been minimized.
This comment has been minimized.
|
@upodroid look's like some bindings are not defined in Terraform ? |
|
someone merged a broken change to the module |
|
@upodroid can we manually actuate this until a fix lands ? |
|
Yes. Pin to the previous version |
This comment has been minimized.
This comment has been minimized.
Add a GCS bucket so we can migrate testgrid dashboards from Google to the Kubernetes infrastructure Ref: - kubernetes#8973 Signed-off-by: Arnaud Meukam <ameukam@gmail.com>
|
Ran Plan for dir: Show OutputNote: Objects have changed outside of Terraform
Terraform detected the following changes made outside of Terraform since the
last "terraform apply" which may have affected this plan:
# module.prow.google_container_cluster.primary has changed
~ resource "google_container_cluster" "primary" {
id = "projects/k8s-infra-prow/locations/us-central1/clusters/prow"
~ master_version = "1.33.5-gke.1308000" -> "1.33.5-gke.2469000"
name = "prow"
~ node_version = "1.33.5-gke.1162000" -> "1.33.5-gke.2392000"
# (36 unchanged attributes hidden)
~ node_pool {
name = "prod-v1"
~ version = "1.33.5-gke.1162000" -> "1.33.5-gke.2392000"
# (7 unchanged attributes hidden)
# (5 unchanged blocks hidden)
}
# (33 unchanged blocks hidden)
}
# module.prow_bucket.google_storage_bucket.bucket has changed
~ resource "google_storage_bucket" "bucket" {
id = "kubernetes-ci-logs"
name = "kubernetes-ci-logs"
~ updated = "2025-03-16T02:05:17.746Z" -> "2026-01-08T14:46:52.898Z"
# (16 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.testgrid_config_bucket.google_storage_bucket.bucket has changed
~ resource "google_storage_bucket" "bucket" {
id = "k8s-testgrid-config"
name = "k8s-testgrid-config"
~ updated = "2024-07-27T01:01:29.112Z" -> "2026-01-01T12:58:10.762Z"
# (17 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.utility_cluster.google_container_cluster.primary has changed
~ resource "google_container_cluster" "primary" {
id = "projects/k8s-infra-prow/locations/us-central1/clusters/utility"
~ master_version = "1.33.5-gke.1308000" -> "1.33.5-gke.2469000"
name = "utility"
~ node_version = "1.33.5-gke.1162000" -> "1.33.5-gke.2392000"
# (36 unchanged attributes hidden)
~ node_pool {
name = "prod-v1"
~ version = "1.33.5-gke.1162000" -> "1.33.5-gke.2392000"
# (7 unchanged attributes hidden)
# (5 unchanged blocks hidden)
}
# (33 unchanged blocks hidden)
}
Unless you have made equivalent changes to your configuration, or ignored the
relevant attributes using ignore_changes, the following plan may include
actions to undo or respond to these changes.
─────────────────────────────────────────────────────────────────────────────
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
~ update in-place
- destroy
Terraform will perform the following actions:
# google_iam_workload_identity_pool_provider.s390x will be updated in-place
~ resource "google_iam_workload_identity_pool_provider" "s390x" {
id = "projects/k8s-infra-prow/locations/global/workloadIdentityPools/ibm-clusters/providers/s390x"
name = "projects/16065310909/locations/global/workloadIdentityPools/ibm-clusters/providers/s390x"
# (9 unchanged attributes hidden)
~ oidc {
~ jwks_json = jsonencode( # whitespace changes
{
keys = [
{
alg = "RS256"
e = "AQAB"
kid = "pW5IxvjkcZZfO3wT4fj_DPsrl_-CEsl_NxYrDWN0q0w"
kty = "RSA"
n = "lwAa1E91aQRA23MQ6AoSDIrxDqJVVVYrKicKc_xhvuIrjarK5-Oz7NDitY9xcHHhF1TK3RbQErQEFjzudb-AEuDqJCLGJuKj0dPyPDwiRUgU6mbC5U0e2z0k0IPnIe__53ty1N2s6SY_Ra1PBppXKp53OhUj62UqZhRs606fnk2aCO-MMNNJ-hkj2kht36cMhU-xQzIBrFVbohSJ6Y1_6ATOIa8F8ExyVoPIJmM0-9VEdMVQKpWu1zzjUxz0R1VHmCMT2YpAnZ-TVe_4rfOGHyCQNaMOKwh6cKy17QD1gTCPQZQTkSW2HnA8m5tB0LS5cbhzscBvdvprzWSnc1ZnUQ"
use = "sig"
},
]
}
)
# (2 unchanged attributes hidden)
}
}
# module.prow_bucket.google_storage_bucket_iam_member.members["0"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "kubernetes-ci-logs"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "serviceAccount:prow-build@k8s-infra-prow-build.iam.gserviceaccount.com"
+ role = "roles/storage.objectAdmin"
}
# module.prow_bucket.google_storage_bucket_iam_member.members["1"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "kubernetes-ci-logs"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "serviceAccount:prow-control-plane@k8s-infra-prow.iam.gserviceaccount.com"
+ role = "roles/storage.objectAdmin"
}
# module.prow_bucket.google_storage_bucket_iam_member.members["2"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "kubernetes-ci-logs"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "serviceAccount:prow-build-trusted@k8s-infra-prow-build-trusted.iam.gserviceaccount.com"
+ role = "roles/storage.objectAdmin"
}
# module.prow_bucket.google_storage_bucket_iam_member.members["3"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "kubernetes-ci-logs"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "principalSet://iam.googleapis.com/projects/16065310909/locations/global/workloadIdentityPools/ibm-clusters/attribute.namespace/test-pods"
+ role = "roles/storage.objectAdmin"
}
# module.prow_bucket.google_storage_bucket_iam_member.members["4"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "kubernetes-ci-logs"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "principalSet://iam.googleapis.com/projects/773781448124/locations/global/workloadIdentityPools/prow-aks/attribute.namespace/test-pods"
+ role = "roles/storage.objectAdmin"
}
# module.prow_bucket.google_storage_bucket_iam_member.members["5"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "kubernetes-ci-logs"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "allUsers"
+ role = "roles/storage.objectViewer"
}
# module.prow_bucket.google_storage_bucket_iam_member.members["roles/storage.objectAdmin principalSet://iam.googleapis.com/projects/16065310909/locations/global/workloadIdentityPools/ibm-clusters/attribute.namespace/test-pods"] will be destroyed
# (because key ["roles/storage.objectAdmin principalSet://iam.googleapis.com/projects/16065310909/locations/global/workloadIdentityPools/ibm-clusters/attribute.namespace/test-pods"] is not in for_each map)
- resource "google_storage_bucket_iam_member" "members" {
- bucket = "b/kubernetes-ci-logs" -> null
- etag = "CBE=" -> null
- id = "b/kubernetes-ci-logs/roles/storage.objectAdmin/principalSet://iam.googleapis.com/projects/16065310909/locations/global/workloadIdentityPools/ibm-clusters/attribute.namespace/test-pods" -> null
- member = "principalSet://iam.googleapis.com/projects/16065310909/locations/global/workloadIdentityPools/ibm-clusters/attribute.namespace/test-pods" -> null
- role = "roles/storage.objectAdmin" -> null
}
# module.prow_bucket.google_storage_bucket_iam_member.members["roles/storage.objectAdmin serviceAccount:prow-build-trusted@k8s-infra-prow-build-trusted.iam.gserviceaccount.com"] will be destroyed
# (because key ["roles/storage.objectAdmin serviceAccount:prow-build-trusted@k8s-infra-prow-build-trusted.iam.gserviceaccount.com"] is not in for_each map)
- resource "google_storage_bucket_iam_member" "members" {
- bucket = "b/kubernetes-ci-logs" -> null
- etag = "CBE=" -> null
- id = "b/kubernetes-ci-logs/roles/storage.objectAdmin/serviceAccount:prow-build-trusted@k8s-infra-prow-build-trusted.iam.gserviceaccount.com" -> null
- member = "serviceAccount:prow-build-trusted@k8s-infra-prow-build-trusted.iam.gserviceaccount.com" -> null
- role = "roles/storage.objectAdmin" -> null
}
# module.prow_bucket.google_storage_bucket_iam_member.members["roles/storage.objectAdmin serviceAccount:prow-build@k8s-infra-prow-build.iam.gserviceaccount.com"] will be destroyed
# (because key ["roles/storage.objectAdmin serviceAccount:prow-build@k8s-infra-prow-build.iam.gserviceaccount.com"] is not in for_each map)
- resource "google_storage_bucket_iam_member" "members" {
- bucket = "b/kubernetes-ci-logs" -> null
- etag = "CBE=" -> null
- id = "b/kubernetes-ci-logs/roles/storage.objectAdmin/serviceAccount:prow-build@k8s-infra-prow-build.iam.gserviceaccount.com" -> null
- member = "serviceAccount:prow-build@k8s-infra-prow-build.iam.gserviceaccount.com" -> null
- role = "roles/storage.objectAdmin" -> null
}
# module.prow_bucket.google_storage_bucket_iam_member.members["roles/storage.objectAdmin serviceAccount:prow-control-plane@k8s-infra-prow.iam.gserviceaccount.com"] will be destroyed
# (because key ["roles/storage.objectAdmin serviceAccount:prow-control-plane@k8s-infra-prow.iam.gserviceaccount.com"] is not in for_each map)
- resource "google_storage_bucket_iam_member" "members" {
- bucket = "b/kubernetes-ci-logs" -> null
- etag = "CBE=" -> null
- id = "b/kubernetes-ci-logs/roles/storage.objectAdmin/serviceAccount:prow-control-plane@k8s-infra-prow.iam.gserviceaccount.com" -> null
- member = "serviceAccount:prow-control-plane@k8s-infra-prow.iam.gserviceaccount.com" -> null
- role = "roles/storage.objectAdmin" -> null
}
# module.prow_bucket.google_storage_bucket_iam_member.members["roles/storage.objectViewer allUsers"] will be destroyed
# (because key ["roles/storage.objectViewer allUsers"] is not in for_each map)
- resource "google_storage_bucket_iam_member" "members" {
- bucket = "b/kubernetes-ci-logs" -> null
- etag = "CBE=" -> null
- id = "b/kubernetes-ci-logs/roles/storage.objectViewer/allUsers" -> null
- member = "allUsers" -> null
- role = "roles/storage.objectViewer" -> null
}
# module.testgrid_config_external_bucket.google_storage_bucket.bucket will be created
+ resource "google_storage_bucket" "bucket" {
+ effective_labels = {
+ "goog-terraform-provisioned" = "true"
}
+ force_destroy = false
+ id = (known after apply)
+ location = "US-CENTRAL1"
+ name = "k8s-testgrid-config-external"
+ project = "k8s-infra-prow"
+ project_number = (known after apply)
+ public_access_prevention = "inherited"
+ rpo = (known after apply)
+ self_link = (known after apply)
+ storage_class = "STANDARD"
+ terraform_labels = {
+ "goog-terraform-provisioned" = "true"
}
+ time_created = (known after apply)
+ uniform_bucket_level_access = true
+ updated = (known after apply)
+ url = (known after apply)
+ autoclass {
+ enabled = false
+ terminal_storage_class = (known after apply)
}
+ hierarchical_namespace {
+ enabled = false
}
+ soft_delete_policy {
+ effective_time = (known after apply)
+ retention_duration_seconds = 604800
}
+ versioning {
+ enabled = true
}
+ website (known after apply)
}
# module.testgrid_config_external_bucket.google_storage_bucket_iam_member.members["0"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "k8s-testgrid-config-external"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "serviceAccount:k8s-testgrid-config-updater@k8s-infra-prow-build-trusted.iam.gserviceaccount.com"
+ role = "roles/storage.objectAdmin"
}
# module.testgrid_config_external_bucket.google_storage_bucket_iam_member.members["1"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "k8s-testgrid-config-external"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "serviceAccount:testgrid-canary@k8s-testgrid.iam.gserviceaccount.com"
+ role = "roles/storage.objectViewer"
}
# module.testgrid_config_external_bucket.google_storage_bucket_iam_member.members["2"] will be created
+ resource "google_storage_bucket_iam_member" "members" {
+ bucket = "k8s-testgrid-config-external"
+ etag = (known after apply)
+ id = (known after apply)
+ member = "serviceAccount:updater@k8s-testgrid.iam.gserviceaccount.com"
+ role = "roles/storage.objectViewer"
}
Plan: 10 to add, 1 to change, 5 to destroy.
Note: Objects have changed outside of Terraform
|
Add a GCS bucket so we can migrate testgrid dashboards from Google to the Kubernetes infrastructure
Ref: