Commit e80f892
authored
pkg/configmap: sort configmap data by key when loading bundle (#1630)
This functionality is used by OLMv0 to construct an `api.Bundle` object
that is needed to create install plan steps, which are eventually put
into the installplan.status.plan field. It is important to have
deterministic ordering of slice fields in Kubernetes APIs to avoid
constant re-reconciliation and/or false positive change detection.
Specifically in the case of InstallPlan steps, the order of the steps
does have _some_ semantic requirements (CSV, then CRDs, then everything
else). The problem is that if "everything else" is in a random order,
the order of the resulting steps will still have non-determinism.
If we have deterministic order of steps, OLM may be able to resolve a
class of bugs related to unnecessary creation of multiple install plans
that would otherwise be identical.
Signed-off-by: Joe Lanford <[email protected]>1 parent fe65d05 commit e80f892
2 files changed
+11
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
68 | 70 | | |
69 | 71 | | |
70 | 72 | | |
71 | | - | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
72 | 76 | | |
73 | 77 | | |
74 | 78 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
66 | 68 | | |
67 | 69 | | |
68 | 70 | | |
| |||
167 | 169 | | |
168 | 170 | | |
169 | 171 | | |
170 | | - | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
171 | 175 | | |
172 | 176 | | |
173 | 177 | | |
| |||
0 commit comments