#12142 Move OpenShift apps from deploymentconfig to deployment
Opened 2 months ago by kevin. Modified a month ago

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

2 months ago

Metadata Update from @phsmoura:
- Issue priority set to: Waiting on Assignee (was: Needs Review)
- Issue tagged with: medium-trouble, ops

2 months ago

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

Log in to comment on this ticket.

Metadata
Boards 1
ops Status: Backlog