Helm chart for KubeLB CCM. This is used to deploy the KubeLB CCM to a Kubernetes cluster. The CCM is responsible for propagating the load balancer configurations to the management cluster.
- Create a namespace
kubelb
for the CCM to be deployed in. - The agent expects a
Secret
with a kubeconf file namedkubelb
to access the load balancer cluster. To create such run:kubectl --namespace kubelb create secret generic kubelb-cluster --from-file=<path to kubelb kubeconf file>
. The name of secret cant be overridden using.Values.kubelb.clusterSecretName
- Update the
tenantName
in the values.yaml to a unique identifier for the tenant. This is used to identify the tenant in the manager cluster. This can be any unique string that follows lower case RFC 1123.
At this point a minimal values.yaml should look like this:
kubelb:
clusterSecretName: kubelb-cluster
tenantName: <unique-identifier-for-tenant>
Now, we can install the helm chart:
helm pull oci://quay.io/kubermatic/helm-charts/kubelb-ccm --version=v1.0.0 --untardir "kubelb-ccm" --untar
## Create and update values.yaml with the required values.
helm install kubelb-ccm kubelb-ccm --namespace kubelb -f values.yaml
Key | Type | Default | Description |
---|---|---|---|
affinity | object | {} |
|
autoscaling.enabled | bool | false |
|
autoscaling.maxReplicas | int | 10 |
|
autoscaling.minReplicas | int | 1 |
|
autoscaling.targetCPUUtilizationPercentage | int | 80 |
|
autoscaling.targetMemoryUtilizationPercentage | int | 80 |
|
extraVolumeMounts | list | [] |
|
extraVolumes | list | [] |
|
fullnameOverride | string | "" |
|
image.pullPolicy | string | "IfNotPresent" |
|
image.repository | string | "quay.io/kubermatic/kubelb-ccm" |
|
image.tag | string | "v1.0.0" |
|
imagePullSecrets | list | [] |
|
kubelb.clusterSecretName | string | "kubelb-cluster" |
|
kubelb.enableLeaderElection | bool | true |
|
kubelb.nodeAddressType | string | "InternalIP" |
|
kubelb.tenantName | string | nil |
|
nameOverride | string | "" |
|
nodeSelector | object | {} |
|
podAnnotations | object | {} |
|
podLabels | object | {} |
|
podSecurityContext.runAsNonRoot | bool | true |
|
podSecurityContext.seccompProfile.type | string | "RuntimeDefault" |
|
rbac.allowLeaderElectionRole | bool | true |
|
rbac.allowMetricsReaderRole | bool | true |
|
rbac.allowProxyRole | bool | true |
|
rbac.enabled | bool | true |
|
replicaCount | int | 1 |
|
resources.limits.cpu | string | "100m" |
|
resources.limits.memory | string | "128Mi" |
|
resources.requests.cpu | string | "100m" |
|
resources.requests.memory | string | "128Mi" |
|
securityContext.allowPrivilegeEscalation | bool | false |
|
securityContext.capabilities.drop[0] | string | "ALL" |
|
securityContext.runAsUser | int | 65532 |
|
service.port | int | 8443 |
|
service.protocol | string | "TCP" |
|
service.type | string | "ClusterIP" |
|
serviceAccount.annotations | object | {} |
|
serviceAccount.create | bool | true |
|
serviceAccount.name | string | "" |
|
serviceMonitor.enabled | bool | false |
|
tolerations | list | [] |