Deadlocks while ensuring resources
When transitioning from a version of the operator that deployed DeploymentConfig -> Deployment, I observed the DrupalSites stuck in this status:
status:
conditions:
- lastTransitionTime: "2021-02-24T14:55:48Z"
status: "True"
type: Installed
- lastTransitionTime: "2021-03-11T18:33:59Z"
message: 'k8sAPIClientError: %v: for PHP-FPM CM: k8sAPIClientError: Failed to
roll out new deployment while updating the PHP-FPM configMap (deployment not
found): Deployment.apps "drupal-test-ideasquare" not found'
reason: k8sAPIClientError
status: "False"
type: Ready
I deleted the DeploymentConfig, but the Deployment wasn't being created. On closer inspection, it turns out the Deployment is only created after the configmap has been ensured: https://gitlab.cern.ch/drupal/paas/drupalsite-operator/-/blob/master/controllers/drupalsite_resources.go#L161
The serial logic creates deadlocks. All resources need to be ensured in the same reconciliation.