You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/concepts/pages/overrides.adoc
+52Lines changed: 52 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -151,6 +151,58 @@ They will *not* be applied to:
151
151
152
152
* Jobs, that are used to setup systems the product depends on e.g. create a database schema for Superset or Airflow.
153
153
154
+
[#object-overrides]
155
+
== Object overrides
156
+
157
+
Sometime you need to override Kubernetes objects other than the generated Pods, e.g. ServiceAccounts or the StatefulSet/Deployment/DaemonSet.
158
+
Object overrides allow you to override any Kubernetes object the operator creates are part of it's reconciliation loop, which basically means all objects that are created for a given stacklet.
159
+
160
+
On every Stackable CRD that get's reconciled into a set of Kubernetes objects we offer a field `.spec.objectOverrides`.
161
+
You can set it to a list of arbitrary YAML objects, which need to be valid Kubernetes objects.
162
+
163
+
For every object it creates, the operator will walk the list of overrides from top to bottom.
164
+
It will than first check if the override matches the object being created using apiVersion, kind, name and namespace (if set - doesn't need to be the case for cluster scoped objects).
165
+
If the override matches, it will be merged in the same way Pod overrides are merged, using the merge algorithm described in the {k8s-openapi-deepmerge}[k8s-openapi docs{external-link-icon}^], which basically tries to mimic the way Kubernetes merges patches onto objects.
166
+
167
+
A consequence of this is, that you can only modify objects the operator creates, and not deploy any additional arbitrary objects.
0 commit comments