Skip to content

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

License

Notifications You must be signed in to change notification settings

amshuman-kr/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: ...

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 55.2%
  • Smarty 19.1%
  • Makefile 14.5%
  • Shell 11.2%