Parameters

The parent key for all of the following parameters is cloudscale_loadbalancer_controller.

namespace

type

string

default

appuio-cloudscale-loadbalancer-controller

The namespace in which to deploy this component.

manifest_version

type

string

default

${cloudscale_loadbalancer_controller:images:cloudscale_loadbalancer_controller:tag}

The version of the upstream kustomize manifest to use.

Defaults to the cloudscale_loadbalancer_controller image tag.

kustomize_input

type

dict

default
namespace: ${cloudscale_loadbalancer_controller:namespace}

Additional input for kustomize can be specified here.

Injects the component namespace into the kustomize build by default.

secrets

type

dict

default

{}

example
cloudscale-api-token:
  stringData:
    token: notsosecret

A list of secrets to be made available to the component. The dictionary keys are the secret names, and the values are the secret manifests.

loadbalancers

type

dict

default

{}

example
api:
  spec:
    _floatingIPAddresses:
      default:
        address: 192.0.2.100
        prefixlength: 32
      partial: (1)
        address: ""
        prefixlength: 128
    _pools:
      https:
        frontend:
          port: 443
        backend:
          nodeSelector:
            matchLabels:
              node-role.kubernetes.io/infra: ""
          port: 443
          healthMonitor:
            type: TCP
1 Skipped by the rendering logic because address is "".

Allows specifying load balancers. The dictionary keys are the load balancer names, and the values are the load balancer manifests.

.spec._pools allows defining the load balancer pool configurations that can be overridden in the hierarchy. The .spec._pools dictionary keys are used as the pool names while the values are the pool configurations. .spec._pools are merged into the upstream .spec.pools configurations.

.spec._floatingIPAddresses allows defining floating addresses that can be overridden and customized in the hierarchy. The .spec._floatingIPAddresses keys are ignored. Entries whose value isn’t an object and entries whose .address is null or "" are skipped. Other malformed entries may cause a compilation error. Values are rendered as %(address)s/%(prefixlength)d for field cidr in spec.floatingIPAddresses without validating that the resulting string is a valid floating IP in CIDR notation. .spec._floatingIPAddresses is merged into the provided .spec.floatingIPAddresses and duplicates are removed. The component doesn’t guarantee any particular entry order for the final .spec.floatingIPAddresses.

images

type

dict

default

See class/defaults.yml

A list of images to be used by the component.

extra_env

type

dict

default
cloudscale_loadbalancer_controller: {}
example
cloudscale_loadbalancer_controller:
  CLOUDSCALE_API_TOKEN:
    secretKeyRef:
      name: cloudscale-api-token
      key: token

A list of environment variables to be injected into the containers.

Can be used to inject the required CLOUDSCALE_API_TOKEN environment variable.

resources

type

dict

default
cloudscale_loadbalancer_controller:
  requests:
    cpu: 10m
    memory: 32Mi
  limits:
    cpu: null
    memory: 128Mi

Allows customizing the resource requests and limits for the component.

Example

extra_env:
  cloudscale_loadbalancer_controller:
    CLOUDSCALE_API_TOKEN:
      secretKeyRef:
        name: cloudscale-api-token
        key: token

secrets:
  cloudscale-api-token:
    stringData:
      token: notsosecret

loadbalancers:
  api:
    spec:
      _pools:
        https:
          frontend:
            port: 443
          backend:
            nodeSelector:
              matchLabels:
                node-role.kubernetes.io/infra: ""
            port: 443
            healthMonitor:
              type: TCP