Skip to content

feat: add GCS asset upload support between build and deploy#15

Open
yusufcemalcelebi wants to merge 5 commits intomainfrom
feature/sre-9838/introduce-gcs-for-build-files
Open

feat: add GCS asset upload support between build and deploy#15
yusufcemalcelebi wants to merge 5 commits intomainfrom
feature/sre-9838/introduce-gcs-for-build-files

Conversation

@yusufcemalcelebi
Copy link
Copy Markdown

@yusufcemalcelebi yusufcemalcelebi commented Feb 10, 2026

Summary

  • Split skaffold run into separate build → GCS upload → deploy steps
  • Add gcs_asset_bucket, gcs_asset_path, gcs_asset_dest_path inputs to control asset extraction and upload from Docker image to GCS
  • Add skaffold_tags_file input for configurable tags JSON path between steps (default: tags.json)
  • Move helm repo add bjw-s to deploy step only
  • Add cluster and skaffold_profile guards to deploy and GCS upload steps

Context

During rolling deployments, old pods serve HTML referencing hashed JS/CSS filenames that new pods don't have, causing 404s. Uploading all hashed assets to GCS before deploy ensures both old and new files are always available.

Test plan

  • Verify existing workflows without gcs_asset_bucket are unaffected
  • Test single-job flow (skaffold_command: run) with gcs_asset_bucket set
  • Test split build/deploy flow with artifact passing between jobs

- Add gcs_asset_bucket and gcs_asset_path inputs
- When gcs_asset_bucket is set, split skaffold 'run' into build + deploy
- Extract build assets from Docker image and upload to GCS before deploy
- Prevents 404s for hashed Vite files during rolling Kubernetes deployments
- Add configurable skaffold_tags_file input instead of hardcoded /tmp path
- Move helm repo add to deploy step only (not needed for build)
- Add cluster guard to deploy step condition
- Add skaffold_profile guard to GCS upload step condition
- Migrate gsutil to gcloud storage rsync
- Add gs:// prefix to bucket path in gcloud storage command
- Pass skaffold_extra to deploy step
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