From 9eb599bbf8d803fc98457ae9b73293fcfdd8767d Mon Sep 17 00:00:00 2001 From: vimystic <122659254+vimystic@users.noreply.github.com> Date: Wed, 27 Nov 2024 01:30:25 -0700 Subject: [PATCH] Feat: Add node selector to instance overrides --- api/v1/cosmosfullnode_types.go | 5 +++++ api/v1/zz_generated.deepcopy.go | 7 +++++++ config/crd/bases/cosmos.strange.love_cosmosfullnodes.yaml | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/api/v1/cosmosfullnode_types.go b/api/v1/cosmosfullnode_types.go index 68a5b7e3..8ad6efd7 100644 --- a/api/v1/cosmosfullnode_types.go +++ b/api/v1/cosmosfullnode_types.go @@ -784,6 +784,11 @@ type InstanceOverridesSpec struct { // Sets an individual instance's external address. // +optional ExternalAddress *string `json:"externalAddress"` + + // NodeSelector is a selector which must be true for the pod to fit on a node. + // Selector which must match a node's labels for the pod to be scheduled on that node. + // +optional + NodeSelector map[string]string `json:"nodeSelector,omitempty"` } type DisableStrategy string diff --git a/api/v1/zz_generated.deepcopy.go b/api/v1/zz_generated.deepcopy.go index a2ea16cb..ba7defea 100644 --- a/api/v1/zz_generated.deepcopy.go +++ b/api/v1/zz_generated.deepcopy.go @@ -411,6 +411,13 @@ func (in *InstanceOverridesSpec) DeepCopyInto(out *InstanceOverridesSpec) { *out = new(string) **out = **in } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceOverridesSpec. diff --git a/config/crd/bases/cosmos.strange.love_cosmosfullnodes.yaml b/config/crd/bases/cosmos.strange.love_cosmosfullnodes.yaml index df0f8b39..6a7a1fa2 100644 --- a/config/crd/bases/cosmos.strange.love_cosmosfullnodes.yaml +++ b/config/crd/bases/cosmos.strange.love_cosmosfullnodes.yaml @@ -411,6 +411,13 @@ spec: image: description: Overrides an individual instance's Image. type: string + nodeSelector: + additionalProperties: + type: string + description: |- + NodeSelector is a selector which must be true for the pod to fit on a node. + Selector which must match a node's labels for the pod to be scheduled on that node. + type: object volumeClaimTemplate: description: Overrides an individual instance's PVC. properties: