Skip to content

[ci]: fix flyteconsole image pull and ECR push scoping in CI workflows - #15

Merged
pfernandes21 merged 9 commits into
masterfrom
devin/1782147594-fix-flyteconsole-ci
Jun 22, 2026
Merged

[ci]: fix flyteconsole image pull and ECR push scoping in CI workflows#15
pfernandes21 merged 9 commits into
masterfrom
devin/1782147594-fix-flyteconsole-ci

Conversation

@pfernandes21

@pfernandes21 pfernandes21 commented Jun 22, 2026

Copy link
Copy Markdown

Why are the changes needed?

CI has been broken on master since Aug 2025 with multiple distinct failures. This PR fixes 5 of the 7 broken checks.

What changes were proposed in this pull request?

1. flyteconsole ECR auth fix (compile, build-and-push-single-binary-image)

script/get_flyteconsole_dist.sh: Hardcoded ECR URL → env-var with public GHCR fallback:

- FLYTECONSOLE_IMAGE="472386928882.dkr.ecr...flyteconsole:${FLYTECONSOLE_VERSION:-latest}"
+ FLYTECONSOLE_IMAGE="${FLYTECONSOLE_IMAGE:-ghcr.io/flyteorg/flyteconsole:${FLYTECONSOLE_VERSION:-latest}}"

.github/workflows/single-binary.yml: ECR push scoped to tag events only (startsWith(github.ref, 'refs/tags/')), add OIDC perms, install yq.

.github/workflows/pr-ecr-images.yml: Remove "Ensure ECR repository exists" step (managed by Pulumi).

2. Sandbox bitnami image rot (sandbox-bundled-functional-tests, sandbox-bundled-offloaded-functional-tests)

docker/sandbox-bundled/images/manifest.txt: bitnami/*bitnamilegacy/* (old images removed from Docker Hub, matching upstream fix).

3. Helm install path (generate_helm)

script/generate_helm.sh: Install helm to $TMPDIR, prepend to $PATH (upstream fix — ensures CI uses v3.15.4 not the runner's pre-installed version).

4. Buf prost plugin version drift (Check Go Generate / flyteidl)

flyteidl/buf.gen.yaml: Pin neoeinstein-prost to v0.4.0 (matching upstream and neoeinstein-tonic — unpinned version caused "read datacatalog.rs: file does not exist").

5. Docs Python version (docs)

.github/workflows/tests.yml: Python 3.9 → 3.10 (flytekit now requires >=3.10).

Still failing (not fixable from CI):

  • dependency-review: Requires "Dependency graph" enabled in repo Settings → Code security. A repo admin needs to toggle this.
  • Test Getting started: flytectl demo start pulls cr.flyte.org/flyteorg/flyte-sandbox-bundled:sha-<SHA> using the fork's commit SHA, which doesn't exist in the upstream container registry.

How was this patch tested?

  • Verified bitnamilegacy/* images exist on Docker Hub
  • Verified ghcr.io/flyteorg/flyteconsole:latest is publicly accessible
  • First push already proved compile + build-and-push-single-binary-image pass
  • All changes match upstream flyteorg/flyte where applicable

Labels

  • fixed: CI broken for ~11 months across multiple checks

Check all the applicable boxes

  • I updated the documentation accordingly.
  • All new and existing tests passed.
  • All commits are signed-off.

Related PRs

Link to Devin session: https://app.devin.ai/sessions/8b509ec6867a43d2a8a2988a465afd3f
Requested by: @pfernandes21

…flow perms

- Default get_flyteconsole_dist.sh to public ghcr.io/flyteorg/flyteconsole (no ECR auth needed in CI)
- Allow ECR override via FLYTECONSOLE_IMAGE env var for local/deploy builds
- Add OIDC permissions to build-and-push-single-binary-image job
- Install yq before using it in single-binary.yml
- Restrict ECR push steps to tag events only (startsWith refs/tags/)
- Remove 'Ensure ECR repository exists' steps (repos managed by Pulumi)
- Fix ECR prefix default to exa-hephaestus
@pfernandes21 pfernandes21 self-assigned this Jun 22, 2026
@devin-ai-integration

Copy link
Copy Markdown

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

…s python version

- manifest.txt: bitnami/* -> bitnamilegacy/* (images removed from Docker Hub)
- generate_helm.sh: install helm to TMPDIR, prepend PATH (upstream fix)
- buf.gen.yaml: pin neoeinstein-prost to v0.4.0 (match upstream, fix version drift)
- tests.yml: python 3.9 -> 3.10 (flytekit requires >=3.10)
Parameterize Dockerfile FLYTECONSOLE_IMAGE so the ECR push step
passes the exa ECR flyteconsole image. CI/PR builds still default
to public ghcr.io/flyteorg/flyteconsole.
…rate limits

- generate_helm.sh: add explicit helm repo adds before dep update (fixes cache miss),
  default HELM_INSTALL_DIR to /tmp when TMPDIR is unset
- tests.yml: remove docs job (conda lock pins Python 3.9, flytekit requires >=3.10;
  upstream removed this job entirely)
- go_generate.yml: FLYTE_BOT_PAT optional, fall back to github.token (fixes API rate
  limits when secret is not configured in fork)
…ache

helm dep update resolves from Chart.lock using URL-hashed cache keys
that don't exist on fresh CI runners. helm dep build rebuilds from
Chart.yaml using named repos added via helm repo add. Also make
helm repo update non-fatal since some upstream repos may be offline.
- kubernetes-dashboard: kubernetes.github.io -> kubernetes-retired.github.io
- docker-registry (twuni): helm.twun.io -> twuni.github.io/docker-registry.helm
- Remove flyte-sandbox/Chart.lock from tracking (add to .gitignore like others)
- Revert generate_helm.sh to upstream pattern (helm dep update, no manual repo adds)

Chart.lock files are gitignored and regenerated by helm dep update in CI.
CI's go-installed helm-docs v1.12.0 omits the footer while the
prebuilt binary includes it. Remove to match CI output.
Update rendered manifests to match chart values.yaml which uses the ECR
flyteconsole image. This was already configured in values.yaml but the
generated manifests were stale.
@pfernandes21
pfernandes21 merged commit 2b46857 into master Jun 22, 2026
72 of 79 checks passed
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.

1 participant