1
1
package k8s
2
2
3
+ import "github.com/deviceinsight/kafkactl/v5/internal"
4
+
3
5
type imagePullSecretType struct {
4
6
Name string `json:"name"`
5
7
}
@@ -10,9 +12,11 @@ type metadataType struct {
10
12
}
11
13
12
14
type specType struct {
13
- ImagePullSecrets []imagePullSecretType `json:"imagePullSecrets,omitempty"`
14
- ServiceAccountName * string `json:"serviceAccountName,omitempty"`
15
- NodeSelector * map [string ]string `json:"nodeSelector,omitempty"`
15
+ ImagePullSecrets []imagePullSecretType `json:"imagePullSecrets,omitempty"`
16
+ ServiceAccountName * string `json:"serviceAccountName,omitempty"`
17
+ NodeSelector * map [string ]string `json:"nodeSelector,omitempty"`
18
+ Affinity * map [string ]any `json:"affinity,omitempty"`
19
+ Tolerations * []internal.K8sToleration `json:"tolerations,omitempty"`
16
20
}
17
21
18
22
type PodOverrideType struct {
@@ -29,7 +33,7 @@ func (kubectl *executor) createPodOverride() PodOverrideType {
29
33
var override PodOverrideType
30
34
override .APIVersion = "v1"
31
35
32
- if kubectl .serviceAccount != "" || kubectl .imagePullSecret != "" || len (kubectl .nodeSelector ) > 0 {
36
+ if kubectl .serviceAccount != "" || kubectl .imagePullSecret != "" || len (kubectl .nodeSelector ) > 0 || len ( kubectl . affinity ) > 0 || len ( kubectl . tolerations ) > 0 {
33
37
override .Spec = & specType {}
34
38
35
39
if kubectl .serviceAccount != "" {
@@ -44,6 +48,14 @@ func (kubectl *executor) createPodOverride() PodOverrideType {
44
48
if len (kubectl .nodeSelector ) > 0 {
45
49
override .Spec .NodeSelector = & kubectl .nodeSelector
46
50
}
51
+
52
+ if len (kubectl .affinity ) > 0 {
53
+ override .Spec .Affinity = & kubectl .affinity
54
+ }
55
+
56
+ if len (kubectl .tolerations ) > 0 {
57
+ override .Spec .Tolerations = & kubectl .tolerations
58
+ }
47
59
}
48
60
49
61
if len (kubectl .labels ) > 0 || len (kubectl .annotations ) > 0 {
0 commit comments