Reduce risks, time and costs with kubriX
An IDP often consists of several products or opensource projects. Updating those components is one thing your platform team needs to do regularly for several reasons:
- get the newest features
- get bug fixes to increase stability
- get security fixes to fulfill your vulnerability mgmt
Those updates can be time-consuming and error-prone. However, kubriX keeps your platform up-to-date and our quality checks dramatically reduce your efforts and deployment risks.
As the following real life example shows, sometimes updates can be really hard.
Recently a new version from Grafana Mimir Helm-Chart 5.5.0 was released. I don't know wether you are a person who really evaluates changelogs before updates, but also if you did read the Changelog for 5.5.0, you won't recognize any breaking changes.
However, the first time you would probably recognize a problem is that your Grafana Mimir ArgoCD application stays OutOfSync forever. If you take a closer look to the diff, you will see:
green (right side) is desired state, left is current state.
You then probably ask yourself and your team mates why the hack this app doesn't sync anymore. Are there some conflicts with another app overriding this configuration? Is the Grafana Agent Operator overriding the GrafanaAgent instance? Is your GrafanaAgent CRD not compatible with this new GrafanaAgent after update? Where is this CRD defined? Do I need to have a look at new sync options ArgoCD provides (and they provide a lot of them)?
Believe me, this problem will take you hours even though you are very experiences, unless you have the right guess in the first place.
The problem was, that the GrafanaAgent CRD supports the attribute topologySpreadConstraints
, but the indentation in the GrafanaAgent CR was wrong in Mimir 5.5.0. So it was not compliant to the GrafanaAgent CRD spec.
However, why did ArgoCD just show a OutOfSync problem? This is actually an open issue in ArgoCD.
When you apply the manifests manually, you would see
Error from server (BadRequest): error when creating "STDIN": GrafanaAgent in version "v1alpha1" cannot be handled as a GrafanaAgent: strict decoding error: unknown field "spec.containers[1].topologySpreadConstraints"
and indeed topologySpreadConstraints is not a valid attribute inside containers attribute.
The benefits of kubriX
We do those update tests for you already and will check already lots of things what otherwise your platform team needs to do. Only when our quality gates show a green light we integrate those new versions in our kubriX platform.
When we recognize problems like this above, we will open an issue on the original upstream project and help to solve this problem together with the maintainers.
Only for this problem above you will save at least 3-4 days updates, troubleshooting, communication with the community, and fixing the updates.
You can see our real life tests and investigations in this renovate PR