Skip to content

Feature/workflow runner overrides with vars#109

Open
Jacko50 wants to merge 11 commits into
devfrom
feature/workflow-runner-overrides-with-vars
Open

Feature/workflow runner overrides with vars#109
Jacko50 wants to merge 11 commits into
devfrom
feature/workflow-runner-overrides-with-vars

Conversation

@Jacko50

@Jacko50 Jacko50 commented Jul 7, 2026

Copy link
Copy Markdown

Summary

This PR updates the deployment image workflow to support configurable runners and a clear product-vs-project registry model, while keeping backward-compatible defaults.

What Changed

  1. Renamed the orchestration job:
  • extract-version -> extract-variables
  • Updated all downstream needs and output references accordingly.
  1. Added runner override behavior with precedence:
  • workflow_dispatch input (highest)
  • GitHub variable fallback
  • existing default runner (lowest)
  1. Centralized image naming customization:
  • Introduced configurable project_image_prefix with fallback.
  • Removed hardcoded image name fragments from job-level definitions.
  1. Split registry configuration into separate product/project settings:
  • Product registry is used for pulling product/base images.
  • Project registry is used for publishing project images and manifests.
  1. Added separate optional credentials for product/project registries with fallback:
  • Product username/password can be distinct.
  • Project username/password can be distinct.
  • Existing single credential vars/secrets still work as fallback.
  1. Parameterized additional workflow values via GitHub vars with defaults:
  • project_repository (default myproject)
  • product_repository_prefix (default releases_)
  • existing defaults preserved when vars are unset.
  1. Updated login behavior to match actual flow:
  • Build jobs log into product + project registries (pull + push in same job).
  • Merge jobs log into project registry (manifest publish target).

Why

The workflow had outgrown the original “single registry + fixed naming” assumptions. This change makes it reusable across environments where:

  • product and project registries differ
  • credentials differ by registry
  • naming/repository conventions differ

without requiring template code edits.

Backward Compatibility

  • Defaults preserve prior behavior if no new vars/secrets are configured.
  • Existing registry_username / registry_password remain valid fallback credentials.
  • Registry defaults still point to harbor.delivery.iqgeo.cloud.

Suggested GitHub Configuration (Optional)

If needed, set these repository/environment variables and secrets:

  • Vars:

    • product_registry
    • project_registry
    • product_registry_username
    • project_registry_username
    • project_repository
    • project_image_prefix
    • product_repository_prefix
    • existing amd64_runner, arm64_runner (if used)
  • Secrets:

    • product_registry_password
    • project_registry_password
    • existing registry_password (fallback)

Validation

  • Workflow syntax checked and clean after changes.
  • Branch diff is scoped to one workflow file only.

@Jacko50 Jacko50 changed the base branch from main to dev July 7, 2026 12:47
@luiscamachopt

Copy link
Copy Markdown
Contributor

Hi @Jacko50, please redo this without the formatting changes as it makes the review and the merging hard (we have a conflict now). Also, the branch should be created from dev. I suggest recreating the branch from dev (other PR is now merged), and cherry picking the commit/changes you want.
Then don't forget to add reviewers

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.

3 participants