You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add bcgov/actions-openshift/route-tls as the last PROD job on Merge so apps with a custom hostname set prod secrets once and ignore TLS after that. Apps without a vanity URL must be unchanged (job skips).
Skips when secrets.TLS_CERTIFICATE is empty — clones without a vanity URL stay green
When secrets are set: hostname from vars.VANITY_URL (or equivalent), target_service: ${{ github.event.repository.name }}-prod-frontend, default route_name (<repo>-vanity-url)
Pin bcgov/actions-openshift/route-tls to a tag or SHA, not @main
promote / other post-deploy jobs still needs: [deploy-prod] so an expired vanity cert fails Merge after the app has rolled
README: prod environment table rows for TLS_CERTIFICATE, TLS_PRIVATE_KEY, TLS_CA_CERTIFICATE, VANITY_URL; Entrust mapping (leaf / key / issuing CA only; no roots, no CSR); PEMs are not workflow_dispatch inputs
Leave the platform Route (${NAME}-${ZONE}.${DOMAIN}) alone
Additional context
Uninterested consumers: set three prod secrets + hostname var, ignore the rest. Every prod release oc applys the same Route name (update, not a second object). GitHub cannot trigger on secret edits; rotation is “paste new PEMs, next prod ship” or re-run only that job (secrets re-read).
Do not make workflow_dispatch the default story. Do not pass private keys as dispatch inputs (plaintext on the run). Skip-if-empty is the switch: FAM-style apps always set secrets; most quickstart clones never do.
Expired cert should fail the job (vanity SSL is already dead). Platform cluster hostname is unaffected.
Call sketch (only runs when the cert secret is present):
Note: GitHub if: secrets.* can be awkward (empty vs unset). Implement the skip so the job is skipped, not failed, when the vanity cert is absent. Verify that in a clone with no TLS secrets.
Describe the task
Add
bcgov/actions-openshift/route-tlsas the last PROD job on Merge so apps with a custom hostname setprodsecrets once and ignore TLS after that. Apps without a vanity URL must be unchanged (job skips).Action: bcgov/actions-openshift#11 (
route-tls). First consumer: bcgov/nr-fam#20 (FAM always has a vanity host — no skip there).Acceptance Criteria
.github/workflows/merge.ymlafterdeploy-prod(not insidereusable-deploy.yml, not on TEST, not onpr-open.yml)environment: prod,permissions: { contents: read }secrets.TLS_CERTIFICATEis empty — clones without a vanity URL stay greenhostnamefromvars.VANITY_URL(or equivalent),target_service: ${{ github.event.repository.name }}-prod-frontend, defaultroute_name(<repo>-vanity-url)bcgov/actions-openshift/route-tlsto a tag or SHA, not@mainpromote/ other post-deploy jobs stillneeds: [deploy-prod]so an expired vanity cert fails Merge after the app has rolledprodenvironment table rows forTLS_CERTIFICATE,TLS_PRIVATE_KEY,TLS_CA_CERTIFICATE,VANITY_URL; Entrust mapping (leaf / key / issuing CA only; no roots, no CSR); PEMs are not workflow_dispatch inputs${NAME}-${ZONE}.${DOMAIN}) aloneAdditional context
Uninterested consumers: set three
prodsecrets + hostname var, ignore the rest. Every prod releaseoc applys the same Route name (update, not a second object). GitHub cannot trigger on secret edits; rotation is “paste new PEMs, next prod ship” or re-run only that job (secrets re-read).Do not make
workflow_dispatchthe default story. Do not pass private keys as dispatch inputs (plaintext on the run). Skip-if-empty is the switch: FAM-style apps always set secrets; most quickstart clones never do.Expired cert should fail the job (vanity SSL is already dead). Platform cluster hostname is unaffected.
Call sketch (only runs when the cert secret is present):
Note: GitHub
if: secrets.*can be awkward (empty vs unset). Implement the skip so the job is skipped, not failed, when the vanity cert is absent. Verify that in a clone with no TLS secrets.