1. Infrastructure Charts
  2. cluster-components

cluster-components

Deploys resources required for the cluster chart addons on the tenant cluster.

Deploys configurations for addons included in the cluster chart. Configures ExternalDNS and Cert Manager in tenant clusters.

This chart must be installed in the tenant cluster.

Prerequisites

For the ExternalDNS integration to work you need a service account with read and edit permissions for the zones you want to use.

Note that as of writing, the DNS and API server are still internal projects not yet available publicly.

Install

To install the chart:

helm install my-release oci://ghcr.io/sneakybugs/cluster-components --version 3.0.0 --values values.yaml

Assuming you have a values.yaml with your values overrides:

Upgrade

To upgrade the chart:

helm upgrade my-release oci://ghcr.io/sneakybugs/cluster-components --version 3.0.0 --values values.yaml

Assuming you have a values.yaml with your values overrides:

Uninstall

To uninstall the chart:

helm uninstall my-release

Configuration

ParameterDescriptionDefault
nameOverrideOverride chart name.""
fullnameOverrideOverride full release name.""
externalSecrets.clusterSecretStoreNameName of configured ClusterSecretStore.”management”
externalSecrets.remoteNamespaceNamespace in the remote cluster to fetch secrets from.”secrets-example”
externalSecrets.urlURL of the remote cluster Kubernetes API.https://10.1.0.10:6443
externalSecrets.serviceAccountTokenSecret.nameName of ServiceAccount token secret.”management-serviceaccount-token”
externalSecrets.serviceAccountTokenSecret.namespaceNamespace of ServiceAccount token secret.”kube-system”
externalDNSWebhook.namespaceNamespace to create and deploy ExternalDNS configurations in.”external-dns”
externalDNSWebhook.apiEndpointDNS API server endpoint.http://dns.infra.sneakybugs.com/v1
externalDNSWebhook.zonesList of zones managed by ExternalDNS[“example.com.”]
externalDNSWebhook.externalSecret.remoteKeySecret name in externalSecrets.remoteNamespace namespace in the management cluster.”external-dns”
externalDNSWebhook.externalSecret.idPropertyKey of DNS API service account ID in the remote secret.”id”
externalDNSWebhook.externalSecret.secretPropertyKey of DNS API service account secret in the remote secret.”secret”
certManager.namespaceNamespace to deploy Cert Manager resources in.”cert-manager”
certManager.stagingEnvironmentUse Let’s Encrypt staging server when true.false
certManager.clusterIssuerNameName of the created ClusterIssuer.”letsencrypt”
certManager.cloudflareEmailCloudflare email for ACME DNS challenge.”redacted”
certManager.cloudflareZonesList of DNS zones for ACME DNS challenge (without trailing dot).[“example.com”]
certManager.externalSecret.remoteKeySecret name in externalSecrets.remoteNamespace namespace in the management cluster.”cert-manager”
certManager.externalSecret.cloudflareTokenPropertyKey of Cloudflare token in the remote secret.”cloudflareToken”

Star the source on GitHub.