Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

Gardener extension to deploy reserve excess capacity pods in node pools.

License

Notifications You must be signed in to change notification settings

gardener-attic/reserve-excess-capacity

Repository files navigation

reserve-excess-capacity

Gardener extension to deploy reserve excess capacity pods in node pools.

helm chart

The chart deploys a reserve excess capacity Deployment per node pool. Reserve excess capacity deployments can be deployed for more than one node pool using the following structure in the values.

pools:
  <pool-name>:
    nodeLabels: #optional
      ...
    replicaCount: 1
    resources:
      requests:
        cpu: ...
        memory: ...

One reserve excess capacity Deployment will generated per node pool in the following way.

  • replicaCount will be used in spec.replicas
  • resources.requests will be used in spec.template.spec.container[0].resources.requests
  • nodeLabels (if supplied) will be used as key and values in spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[*] respectively (with operator: In) and as key and value in spec.template.spec.tolerations[*] respectively (with operator: Equal and effect: NoExecute).

ControllerRegistration

The gardener ControllerRegistration is generated based on the helm chart above.

The node pools can be customized by specifying a structure similar to the one above under the path spec.deployment.providerConfig.values.

I.e.

apiVersion: core.gardener.cloud/v1beta1
kind: ControllerRegistration
metadata:
  name: reserve-excess-capacity
spec:
  deployment:
    ...
    providerConfig:
      values:
        ...
        pools:
          <pool-name>:
            nodeLabels: #optional
              ...
          replicaCount: 1
          resources:
            requests:
              cpu: ...
              memory: ...