Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(deployment): ingest version checking #2859

Merged
merged 5 commits into from
Sep 23, 2024
Merged

Conversation

theosanderson
Copy link
Member

@theosanderson theosanderson commented Sep 23, 2024

We encountered an issue during a rollout in which the config map was changed and triggered a reload of the pod [edit: actually we didn't have the reloader - so I'm not sure if that is it] before the pod itself was upgraded to the next version, causing double version bumps in staging. This avoids that by making the config map contain the loculus version that it targets and making an initContainer in the deployment that checks that this matches that expected by the deployment.

https://ingest-version-checking.loculus.org/

@theosanderson theosanderson added the preview Triggers a deployment to argocd label Sep 23, 2024
@anna-parker
Copy link
Contributor

Looks great! I see how this catches the case where we want to update the deployment before the config changes have rolled out.
However I still wonder if it will catch the case where the config changes roll out before the deployment changes. This check only runs in the init step of creating a deployment. What happens when the config is updated using reloader.stakater.com/auto? The deployment will nto be affected, the config we mounted will still get updated, however we will not perform this check as the deployment will still be running. So we will be in the same situation as before... unless maybe I miss sth?

@theosanderson
Copy link
Member Author

What happens when the config is updated using reloader.stakater.com/auto? The deployment will nto be affected, the config we mounted will still get updated, however we will not perform this check as the deployment will still be running. So we will be in the same situation as before... unless maybe I miss sth?

So two things:

(A) this would work - what the reloader basically does is to trigger a new pod to be created - so the initContainers would run again
(B) I realise (just now) ingest isn't actually tagged with the reloader! We should probably fix that!

@anna-parker
Copy link
Contributor

ah awesome! Didn't think that reloader caused initContainers to run again but you are correct!

@theosanderson theosanderson merged commit 1ebcdb0 into main Sep 23, 2024
15 checks passed
@theosanderson theosanderson deleted the ingest-version-checking branch September 23, 2024 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
preview Triggers a deployment to argocd
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants