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

Cloud Run Port Forwarding Fails with Templating #9554

Open
alexwilson1 opened this issue Oct 30, 2024 · 1 comment
Open

Cloud Run Port Forwarding Fails with Templating #9554

alexwilson1 opened this issue Oct 30, 2024 · 1 comment

Comments

@alexwilson1
Copy link

Bug Report

Description

The skaffold.yaml configuration below is intended to set up port forwarding for a specific Cloud Run service using dynamic USER-based naming. The configuration appears to resolve the service name correctly, but the port forwarding still fails with a "service not found" error.

Configuration

apiVersion: skaffold/v4beta11
kind: Config

manifests:
  helm:
    releases:
      - name: test
        chartPath: "./skaffold/test"
        setValueTemplates:
          "service.name": "{{ .USER }}-test"

build:
  local:
    push: true

  artifacts:
    - image: us-central1-docker.pkg.dev/.../test
      context: context
      docker:
        dockerfile: Dockerfile

deploy:
  cloudrun:
    projectid: ID
    region: REGION

portForward:
  - resourceType: service
    resourceName: "{{ .USER }}-test"
    localPort: 9001

Environment

  • Skaffold Version: v2.13.1
  • Installation Method: Installed via Cloud Code
  • Operating System: macOS 15.0.1

Error Logs

Forwarding service projects/project-id/locations/us-central1/services/user-test to local port 8080
Forwarding service projects/project-id/locations/us-central1/services/user-processing to local port 8081
could not map pods to service default/user-test/0: getting service default/user-test: services "user-test" not found

Expected Behavior

The portForward directive should map the dynamically generated {{ .USER }}-test service name to the specified local port without errors.

Actual Behavior

Despite correctly resolving the {{ .USER }} placeholder in the logs, the port forwarding fails with a "service not found" error.

@alexwilson1
Copy link
Author

alexwilson1 commented Jan 23, 2025

Even when running skaffold diagnose we get the exact same output (checked MD5/diff) but the templated forwarding field still does not work. Minimal reproducible example included.

Works:

skaffold.yaml

apiVersion: skaffold/v4beta12
kind: Config

manifests:
  rawYaml:
    - resources/*

deploy:
  cloudrun:
    projectid: eng-xxxxxx 
    region: us-central1

portForward:
  - resourceType: service
    resourceName: 'cloud-run-service-name'
    localPort: 9001

Output

skaffold run --port-forward

No tags generated
Starting test...
Starting deploy...
Deploying Cloud Run service:
         cloud-run-service-name
Cloud Run Service cloud-run-service-name finished: Service started. 0/1 deployment(s) still pending
Forwarding service projects/eng-xxxxxx/locations/us-central1/services/cloud-run-service-name to local port 9001
Press Ctrl+C to exit
Proxying to Cloud Run service [cloud-run-service-name] in project [eng-xxxxxx] region [us-central1]
http://127.0.0.1:9001 proxies to https://cloud-run-service-name-98grhvdsak-uc.a.run.app

skaffold diagnose --enable-templating --yaml-only

apiVersion: skaffold/v4beta12
kind: Config
build:
  tagPolicy:
    gitCommit: {}
  local: {}
manifests:
  rawYaml:
    - /Users/yyy/Repos/eng/resources/*
deploy:
  cloudrun:
    projectid: eng-xxxxxx
    region: us-central1
  logs:
    prefix: container
portForward:
  - resourceType: service
    resourceName: cloud-run-service-name
    address: 127.0.0.1
    localPort: 9001

Does not work

apiVersion: skaffold/v4beta12
kind: Config

manifests:
  rawYaml:
    - resources/*

deploy:
  cloudrun:
    projectid: eng-xxxxxx
    region: us-central1

portForward:
  - resourceType: service
    resourceName: '{{ .PREPENDEDNAME }}-run-service-name'
    localPort: 9001

skaffold.env
PREPENDEDNAME=cloud

Output:

skaffold run --port-forward

No tags generated
Starting test...
Starting deploy...
Deploying Cloud Run service:
         cloud-run-service-name
Cloud Run Service cloud-run-service-name finished: Service started. 0/1 deployment(s) still pending
Forwarding service projects/eng-xxxxxx/locations/us-central1/services/cloud-run-service-name to local port 8080
Press Ctrl+C to exit
Proxying to Cloud Run service [cloud-run-service-name] in project [eng-xxxxxx] region [us-central1]
http://127.0.0.1:8080 proxies to https://cloud-run-service-name-98grhvdsak-uc.a.run.app

skaffold diagnose --enable-templating --yaml-only

apiVersion: skaffold/v4beta12
kind: Config
build:
  tagPolicy:
    gitCommit: {}
  local: {}
manifests:
  rawYaml:
    - /Users/yyy/Repos/eng/resources/*
deploy:
  cloudrun:
    projectid: eng-xxxxxx
    region: us-central1
  logs:
    prefix: container
portForward:
  - resourceType: service
    resourceName: cloud-run-service-name
    address: 127.0.0.1
    localPort: 9001

Common File

./resources/cloud-run-service.yaml

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: cloud-run-service-name
spec:
  template:
    spec:
      containers:
      - image: gcr.io/cloudrun/hello

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

No branches or pull requests

1 participant