- Find a place for the new fields. Perhaps something like spec.deploymentDefaults would be a better home than top-level spec? Think of a name generic enough to:
- allow adding additional fields in the future (e.g. DeploymentSpec currently also contains hostAliases which could also use such default top-level setting)
- be consistent with SecuredCluster if we also add such fields to it (now or eventually)
- Add the new fields to the schema
- nodeSelector
- tolerations
- pinToNodes: {None|InfraRole}
- the former value is the default and is a no-op
- the latter acts as the following default for the other ones:
nodeSelector:
node-role.kubernetes.io/infra: ""
tolerations:
- key: node-role.kubernetes.io/infra
value: reserved
effect: NoSchedule
- key: node-role.kubernetes.io/infra
value: reserved
effect: NoExecute - background discussion
- Change translator code to take them into account in addition to the component-specific deployment specs; add tests
- [Optional] For consistency also do something similar to SecuredCluster schema/translator
- Provide a high-level description for docs team