OpenShift is going to be dropping deploymentconfig at some point in favor of the vanilla k8s deployment
So, we need to migrate our apps away from deploymentconfig and to deployment.
List of apps using deploymentconfig:
./roles/openshift-apps/asknot/files/deploymentconfig.yml ./roles/openshift-apps/blockerbugs/templates/deploymentconfig.yml ./roles/openshift-apps/bodhi/templates/deploymentconfig.yml ./roles/openshift-apps/bugzilla2fedmsg/templates/deploymentconfig.yml ./roles/openshift-apps/compose-tracker/templates/deploymentconfig.yml ./roles/openshift-apps/coreos-cincinnati/templates/deploymentconfig.yml ./roles/openshift-apps/coreos-koji-tagger/templates/deploymentconfig.yml ./roles/openshift-apps/coreos-ostree-importer/templates/deploymentconfig.yml ./roles/openshift-apps/datagrepper/templates/deploymentconfig.yml ./roles/openshift-apps/datanommer/templates/deploymentconfig.yml ./roles/openshift-apps/discourse2fedmsg/templates/deploymentconfig.yml ./roles/openshift-apps/elections/files/deploymentconfig.yml ./roles/openshift-apps/fasjson/templates/deploymentconfig.yml ./roles/openshift-apps/fedocal/files/deploymentconfig.yml ./roles/openshift-apps/fedora-ostree-pruner/templates/deploymentconfig.yml ./roles/openshift-apps/fedora-packages-static/templates/deploymentconfig.yml ./roles/openshift-apps/flask-oidc-dev/templates/deploymentconfig.yml ./roles/openshift-apps/flatpak-indexer/templates/deploymentconfig.yml ./roles/openshift-apps/greenwave/templates/deploymentconfig.yml ./roles/openshift-apps/ipsilon-website/templates/deploymentconfig.yml ./roles/openshift-apps/kerneltest/files/deploymentconfig.yml ./roles/openshift-apps/mdapi/files/deploymentconfig.yml ./roles/openshift-apps/messaging-bridges/files/deploymentconfig.yml ./roles/openshift-apps/monitor-dashboard/templates/deploymentconfig.yml ./roles/openshift-apps/monitor-gating/templates/deploymentconfig.yml ./roles/openshift-apps/noggin/templates/deploymentconfig.yml ./roles/openshift-apps/oraculum/templates/deploymentconfig.yml ./roles/openshift-apps/release-monitoring/files/deploymentconfig.yml ./roles/openshift-apps/testdays/templates/deploymentconfig.yml ./roles/openshift-apps/the-new-hotness/templates/deploymentconfig.yml ./roles/openshift-apps/toddlers/templates/deploymentconfig.yml ./roles/openshift-apps/transtats/files/deploymentconfig.yml ./roles/openshift-apps/waiverdb/templates/deploymentconfig.yml ./roles/openshift-apps/zezere/templates/deploymentconfig.yml ./roles/openshift-apps/fmn/templates/deploymentconfig.yml ./roles/openshift-apps/badges/templates/deploymentconfig.yml ./roles/openshift-apps/easyfix/templates/deploymentconfig.yml ./roles/openshift-apps/maubot/files/deploymentconfig.yml ./roles/openshift-apps/mirrormanager/templates/deploymentconfig.yml ./roles/openshift-apps/kanban/templates/deploymentconfig.yml ./roles/openshift-apps/poddlers/templates/deploymentconfig.yml ./roles/openshift-apps/webhook2fedmsg/templates/deploymentconfig.yml
We don't have to do them all at once, but we should try and make steady progress on them.
A few other groups should be involved: QE, CoreOS, etc.
Metadata Update from @phsmoura: - Issue tagged with: medium-gain
Metadata Update from @phsmoura: - Issue priority set to: Waiting on Assignee (was: Needs Review) - Issue tagged with: medium-trouble, ops
Here's some documentation: - https://access.redhat.com/articles/7041372 - https://docs.openshift.com/container-platform/4.13/applications/deployments/what-deployments-are.html#deployments-comparing-deploymentconfigs_what-deployments-are
Reading those I see two possible migration issues:
deployments don't support more triggers than the ConfigChange. We usually have triggers on ImageChange: when a new image is built, a rollout is triggered. But this use case seems so natural that I would be surprised if there was no way to do it without DeploymentConfigs.
deployments don't support lifecycle hooks. We've used those in a few apps to upgrade the database if necessary during an update. What's the recommended way to do that without DeploymentConfigs?
Oh, apparently the upgrade can be done with Deployments only. Maybe they were talking about other lifecycle hooks? Nevermind.
Well, it doesn't look like it's in the k8s object actually. We'll have to test this.
I've already migrated Koschei, see commit 99a62cc. Triggers on image change are not supported and I had to replace them with explicit deployment rollouts in manual playbooks, see e9993b5
I thought you could use annotations for image changes:
https://docs.openshift.com/container-platform/4.16/openshift_images/triggering-updates-on-imagestream-changes.html
Log in to comment on this ticket.