Skip to content

Commit 3d22de6

Browse files
authored
Merge pull request #31 from projectsyn/add_affinity_parameter
Support configuring affinity
2 parents 81b4367 + a922919 commit 3d22de6

File tree

6 files changed

+67
-0
lines changed

6 files changed

+67
-0
lines changed

.sync.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ docs/antora.yml:
1313
entries:
1414
- defaults
1515
- no_container_limits
16+
- affinity
1617

1718
Makefile:
1819
includes:

Makefile.additional.mk

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,8 @@ test-nolimits: test
77
.PHONY: test-default
88
test-default: instance = defaults
99
test-default: test
10+
11+
.PHONY: test-affinity
12+
test-affinity: instance = affinity
13+
test-affinity: test
14+

class/defaults.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ parameters:
1616
service_pwd: ?{vaultkv:${customer:name}/${cluster:name}/${_instance}/service_pwd}
1717
monitor_pwd: ?{vaultkv:${customer:name}/${cluster:name}/${_instance}/monitor_pwd}
1818
replicas: 2
19+
affinity: {}
1920
images:
2021
maxscale:
2122
image: ghcr.io/appuio/maxscale-docker

component/main.jsonnet

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ local deployment = kube.Deployment('maxscale') {
6060
replicas: params.replicas,
6161
template+: {
6262
spec+: {
63+
affinity: params.affinity,
6364
containers_+: {
6465
maxscale: kube.Container('maxscale') {
6566
image: params.images.maxscale.image + ':' + params.images.maxscale.tag,

docs/modules/ROOT/pages/references/parameters.adoc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,27 @@ default:: `?{vaultkv:${customer:name}/${cluster:name}/maxscale/service_pwd}`
9090
type:: string
9191
default:: `?{vaultkv:${customer:name}/${cluster:name}/maxscale/monitor_pwd}`
9292

93+
= Pod Affinity Parameters
94+
95+
By default, `affinity` is set to `{}` so the pods get no specific affinity. You can override this freely to [choose any pod affinity rules](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/).
96+
97+
[horizontal]
98+
type:: hash
99+
default:: `{}`
100+
101+
```yaml
102+
parameters:
103+
maxscale:
104+
affinity:
105+
nodeAffinity:
106+
requiredDuringSchedulingIgnoredDuringExecution:
107+
nodeSelectorTerms:
108+
- matchExpressions:
109+
- key: node-role.kubernetes.io/controlplane
110+
operator: In
111+
values:
112+
- "false"
113+
```
93114

94115
= Container Resource Parameters
95116

tests/affinity.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Overwrite parameters here
2+
3+
# parameters: {...}
4+
---
5+
parameters:
6+
_instance: maxscale
7+
facts:
8+
distribution: openshift4
9+
maxscale:
10+
affinity:
11+
nodeAffinity:
12+
requiredDuringSchedulingIgnoredDuringExecution:
13+
nodeSelectorTerms:
14+
- matchExpressions:
15+
- key: node-role.kubernetes.io/controlplane
16+
operator: In
17+
values:
18+
- "false"
19+
namespace: maxscale-test
20+
master_only_listen_address: 127.0.0.1
21+
read_write_listen_address: 127.0.0.1
22+
db1_address: db1.mygalera.test.example.org
23+
db1_port: 3307
24+
db2_address: db2.mygalera.test.example.org
25+
db2_port: 3307
26+
db3_address: db3.mygalera.test.example.org
27+
db3_port: 3307
28+
service_user: maxscale-testservice
29+
monitor_user: maxscale-testmonitor
30+
service_pwd: ?{vaultkv:${customer:name}/${cluster:name}/${_instance}/service_pwd}
31+
monitor_pwd: ?{vaultkv:${customer:name}/${cluster:name}/${_instance}/monitor_pwd}
32+
resources:
33+
limits:
34+
memory: 512Mi
35+
cpu: 1234m
36+
requests:
37+
memory: 1024Mi
38+
cpu: 123m

0 commit comments

Comments
 (0)