Merge pull request #5762 from jackfrancis/helm-chart-clusterapi-clusterNamespace
helm: enable clusterapi namespace autodiscovery
This commit is contained in:
commit
616cfb652e
|
|
@ -224,6 +224,7 @@ $ helm install my-release autoscaler/cluster-autoscaler -f myvalues.yaml
|
|||
`cloudProvider: clusterapi` must be set, and then one or more of
|
||||
|
||||
- `autoDiscovery.clusterName`
|
||||
- or `autoDiscovery.namespace`
|
||||
- or `autoDiscovery.labels`
|
||||
|
||||
See [here](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/README.md#configuring-node-group-auto-discovery) for more details.
|
||||
|
|
@ -387,6 +388,7 @@ vpa:
|
|||
| affinity | object | `{}` | Affinity for pod assignment |
|
||||
| autoDiscovery.clusterName | string | `nil` | Enable autodiscovery for `cloudProvider=aws`, for groups matching `autoDiscovery.tags`. autoDiscovery.clusterName -- Enable autodiscovery for `cloudProvider=azure`, using tags defined in https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/azure/README.md#auto-discovery-setup. Enable autodiscovery for `cloudProvider=clusterapi`, for groups matching `autoDiscovery.labels`. Enable autodiscovery for `cloudProvider=gce`, but no MIG tagging required. Enable autodiscovery for `cloudProvider=magnum`, for groups matching `autoDiscovery.roles`. |
|
||||
| autoDiscovery.labels | list | `[]` | Cluster-API labels to match https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/README.md#configuring-node-group-auto-discovery |
|
||||
| autoDiscovery.namespace | string | `nil` | Enable autodiscovery via cluster namespace for for `cloudProvider=clusterapi` |
|
||||
| autoDiscovery.roles | list | `["worker"]` | Magnum node group roles to match. |
|
||||
| autoDiscovery.tags | list | `["k8s.io/cluster-autoscaler/enabled","k8s.io/cluster-autoscaler/{{ .Values.autoDiscovery.clusterName }}"]` | ASG tags to match, run through `tpl`. |
|
||||
| autoscalingGroups | list | `[]` | For AWS, Azure AKS or Magnum. At least one element is required if not using `autoDiscovery`. For example: <pre> - name: asg1<br /> maxSize: 2<br /> minSize: 1 </pre> For Hetzner Cloud, the `instanceType` and `region` keys are also required. <pre> - name: mypool<br /> maxSize: 2<br /> minSize: 1<br /> instanceType: CPX21<br /> region: FSN1 </pre> |
|
||||
|
|
|
|||
|
|
@ -224,6 +224,7 @@ $ helm install my-release autoscaler/cluster-autoscaler -f myvalues.yaml
|
|||
`cloudProvider: clusterapi` must be set, and then one or more of
|
||||
|
||||
- `autoDiscovery.clusterName`
|
||||
- or `autoDiscovery.namespace`
|
||||
- or `autoDiscovery.labels`
|
||||
|
||||
See [here](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/README.md#configuring-node-group-auto-discovery) for more details.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if or .Values.autoDiscovery.clusterName .Values.autoscalingGroups -}}
|
||||
{{- if or ( or .Values.autoDiscovery.clusterName .Values.autoDiscovery.namespace .Values.autoDiscovery.labels ) .Values.autoscalingGroups }}
|
||||
|
||||
To verify that cluster-autoscaler has started, run:
|
||||
|
||||
|
|
@ -8,7 +8,7 @@ To verify that cluster-autoscaler has started, run:
|
|||
|
||||
##############################################################################
|
||||
#### ERROR: You must specify values for either ####
|
||||
#### autoDiscovery.clusterName or autoscalingGroups[] ####
|
||||
#### autoDiscovery or autoscalingGroups[] ####
|
||||
##############################################################################
|
||||
|
||||
The deployment and pod will not be created and the installation is not functional
|
||||
|
|
|
|||
|
|
@ -40,14 +40,11 @@ app.kubernetes.io/name: {{ include "cluster-autoscaler.name" . | quote }}
|
|||
|
||||
|
||||
{{/*
|
||||
Return labels, including instance, name and version.
|
||||
Return labels, including instance and name.
|
||||
*/}}
|
||||
{{- define "cluster-autoscaler.labels" -}}
|
||||
{{ include "cluster-autoscaler.instance-name" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
helm.sh/chart: {{ include "cluster-autoscaler.chart" . | quote }}
|
||||
{{- if .Values.additionalLabels }}
|
||||
{{ toYaml .Values.additionalLabels }}
|
||||
|
|
@ -112,16 +109,23 @@ Return true if the priority expander is enabled
|
|||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the autodiscoveryparameters for clusterapi.
|
||||
autoDiscovery.clusterName for clusterapi.
|
||||
*/}}
|
||||
{{- define "cluster-autoscaler.capiAutodiscoveryConfig" -}}
|
||||
{{- if .Values.autoDiscovery.clusterName -}}
|
||||
{{- define "cluster-autoscaler.capiAutodiscovery.clusterName" -}}
|
||||
{{- print "clusterName=" -}}{{ tpl (.Values.autoDiscovery.clusterName) . }}
|
||||
{{- end -}}
|
||||
{{- if and .Values.autoDiscovery.clusterName .Values.autoDiscovery.labels -}}
|
||||
{{- print "," -}}
|
||||
|
||||
{{/*
|
||||
autoDiscovery.namespace for clusterapi.
|
||||
*/}}
|
||||
{{- define "cluster-autoscaler.capiAutodiscovery.namespace" -}}
|
||||
{{- print "namespace=" }}{{ .Values.autoDiscovery.namespace -}}
|
||||
{{- end -}}
|
||||
{{- if .Values.autoDiscovery.labels -}}
|
||||
|
||||
{{/*
|
||||
autoDiscovery.labels for clusterapi.
|
||||
*/}}
|
||||
{{- define "cluster-autoscaler.capiAutodiscovery.labels" -}}
|
||||
{{- range $i, $el := .Values.autoDiscovery.labels -}}
|
||||
{{- if $i -}}{{- print "," -}}{{- end -}}
|
||||
{{- range $key, $val := $el -}}
|
||||
|
|
@ -129,4 +133,28 @@ Return the autodiscoveryparameters for clusterapi.
|
|||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the autodiscoveryparameters for clusterapi.
|
||||
*/}}
|
||||
{{- define "cluster-autoscaler.capiAutodiscoveryConfig" -}}
|
||||
{{- if .Values.autoDiscovery.clusterName -}}
|
||||
{{ include "cluster-autoscaler.capiAutodiscovery.clusterName" . }}
|
||||
{{- if .Values.autoDiscovery.namespace }}
|
||||
{{- print "," -}}
|
||||
{{ include "cluster-autoscaler.capiAutodiscovery.namespace" . }}
|
||||
{{- end -}}
|
||||
{{- if .Values.autoDiscovery.labels }}
|
||||
{{- print "," -}}
|
||||
{{ include "cluster-autoscaler.capiAutodiscovery.labels" . }}
|
||||
{{- end -}}
|
||||
{{- else if .Values.autoDiscovery.namespace -}}
|
||||
{{ include "cluster-autoscaler.capiAutodiscovery.namespace" . }}
|
||||
{{- if .Values.autoDiscovery.labels }}
|
||||
{{- print "," -}}
|
||||
{{ include "cluster-autoscaler.capiAutodiscovery.labels" . }}
|
||||
{{- end -}}
|
||||
{{- else if .Values.autoDiscovery.labels -}}
|
||||
{{ include "cluster-autoscaler.capiAutodiscovery.labels" . }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{{- if or ( or .Values.autoDiscovery.clusterName .Values.autoDiscovery.labels ) .Values.autoscalingGroups }}
|
||||
{{- if or ( or .Values.autoDiscovery.clusterName .Values.autoDiscovery.namespace .Values.autoDiscovery.labels ) .Values.autoscalingGroups }}
|
||||
{{/* one of the above is required */}}
|
||||
apiVersion: {{ template "deployment.apiVersion" . }}
|
||||
kind: Deployment
|
||||
|
|
@ -99,7 +99,7 @@ spec:
|
|||
- --cluster-name={{ tpl (.Values.magnumClusterName) . }}
|
||||
{{- end }}
|
||||
{{- else if eq .Values.cloudProvider "clusterapi" }}
|
||||
{{- if or .Values.autoDiscovery.clusterName .Values.autoDiscovery.labels }}
|
||||
{{- if or .Values.autoDiscovery.clusterName .Values.autoDiscovery.labels .Values.autoDiscovery.namepace }}
|
||||
- --node-group-auto-discovery=clusterapi:{{ template "cluster-autoscaler.capiAutodiscoveryConfig" . }}
|
||||
{{- end }}
|
||||
{{- if eq .Values.clusterAPIMode "incluster-kubeconfig"}}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ autoDiscovery:
|
|||
# Enable autodiscovery for `cloudProvider=magnum`, for groups matching `autoDiscovery.roles`.
|
||||
clusterName: # cluster.local
|
||||
|
||||
# autoDiscovery.namespace -- Enable autodiscovery via cluster namespace for for `cloudProvider=clusterapi`
|
||||
namespace: # default
|
||||
|
||||
# autoDiscovery.tags -- ASG tags to match, run through `tpl`.
|
||||
tags:
|
||||
- k8s.io/cluster-autoscaler/enabled
|
||||
|
|
|
|||
|
|
@ -50,9 +50,7 @@ most likely need other command line flags. For more information you can invoke
|
|||
|
||||
## Configuring node group auto discovery
|
||||
|
||||
If you do not configure node group auto discovery, cluster autoscaler will attempt
|
||||
to match nodes against any scalable resources found in any namespace and belonging
|
||||
to any Cluster.
|
||||
You must configure node group auto discovery to inform cluster autoscaler which cluster in which to find for scalable node groups.
|
||||
|
||||
Limiting cluster autoscaler to only match against resources in the blue namespace
|
||||
|
||||
|
|
@ -454,4 +452,3 @@ here as a reference for users who might be deploying on these infrastructures.
|
|||
| IBM Cloud | `ibm-cloud.kubernetes.io/worker-id` | Used by the IBM Cloud Cloud Controller Manager to identify the node |
|
||||
| IBM Cloud | `vpc-block-csi-driver-labels` | Used by the IBM Cloud CSI driver as a target for persistent volume node affinity |
|
||||
| IBM Cloud | `ibm-cloud.kubernetes.io/vpc-instance-id` | Used when a VPC is in use on IBM Cloud |
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue