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
Closes#1683
Adds additional settings for the role:
`proxyProtocol` - the role will use the proxy protocol for any forwarded
traffic
`stickySessions` - the traffic will be forwarded to the same node based
on the hash of the source ip.
https://github.com/berops/claudie/blob/26a8dd8b83f2a3d7df822692f66c7884073b5350/services/ansibler/templates/conf.gotpl#L1-L25
The lb role will now have the following structure
```
loadBalancers:
roles:
- name: example-role
protocol: tcp
port: 6443
targetPort: 6443
targetPools:
- htz-kube-nodes
# added
settings:
proxyProtocol: off (default will be on)
stickySession: on. (default will be off)
```
---------
Co-authored-by: CI/CD pipeline <CI/CD-pipeline@users.noreply.github.com>
Copy file name to clipboardExpand all lines: docs/input-manifest/api-reference.md
+33-22Lines changed: 33 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,7 +49,7 @@ needs to be defined.
49
49
|`hetznerdns`|[Hetzner](#hetznerdns) DNS provider type |
50
50
|`oci`|[OCI](#oci) provider type |
51
51
|`genesiscloud`|[GenesisCloud](#genesiscloud) provider type |
52
-
52
+
53
53
-`secretRef`[SecretRef](#secretref)
54
54
55
55
Represents a Secret Reference. It has enough information to retrieve secret in any namespace.
@@ -59,7 +59,7 @@ Support for more cloud providers is in the [roadmap](https://github.com/berops/c
59
59
!!! note "For static nodepools a provider is not needed, refer to the [static section](#static) for more detailed information."
60
60
61
61
## SecretRef
62
-
62
+
63
63
SecretReference represents a Kubernetes Secret Reference. It has enough information to retrieve secret in any namespace.
64
64
65
65
-`name`
@@ -158,11 +158,11 @@ To find out how to configure OCI provider and service account, follow the instru
158
158
Fingerprint of the user-supplied private key.
159
159
160
160
-`tenancyocid`
161
-
161
+
162
162
OCID of the tenancy where `privateKey` is added as an API key
163
163
164
164
-`userocid`
165
-
165
+
166
166
OCID of the user in the supplied tenancy
167
167
168
168
-`compartmentocid`
@@ -202,15 +202,15 @@ To find out how to configure Azure provider and service account, follow the inst
202
202
Subscription ID of your subscription in Azure.
203
203
204
204
-`tenantid`
205
-
205
+
206
206
Tenant ID of your tenancy in Azure.
207
207
208
208
-`clientid`
209
209
210
210
Client ID of your client. The Claudie is design to use a service principal with appropriate permissions.
211
211
212
212
-`clientsecret`
213
-
213
+
214
214
Client secret generated for your client.
215
215
216
216
-`templates`
@@ -225,7 +225,7 @@ Collection of static and dynamic nodepool specification, to be referenced in the
225
225
-`dynamic`[Dynamic](#dynamic)
226
226
227
227
List of dynamically to-be-created nodepools of not yet existing machines, used for Kubernetes or loadbalancer clusters.
228
-
228
+
229
229
These are only blueprints, and will only be created per reference in `kubernetes` or `loadBalancer` clusters. E.g. if the nodepool isn't used, it won't even be created. Or if the same nodepool is used in two different clusters, it will be created twice.
230
230
In OOP analogy, a dynamic nodepool would be a class that would get instantiated `N >= 0` times depending on which clusters reference it.
231
231
@@ -243,29 +243,29 @@ Dynamic nodepools are defined for cloud provider machines that Claudie is expect
243
243
244
244
-`provideSpec`[Provider spec](#provider-spec)
245
245
246
-
Collection of provider data to be used while creating the nodepool.
246
+
Collection of provider data to be used while creating the nodepool.
247
247
248
248
-`count`
249
249
250
250
Number of the nodes in the nodepool. Maximum value of 255. Mutually exclusive with `autoscaler`.
251
251
252
252
-`serverType`
253
-
253
+
254
254
Type of the machines in the nodepool.
255
-
255
+
256
256
Currently, only AMD64 machines are supported.
257
257
258
258
-`machineSpec`
259
259
260
260
Further describes the selected server type, if available by the cloud provider.
261
-
261
+
262
262
-`cpuCount`: specifies the number of cpu to be used by the `serverType`
263
263
-`memory`: specifies the memory in GB to be used by the `serverType`
264
264
265
265
-`image`
266
266
267
267
OS image of the machine.
268
-
268
+
269
269
Currently, only Ubuntu 22.04 AMD64 images are supported.
270
270
271
271
-`storageDiskSize`
@@ -277,13 +277,13 @@ Dynamic nodepools are defined for cloud provider machines that Claudie is expect
277
277
The default value for this field is `50`, with a minimum value also set to `50`. This value is only applicable to compute nodes. If the disk size is set to `0`, no storage disk will be created for any nodes in the particular node pool.
Autoscaler configuration for this nodepool. Mutually exclusive with `count`.
282
282
283
283
-`labels`
284
284
285
285
Map of user defined labels, which will be applied on every node in the node pool. This field is optional.
286
-
286
+
287
287
To see the default labels Claudie applies on each node, refer to [this section](#default-labels).
288
288
289
289
-`annotations`
@@ -319,7 +319,7 @@ Provider spec is an additional specification built on top of the data from any o
319
319
Autoscaler configuration on per nodepool basis. Defines the number of nodes, autoscaler will scale up or down specific nodepool.
320
320
321
321
-`min`
322
-
322
+
323
323
Minimum number of nodes in nodepool.
324
324
325
325
-`max`
@@ -343,7 +343,7 @@ Static nodepools are defined for static machines which Claudie will not manage.
343
343
-`labels`
344
344
345
345
Map of user defined labels, which will be applied on every node in the node pool. This field is optional.
346
-
346
+
347
347
To see the default labels Claudie applies on each node, refer to [this section](#default-labels).
348
348
349
349
-`annotations`
@@ -376,7 +376,7 @@ Static node defines single static node from a static nodepool.
376
376
Secret from which private key will be taken used to SSH into the machine (as root or as a user specificed in the username attribute).
377
377
378
378
The field in the secret must be `privatekey`, i.e.
379
-
379
+
380
380
```yaml
381
381
apiVersion: v1
382
382
type: Opaque
@@ -426,7 +426,7 @@ Collection of data used to define a Kubernetes cluster.
426
426
Defines loadbalancer clusters.
427
427
428
428
- `roles`[Role](#role)
429
-
429
+
430
430
List of roles loadbalancers use to forward the traffic. Single role can be used in multiple loadbalancer clusters.
431
431
432
432
- `clusters`[Cluster-lb](#cluster-lb)
@@ -461,6 +461,17 @@ Role defines a concrete loadbalancer configuration. Single loadbalancer can have
461
461
- `targetPools`
462
462
Defines from which nodepools, nodes will be targeted by the Load Balancer
463
463
464
+
- `settings`
465
+
Optional settings that can be configured for a role
466
+
467
+
- `proxyProtocol`: Default value: `true`
468
+
469
+
Specifies whether to enable the proxy protocol. The Proxy protocol forwards connection information from the client, such as the IP address, to the target pools. The application to which the traffic is forwarded must support the proxy protocol.
470
+
471
+
- `stickySessions`: Default value: `false`
472
+
473
+
Specifies whether incoming traffic should be sent to the same node each time, rather than load balancing between available nodes. A hash of the IP is used to determine which node the traffic is routed to. <br>
474
+
464
475
## Cluster-lb
465
476
466
477
Collection of data used to define a loadbalancer cluster.
@@ -470,13 +481,13 @@ Collection of data used to define a loadbalancer cluster.
470
481
Name of the loadbalancer. The name is limited by 28 characters.
471
482
472
483
- `roles`
473
-
484
+
474
485
List of roles the loadbalancer uses.
475
486
476
487
- `dns`[DNS](#dns)
477
-
488
+
478
489
Specification of the loadbalancer's DNS record.
479
-
490
+
480
491
- `targetedK8s`
481
492
482
493
Name of the Kubernetes cluster targetted by this loadbalancer.
@@ -500,7 +511,7 @@ Collection of data Claudie uses to create a DNS record for the loadbalancer.
500
511
Name of [provider](#providers) to be used for creating an A record entry in defined DNS zone.
501
512
502
513
- `hostname`
503
-
514
+
504
515
Custom hostname for your A record. If left empty, the hostname will be a random hash.
Copy file name to clipboardExpand all lines: docs/input-manifest/example.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -379,6 +379,9 @@ spec:
379
379
# port: # Port, where traffic will be coming.
380
380
# targetPort: # Port, where loadbalancer will forward traffic to.
381
381
# targetPools: # Targeted nodes on kubernetes cluster. Specify a nodepool that is used in the targeted K8s cluster.
382
+
# settings: # Optional settings that further configures the role.
383
+
# proxyProtocol: # Turns on the proxy protocol, can be true, false. Default is true.
384
+
# stickySessions: # Turn on sticky sessions that will hash the source ip to always choose the same node to which the traffic will be forwarded to. Can be true, false. Default is false.
382
385
#
383
386
# Definition specification for loadbalancer:
384
387
#
@@ -401,10 +404,19 @@ spec:
401
404
targetPort: 6443
402
405
targetPools:
403
406
- control-htz # make sure that this nodepools is acutally used by the targeted `dev-cluster` cluster.
407
+
- name: https
408
+
protocol: tcp
409
+
port: 443
410
+
targetPort: 30143# make sure there is a NodePort service.
411
+
targetPools:
412
+
- compute-htz # make sure that this nodepools is acutally used by the targeted `dev-cluster` cluster.
0 commit comments