Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Constant drift of the scaling field of a cloudrun service #3052

Open
segevfiner opened this issue Mar 16, 2025 · 1 comment
Open

Constant drift of the scaling field of a cloudrun service #3052

segevfiner opened this issue Mar 16, 2025 · 1 comment
Labels
awaiting-feedback Blocked on input from the author kind/bug Some behavior is incorrect or out of spec

Comments

@segevfiner
Copy link

Describe what happened

A GCP Cloud Run service is constantly getting deployed on pulumi up due to detected changes in the scaling field. Possibly only after running pulumi refresh

Sample program

import * as gcp from '@pulumi/gcp';

// Comes from Pulumi config in the real program
const production = false;

export const service = new gcp.cloudrunv2.Service('example-service', {
  location: gcp.config.region!,
  ingress: 'INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER',
  scaling: {
    minInstanceCount: production ? 1 : 0,
  },
  template: {
    containers: [
      {
        image:"caddy:2",
        resources: {
          cpuIdle: true,
          startupCpuBoost: true,
        },
        startupProbe: {
          periodSeconds: 5,
          httpGet: {},
        },
      },
    ]
  },
});

Log output

out.txt.zip

Affected Resource(s)

cloudrunv2.Service

Output of pulumi about

CLI          
Version      3.156.0
Go Version   go1.24.1
Go Compiler  gc

Plugins
KIND      NAME    VERSION
resource  gcp     8.22.0
language  nodejs  3.156.0

Host     
OS       darwin
Version  15.3.2
Arch     arm64

This project is written in nodejs: executable='/Users/segevfiner/.local/state/fnm_multishells/3405_1742076754878/bin/node' version='v18.20.6'

Current Stack: swimm/swimm/staging

TYPE                                                               URN
pulumi:pulumi:Stack                                                urn:pulumi:staging::swimm::pulumi:pulumi:Stack::swimm-staging
pulumi:providers:gcp                                               urn:pulumi:staging::swimm::pulumi:providers:gcp::default_8_21_0
gcp:compute/sSLPolicy:SSLPolicy                                    urn:pulumi:staging::swimm::gcp:compute/sSLPolicy:SSLPolicy::restricted-tls-1-2
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::increment-cap-and-send-mail
gcp:compute/globalAddress:GlobalAddress                            urn:pulumi:staging::swimm::gcp:compute/globalAddress:GlobalAddress::swimm-dev
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::identitytoolkit
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::segment-cdn
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::azure-auth
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::cloud-functions-auth
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::cloud-functions-ide
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::swimm-onprem-agent
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::sentry-ingest
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::bitbucket-auth
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::hosting
gcp:compute/managedSslCertificate:ManagedSslCertificate            urn:pulumi:staging::swimm::gcp:compute/managedSslCertificate:ManagedSslCertificate::swimm-dev
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::firestore
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::firebase-storage
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::segment-api
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::github-auth
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::securetoken
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::cloud-functions
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::no-access
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::cloud-functions-general
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::legacy-services
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::cloud-functions-tools
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::stigg-edge
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::ide-authenticate
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::botmeta
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::datadog-intake
gcp:serviceaccount/account:Account                                 urn:pulumi:staging::swimm::gcp:serviceaccount/account:Account::swimm-backend
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::functions
gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup::stigg
gcp:compute/securityPolicy:SecurityPolicy                          urn:pulumi:staging::swimm::gcp:compute/securityPolicy:SecurityPolicy::swimm-dev
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::gitlab-auth
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::identitytoolkit
gcp:cloudrunv2/service:Service                                     urn:pulumi:staging::swimm::gcp:cloudrunv2/service:Service::swimm-backend
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-roles/datastore.user
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::sentry-ingest
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::hosting
gcp:secretmanager/secretIamMember:SecretIamMember                  urn:pulumi:staging::swimm::gcp:secretmanager/secretIamMember:SecretIamMember::swimm-onprem-agent-secret
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-ide-roles/datastore.user
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::segment-cdn
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-auth-roles/secretmanager.secretAccessor
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-auth-roles/firebaseauth.admin
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-roles/firebaseauth.viewer
gcp:serviceaccount/iAMMember:IAMMember                             urn:pulumi:staging::swimm::gcp:serviceaccount/iAMMember:IAMMember::cloud-functions-auth-roles/iam.serviceAccountTokenCreator
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-auth-roles/datastore.user
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::firestore
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::segment-api
gcp:serviceaccount/iAMMember:IAMMember                             urn:pulumi:staging::swimm::gcp:serviceaccount/iAMMember:IAMMember::cloud-functions-ide/iam.serviceAccountTokenCreator
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::swimm-onprem-agent-roles/datastore.user
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::swimm-onprem-agent-roles/firebaseauth.viewer
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::firebase-storage
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-auth-roles/recaptchaenterprise.agent
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::securetoken
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-ide-roles/firebaseauth.admin
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::firestore
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::legacy-services-roles/firebaseauth.viewer
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::legacy-services-roles/datastore.user
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::bitbucket-auth
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::legacy-services-roles/secretmanager.secretAccessor
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-general-roles/datastore.importExportAdmin
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-tools-roles/datastore.user
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-tools-roles/firebaseauth.admin
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::securetoken
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::identitytoolkit
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::hosting
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::segment-cdn
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::datadog-intake
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::swimm-backend-roles/secretmanager.admin
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::stigg
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::datadog-intake
gcp:cloudrunv2/service:Service                                     urn:pulumi:staging::swimm::gcp:cloudrunv2/service:Service::swimm-web
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::segment-api
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::firebase-storage
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::azure-auth
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::swimm-backend-roles/datastore.user
gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint            urn:pulumi:staging::swimm::gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint::stigg-edge
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::swimm-backend-roles/firebaseauth.admin
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::sentry-ingest
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-tools-roles/secretmanager.secretAccessor
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-general-roles/firebaseauth.admin
gcp:projects/iAMMember:IAMMember                                   urn:pulumi:staging::swimm::gcp:projects/iAMMember:IAMMember::cloud-functions-general-roles/datastore.user
gcp:cloudrunv2/service:Service                                     urn:pulumi:staging::swimm::gcp:cloudrunv2/service:Service::swimm-onprem-agent
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::gitlab-auth
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::stigg
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::stigg-edge
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::botmeta
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::functions
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::increment-cap-and-send-mail
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::ide-authenticate
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::github-auth
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::swimm-backend
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::swimm-web
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::swimm-web
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::swimm-backend
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::swimm-onprem-agent
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::swimm-onprem-agent
gcp:cloudrunv2/service:Service                                     urn:pulumi:staging::swimm::gcp:cloudrunv2/service:Service::services-proxy
gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup  urn:pulumi:staging::swimm::gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup::services-proxy
gcp:cloudrun/iamMember:IamMember                                   urn:pulumi:staging::swimm::gcp:cloudrun/iamMember:IamMember::services-proxy
gcp:compute/backendService:BackendService                          urn:pulumi:staging::swimm::gcp:compute/backendService:BackendService::services-proxy
gcp:compute/uRLMap:URLMap                                          urn:pulumi:staging::swimm::gcp:compute/uRLMap:URLMap::swimm-dev
gcp:compute/targetHttpProxy:TargetHttpProxy                        urn:pulumi:staging::swimm::gcp:compute/targetHttpProxy:TargetHttpProxy::swimm-dev
gcp:compute/targetHttpsProxy:TargetHttpsProxy                      urn:pulumi:staging::swimm::gcp:compute/targetHttpsProxy:TargetHttpsProxy::swimm-dev
gcp:compute/globalForwardingRule:GlobalForwardingRule              urn:pulumi:staging::swimm::gcp:compute/globalForwardingRule:GlobalForwardingRule::swimm-dev-forwarding-rule
gcp:compute/globalForwardingRule:GlobalForwardingRule              urn:pulumi:staging::swimm::gcp:compute/globalForwardingRule:GlobalForwardingRule::swimm-dev


Found no pending operations associated with staging

Backend        
Name           pulumi.com
URL            https://app.pulumi.com/segev-swimm
User           segev-swimm
Organizations  segev-swimm, swimm
Token type     personal

Pulumi locates its logs in /var/folders/2s/h5gc8qpj1x94_gm3jvs27pgw0000gn/T/ by default

Additional context

This might only happen after a pulumi refresh.

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

@segevfiner segevfiner added kind/bug Some behavior is incorrect or out of spec needs-triage Needs attention from the triage team labels Mar 16, 2025
@t0yv0
Copy link
Member

t0yv0 commented Mar 21, 2025

Could you provide a little bit more information on sequence of pulumi refresh calls and what you see in pulumi preview --diff? Looking at the logs a little I see scaling:{map[maxInstanceCount:{100} minInstanceCount:{0}]} mentioned so perhaps refreshing is pulling the maxInstanceCount:{100} value from the GCP account that needs to also be written in the code to prevent constant drift? Also perhaps it is possible to workaround with ignoreChanges resource option?

@t0yv0 t0yv0 added awaiting-feedback Blocked on input from the author and removed needs-triage Needs attention from the triage team labels Mar 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting-feedback Blocked on input from the author kind/bug Some behavior is incorrect or out of spec
Projects
None yet
Development

No branches or pull requests

2 participants