Space Helm Chart Reference

This reference provides detailed documentation on the Upbound Space Helm chart. This Helm chart contains configuration values for installation, configuration, and management of an Upbound Space deployment.

KeyTypeDefaultDescription
accountstring"notdemo"The Upbound organization this installation is associated with.
api.extraVolumeslist[]Additional volumes to be added to the API pods.
api.insecureboolfalseDisable TLS at the endpoints
api.podAnnotationsobject{}Annotations to be added to the API pods.
api.podLabelsobject{}Labels to be added to the API pods.
api.podSecurityContextobject{}Pod security context for the API pods.
api.prometheus.podMonitor.enabledboolfalseThis enables the PodMonitor for the spaces API deployment.
api.prometheus.podMonitor.intervalstring"30s"The interval at which the PodMonitor scrapes metrics.
api.proxy.commandlist[]Command to run for the API proxy container.
api.proxy.extraArgslist[]Additional arguments to pass to the API proxy container.
api.proxy.extraEnvlist[]Additional environment variables to pass to the API proxy container.
api.proxy.extraVolumeMountslist[]Additional volume mounts to pass to the API proxy container.
api.proxy.image.pullPolicystring"IfNotPresent"Image pull policy for the API proxy container image.
api.proxy.image.repositorystring"hyperspace"Repository for the API proxy container image.
api.proxy.image.tagstring""Tag for the API proxy container image.
api.proxy.resources.limits.cpustring"1000m"CPU limit for the API proxy container.
api.proxy.resources.limits.memorystring"200Mi"Memory limit for the API proxy container.
api.proxy.resources.requests.cpustring"100m"CPU request for the API proxy container.
api.proxy.resources.requests.memorystring"50Mi"Memory request for the API proxy container.
api.proxy.service.api.portint8443Port for the API proxy API service.
api.proxy.service.metrics.portint8085Port for the API proxy metrics service.
api.proxy.service.typestring"ClusterIP"Type for the API proxy service.
api.replicaCountint1Number of replicas for the spaces API deployment.
api.secretRefs.tlsSecretNamestring"spaces-api-cert"Name of the secret containing the TLS Certificate for the API.
api.secretRefs.tokenSigningstring"cert-token-signing-gateway"Name of the secret containing the Certificate Authority for the spaces API, used to sign tokens for control plane kubeconfigs.
api.serviceAccount.annotationsobject{}Annotations to be added to the service account used by the spaces API deployment.
api.serviceAccount.createbooltrueWhether to create a service account for the spaces API deployment.
api.serviceAccount.namestring"mxe-api"Name of the service account used by the spaces API deployment.
authentication.hubIdentitiesbooltrueThis enables respecting built in Kubernetes identities (clientcertificate, managed kubernetes OIDC, Kubernetes Groups, etc) specified within the Connected Space’s hub.
authentication.structuredConfigstring""Enables consumption of JWT Authenticators via Authentication Configuration per https://kubernetes.io/docs/reference/access-authn-authz/authentication/#using-authentication-configuration
The below property takes the name of a configmap that contains a structured authentication configuration.
authorization.hubRBACbooltrueThis enables respecting built in Kubernetes Roles and RoleBindings for the resources included in the Space’s installation.
billing.enabledboolfalseThis enables billing services.
billing.storage.aws.bucketstring""AWS bucket name. See billing.storage.secretRef for authentication. Required if billing.storage.provider=aws.
billing.storage.aws.endpointstring""AWS endpoint.
billing.storage.aws.regionstring""AWS region. Required if billing.storage.provider=aws.
billing.storage.aws.tls.“ca.crt”boolfalseSee billing.storage.secretRef.
Set to true if the corresponding key is defined in the secret referenced by billing.storage.secretRef.name.
billing.storage.aws.tls.“tls.crt”boolfalseSee billing.storage.secretRef.
Set to true if the corresponding key is defined in the secret referenced by billing.storage.secretRef.name.
billing.storage.aws.tls.“tls.key”boolfalseSee billing.storage.secretRef.
Set to true if the corresponding key is defined in the secret referenced by billing.storage.secretRef.name.
billing.storage.aws.tls.alpnProtocolslist[]List of Application Layer Protocol Negotiation (ALPN) to use for the AWS endpoint.
billing.storage.aws.tls.verifyCertificatebooltrueWhether to verify the certificate for the AWS endpoint.
billing.storage.aws.tls.verifyHostnamebooltrueWhether to verify the hostname for the AWS endpoint.
billing.storage.azure.connectionStringstring""Connection string for the Azure storage account.
billing.storage.azure.containerstring""Azure container name. Required if billing.storage.provider=azure.
billing.storage.azure.endpointstring""Azure endpoint.
billing.storage.azure.storageAccountstring""Azure storage account name.
billing.storage.gcp.bucketstring""GCP gcs bucket name. Required if billing.storage.provider=gcp.
billing.storage.gcp.tls.“ca.crt”boolfalseSee billing.storage.secretRef.
Set to true if the corresponding key is defined in the secret referenced by billing.storage.secretRef.name.
billing.storage.gcp.tls.“tls.crt”boolfalseSee billing.storage.secretRef.
Set to true if the corresponding key is defined in the secret referenced by billing.storage.secretRef.name.
billing.storage.gcp.tls.“tls.key”boolfalseSee billing.storage.secretRef.
Set to true if the corresponding key is defined in the secret referenced by billing.storage.secretRef.name.
billing.storage.gcp.tls.alpnProtocolslist[]Application Layer Protocol Negotiation (ALPN) to use for the GCP endpoint.
billing.storage.gcp.tls.verifyCertificatebooltrueWhether to verify the certificate for the GCP endpoint.
billing.storage.gcp.tls.verifyHostnamebooltrueWhether to verify the hostname for the GCP endpoint.
billing.storage.providerstring""The provider for the billing storage. Required if billing.enabled=true. Must be one of aws, gcp, azure
billing.storage.secretRef.namestring"billing-storage"Set to the empty string in order to use a workload identity for the billing feature. If you are configuring the billing feature with static credentials for accessing the cloud object storage, then the secret may contain any of these keys for configuring authentication:
AWS_ACCESS_KEY_ID: AWS access key ID. Used when provider is aws.
AWS_SECRET_ACCESS_KEY: AWS secret access key. Used when provider is aws.
AZURE_TENANT_ID: Azure tenant ID. Used when provider is azure.
AZURE_CLIENT_ID: Azure client ID. Used when provider is azure.
AZURE_CLIENT_SECRET: Azure client secret. Used when provider is azure.
AZURE_USERNAME: Azure username. Used when provider is azure.
AZURE_PASSWORD: Azure username. Used when provider is azure.
google_application_credentials: GCP service account key JSON. Used when provider is gcp.
The secret may also contain any of the following keys for configuring TLS. The corresponding value at billing.storage..tls. must also be set to true.
“ca.crt”: Custom CA certificate. Used when provider is aws or gcp.
“tls.crt”: Custom TLS certificate. Used when provider is aws or gcp.
“tls.key”: Custom TLS key. Used when provider is aws or gcp.
certificatesobject""Given cert-manager is a requirement for installation, certificates specifies the general configurations for the certificates required for the installation to function.
certificates.clusterResourceNamespacestring"cert-manager"Specifies the cluster resource namespace for the cert-manager installation.
https://cert-manager.io/docs/configuration/#cluster-resource-namespace
certificates.provisionbooltrueSpecifies if the chart should provision the certificate resources included in this chart. Operators can opt to provision their own certificates instead, however care should be made to ensure the certificates match the expected:
* Shared Certificate Authority
* Algorithm. (ECDSA)
certificates.space.clusterIssuerstring"spaces-selfsigned"The clusterIssuer for the space. Most certificates used at the space level are derived from this issuer.
connectobject{"agent":{"podLabels":{}}}Configurations for requests coming into the space via the connect agent.
connect.agentobject{"podLabels":{}}Connect agent related configurations.
connect.agent.podLabelsobject{}Labels that are defined on the connect agent pod. Default value is:
app: agent
controlPlanes.api.resources.limits.cpustring"2000m"CPU limit for the spaces control plane API.
controlPlanes.api.resources.requests.cpustring"100m"CPU request for the spaces control plane API.
controlPlanes.api.resources.requests.memorystring"1000Mi"Memory request for the spaces control plane API.
controlPlanes.container.mxpCharts.pullPolicystring"IfNotPresent"Image pull policy for the mxp-charts container image.
controlPlanes.container.mxpCharts.repositorystring"mxp-charts"Repository for the mxp-charts container image.
controlPlanes.container.mxpCharts.tagstring""Tag for the mxp-charts container image.
controlPlanes.container.mxpGateway.pullPolicystring"IfNotPresent"Image pull policy for the mxp-gateway container image.
controlPlanes.container.mxpGateway.repositorystring"hyperspace"Repository for the mxp-gateway container image.
controlPlanes.container.mxpGateway.tagstring""Tag for the mxp-gateway container image.
controlPlanes.container.mxpKsmConfig.pullPolicystring"IfNotPresent"Image pull policy for the mxp controller container image.
controlPlanes.container.mxpKsmConfig.repositorystring"hyperspace"Repository for the mxp controller container image.
controlPlanes.container.mxpKsmConfig.tagstring""Tag for the mxp controller container image.
controlPlanes.controller.resources.requests.cpustring"50m"CPU request for the spaces control plane controller.
controlPlanes.controller.resources.requests.memorystring"170Mi"Memory request for the spaces control plane controller.
controlPlanes.coredns.resources.limits.cpustring"50m"CPU limit for the spaces control plane CoreDNS pod.
controlPlanes.coredns.resources.limits.memorystring"50Mi"Memory limit for the spaces control plane CoreDNS pod.
controlPlanes.coredns.resources.requests.cpustring"10m"CPU request for the spaces control plane CoreDNS pod.
controlPlanes.coredns.resources.requests.memorystring"25Mi"Memory request for the spaces control plane CoreDNS pod.
controlPlanes.etcd.persistence.sizestring"5Gi"Size of the control plane’s etcd PVCs.
controlPlanes.etcd.persistence.storageClassNamestring""StorageClass name for control plane’s etcd PVCs.
controlPlanes.etcd.resources.limits.cpustringnilCPU limit for the spaces control plane etcd pod.
controlPlanes.etcd.resources.limits.memorystringnilMemory limit for the spaces control plane etcd pod.
controlPlanes.etcd.resources.requests.cpustring"170m"CPU request for the spaces control plane etcd pod.
controlPlanes.etcd.resources.requests.memorystring"350Mi"Memory request for the spaces control plane etcd pod.
controlPlanes.gateway.podLabelsobject{}Labels to be added to the control plane gateway pods.
controlPlanes.gateway.portint8443Port for the control plane gateway service.
controlPlanes.gateway.resources.limitsobject{"cpu":null,"memory":null}Limits for the spaces control plane gateway pod.
controlPlanes.gateway.resources.limits.cpustringnilCPU limit for the spaces control plane gateway pod.
controlPlanes.gateway.resources.limits.memorystringnilMemory limit for the spaces control plane gateway pod.
controlPlanes.gateway.resources.requests.cpustring"10m"CPU request for the spaces control plane gateway pod.
controlPlanes.gateway.resources.requests.memorystring"25Mi"Memory request for the spaces control plane gateway pod.
controlPlanes.ha.enabledboolfalseThis enables the High Availability (HA) feature for the spaces control planes. Resulting in various control planes components being deployed in ha mode for all control planes.
controlPlanes.imagePullSecretslist[]Optional image pull secret in upbound-system namespace to be used with an authenticated registry when pulling images for workloads in the virtual clusters of ControlPlanes. If not specified, the default behavior of propagating the optional secret specified in .imagePullSecrets down to the ControlPlanes is preserved. The specified secret in upbound-system namespace will be propagated with the name upbound-system-pull-secret into the virtual cluster. NOTE: only one image pull secret is currently supported.
controlPlanes.k8sVersionstring"v1.31.0"
controlPlanes.kubeStateMetrics.resources.limits.cpustringnilCPU limit for the spaces control plane kube-state-metrics pod.
controlPlanes.kubeStateMetrics.resources.limits.memorystringnilMemory limit for the spaces control plane kube-state-metrics pod.
controlPlanes.kubeStateMetrics.resources.requests.cpustring"100m"CPU request for the spaces control plane kube-state-metrics pod.
controlPlanes.kubeStateMetrics.resources.requests.memorystring"50Mi"Memory request for the spaces control plane kube-state-metrics pod.
controlPlanes.mxpController.pod.customLabelsobject{}Custom labels to be added to the mxp-controller pod.
controlPlanes.mxpController.serviceAccount.annotationsobject{}Custom annotations to be added to the service account for the mxp-controller deployment.
controlPlanes.mxpKSMConfig.resources.limits.cpustringnilCPU limit for the spaces control plane controller.
controlPlanes.mxpKSMConfig.resources.limits.memorystringnilMemory limit for the spaces control plane controller.
controlPlanes.mxpKSMConfig.resources.requests.cpustring"100m"CPU request for the spaces control plane controller.
controlPlanes.mxpKSMConfig.resources.requests.memorystring"50Mi"Memory request for the spaces control plane controller.
controlPlanes.policies.limitRange.enabledbooltrueWhether to deploy default LimitRange policies for the control planes.
controlPlanes.sharedSecrets.pod.customLabelsobject{}Custom labels to be added to the external-secrets-operator pod in the ControlPlane host namespace.
controlPlanes.sharedSecrets.serviceAccount.customAnnotationsobject{}Custom annotations to be added to the service account for the external-secrets-operator deployment.
controlPlanes.syncer.extraSyncLabelsstring""Extra pod labels to be synced by the vcluster syncer. This is a string consisting of a comma-separated list of label keys.
controlPlanes.syncer.resources.limits.cpustring"1000m"CPU limit for the spaces control plane syncer pod.
controlPlanes.syncer.resources.limits.memorystring"1024Mi"Memory limit for the spaces control plane syncer pod.
controlPlanes.syncer.resources.requests.cpustring"20m"CPU request for the spaces control plane vcluster syncer pod.
controlPlanes.syncer.resources.requests.memorystring"150Mi"CPU request for the spaces control plane vcluster syncer pod.
controlPlanes.uxp.enableCompositionFunctionsbooltrueThis enables Composition Functions.
controlPlanes.uxp.enableDependencyVersionUpgradesboolfalseThis enables dependency version upgrades for Crossplane packages.
controlPlanes.uxp.enableEnvironmentConfigsbooltrueThis enables EnvironmentConfigs.
controlPlanes.uxp.enableProviderIdentityboolfalseThis enables the provider identity feature.
controlPlanes.uxp.enableSSAClaimsboolfalseThis enables the server-side apply for claims.
controlPlanes.uxp.enableSignatureVerificationboolfalseThis enables Crossplane Packages signature verification.
controlPlanes.uxp.enableUsagesbooltrueThis enables Usages.
controlPlanes.uxp.metrics.enabledbooltrueThis enables the metrics endpoints UXP.
controlPlanes.uxp.registryOverridestring""Override the default package registry for Crossplane images.
controlPlanes.uxp.resourcesCrossplane.limits.cpustringnilCPU limit for the spaces control plane UXP pod.
controlPlanes.uxp.resourcesCrossplane.limits.memorystringnilMemory limit for the spaces control plane UXP pod.
controlPlanes.uxp.resourcesCrossplane.requests.cpustring"370m"CPU request for the spaces control plane UXP pod.
controlPlanes.uxp.resourcesCrossplane.requests.memorystring"400Mi"Memory request for the spaces control plane UXP pod.
controlPlanes.uxp.resourcesRBACManager.limits.cpustring"50m"CPU limit for the spaces control plane UXP RBAC Manager pod.
controlPlanes.uxp.resourcesRBACManager.limits.memorystring"300Mi"Memory limit for the spaces control plane UXP RBAC Manager pod.
controlPlanes.uxp.resourcesRBACManager.requests.cpustring"25m"CPU request for the spaces control plane UXP RBAC Manager pod.
controlPlanes.uxp.resourcesRBACManager.requests.memorystring"256Mi"Memory request for the spaces control plane UXP RBAC Manager pod.
controlPlanes.uxp.serviceAccount.customAnnotationsobject{}Custom annotations to be added to the service account for the UXP deployment.
controlPlanes.uxp.xgql.enabledbooltrueWhether the xgql service should be deployed. Required for connected spaces.
controlPlanes.uxp.xgql.replicasint1Number of replicas for the xgql deployment.
controlPlanes.uxp.xgql.resources.limits.cpustring"500m"CPU limit for the spaces control plane xgql pod.
controlPlanes.uxp.xgql.resources.limits.memorystring"1Gi"Memory limit for the spaces control plane xgql pod.
controlPlanes.uxp.xgql.resources.requests.cpustring"50m"CPU request for the spaces control plane xgql pod.
controlPlanes.uxp.xgql.resources.requests.memorystring"50Mi"Memory request for the spaces control plane xgql pod.
controlPlanes.uxp.xgql.versionstring"v0.2.0-rc.0.167.gb4b3e68"The tag of the xgql image to deploy.
controlPlanes.vector.affinityobject{}Configure affinity rules for Vector Pods.
controlPlanes.vector.debugboolfalseThis enables debug mode for Vector.
controlPlanes.vector.enabledbooltrueThis enables Vector for the control plane.
controlPlanes.vector.nodeSelectorobject{}Configure a nodeSelector for Vector Pods.
controlPlanes.vector.persistence.enabledboolfalseSet enabled to true to run Vector as a statefulset with each replica backed by a persistent volume and enable disk buffers for selected sinks. When set to false, Vector is run as a deployment with memory buffers.
controlPlanes.vector.persistence.sizestring"1Gi"Size must be at least the sum of all buffer.maxSize values with overhead for other Vector data. If you define this you should also define all sink buffer.maxSize values.
controlPlanes.vector.persistence.storageClassNamestring""StorageClass name to be used for Vector’s PVCs.
controlPlanes.vector.pod.customLabelsobject{}Custom labels to be added to the vector pod.
controlPlanes.vector.replicasint1Number of replicas for the Vector deployment.
controlPlanes.vector.resources.limits.cpustringnilCPU limit for the spaces control plane Vector pod.
controlPlanes.vector.resources.limits.memorystringnilMemory limit for the spaces control plane Vector pod.
controlPlanes.vector.resources.requests.cpustring"200m"CPU request for the spaces control plane Vector pod.
controlPlanes.vector.resources.requests.memorystring"256Mi"Memory request for the spaces control plane Vector pod.
controlPlanes.vector.service.enabledboolfalseWhether to expose the Vector service.
controlPlanes.vector.serviceAccount.customAnnotationsobject{}Custom annotations to be added to the service account for the Vector deployment.
controlPlanes.vector.sinks.usage.buffer.maxEventsint500String containing max number of events to buffer in memory.
Relevant when mxp.vector.persistence.enabled=false.
controlPlanes.vector.sinks.usage.buffer.maxSizeint268435488String containing max size of disk buffer in bytes. Must fit with other buffer.maxSize values in mxp.vector.persistence.size.
Relevant when mxp.vector.persistence.enabled=true.
~256 MiB, minimum allowed
controlPlanes.vector.tolerationslist[]Configure Vector Pods to be scheduled on tainted nodes.
controlPlanes.vector.topologySpreadConstraintslist[]Configure topology spread constraints for Vector Pods. Valid for the “Aggregator” and “Stateless-Aggregator” roles.
controlPlanes.vector.versionstring"0.36.1"Version of Vector to deploy.
controller.controller.commandlist[]The command to run for the spaces controller.
controller.controller.extraArgslist[]Additional arguments to pass to the spaces controller.
controller.controller.extraEnvlist[]Additional environment variables to pass to the spaces controller.
controller.controller.extraVolumeMountslist[]Additional volume mounts to pass to the spaces controller.
controller.controller.image.pullPolicystring"IfNotPresent"The pull policy for the spaces controller image.
controller.controller.image.repositorystring"hyperspace"The repository for the spaces controller image.
controller.controller.image.tagstring""The tag for the spaces controller image.
controller.controller.podDisruptionBudget.enabledboolfalseThis enables the PodDisruptionBudget for the spaces controller deployment.
controller.controller.podDisruptionBudget.maxUnavailablestringnilThe maximum number of unavailable pods for the PodDisruptionBudget. Only one of maxUnavailable or minAvailable can be set.
controller.controller.podDisruptionBudget.minAvailablestringnilThe minimum number of available pods for the PodDisruptionBudget. Only one of maxUnavailable or minAvailable can be set.
controller.controller.resources.limits.cpustring"1000m"CPU limit for the spaces controller.
controller.controller.resources.limits.memorystring"2000Mi"Memory limit for the spaces controller.
controller.controller.resources.requests.cpustring"100m"CPU request for the spaces controller.
controller.controller.resources.requests.memorystring"500Mi"Memory request for the spaces controller.
controller.controller.service.metrics.portint8085The port for the spaces controller metrics service.
controller.controller.service.typestring"ClusterIP"
controller.controller.service.webhook.portint9443The port for the spaces controller webhook service.
controller.controller.verticalPodAutoscaler.enabledboolfalseThis enables the VerticalPodAutoscaler for the spaces controller deployment.
controller.controller.verticalPodAutoscaler.updateModestring"Auto"The mode for the VerticalPodAutoscaler.
controller.crossplane.supportedVersionslist["1.16.0-up.1","1.16.2-up.2","1.16.4-up.1","1.17.1-up.1","1.17.3-up.1","1.18.0-up.1"]List of supported Crossplane versions, will be automatically updated by the versionsController, if enabled.
controller.crossplane.versionsController.enabledbooltrueThis flag enables the versionsController. When set to true, the controller will manage Crossplane versions configmap. If disabled, default behavior will be supportedVersions will applied without automatic updates.
controller.extraVolumeslist[]Extra volumes to be added to the spaces controller pods.
controller.kcp.enabledboolfalseWhether spaces controller should be KCP aware.
controller.mxeInit.extraArgslist[]Additional arguments to pass to the spaces controller init container.
controller.mxeInit.extraEnvlist[]Additional environment variables to pass to the spaces controller init container.
controller.mxeInit.extraVolumeMountslist[]Additional volume mounts to pass to the spaces controller init container.
controller.mxeInit.image.pullPolicystring"IfNotPresent"The image pull policy for the spaces controller init container image.
controller.mxeInit.image.repositorystring"hyperspace"The repository for the spaces controller init container image.
controller.mxeInit.image.tagstring""The tag for the spaces controller init container image.
controller.podAnnotationsobject{}Annotations to be added to the spaces controller pods.
controller.podSecurityContextobject{}Pod security context for the spaces controller.
controller.prometheus.podMonitor.enabledboolfalseThis enables the PodMonitor for the spaces controller deployment.
controller.prometheus.podMonitor.intervalstring"30s"The interval at which the PodMonitor scrapes metrics.
controller.replicaCountint1Number of replicas for the spaces controller deployment.
controller.secretRefs.adminSigningstring"cert-admin-signing"Name of the secret containing the Certificate Authority for the spaces controller, used to sign tokens for control plane kubeconfigs.
controller.secretRefs.ingressCAstring"spaces-router-tls"Name of the secret containing the Ingress CA.
controller.serviceAccount.annotationsobject{}Annotations to be added to the service account used by the spaces controller deployment.
controller.serviceAccount.createbooltrueWhether to create a service account for the spaces controller deployment.
controller.serviceAccount.namestring""The name of the service account used by the spaces controller deployment.
controller.webhookInit.extraArgslist[]Additional arguments to pass to the spaces controller webhook init container.
controller.webhookInit.extraEnvlist[]Additional environment variables to pass to the spaces controller webhook init container.
controller.webhookInit.extraVolumeMountslist[]Additional volume mounts to pass to the spaces controller webhook init container.
controller.webhookInit.image.pullPolicystring"IfNotPresent"The image pull policy for the spaces controller webhook init container image.
controller.webhookInit.image.repositorystring"hyperspace"The repository for the spaces controller webhook init container image.
controller.webhookInit.image.tagstring""The tag for the spaces controller webhook init container image.
developmentobject{}Development only configurations, not for production use. @schema additionalProperties: true @schema
features.alphaobject{ … }NOTE: Alpha features are subject to removal or breaking changes without notice, and generally not considered ready for use in production. They have to be optional even if they are enabled.
features.alpha.apolloobject{ … }Configurations for the apollo deployment.
features.alpha.apollo.apiserver.commandlist[]Command for the apollo apiserver deployment.
features.alpha.apollo.apiserver.extraArgslist[]Additional arguments to be added to the apollo apiserver deployment.
features.alpha.apollo.apiserver.extraEnvlist[]Additional environment variables to be added to the apollo apiserver deployment.
features.alpha.apollo.apiserver.image.pullPolicystring"IfNotPresent"Image pull policy for the apollo apiserver image.
features.alpha.apollo.apiserver.image.repositorystring"hyperspace"Repository for the apollo apiserver image.
features.alpha.apollo.apiserver.image.tagstring""Tag for the apollo apiserver image.
features.alpha.apollo.apiserver.replicaCountint1The number of replicas for the apollo apiserver deployment.
features.alpha.apollo.apiserver.resources.limits.cpustring"1000m"CPU limit for the apollo apiserver deployment.
features.alpha.apollo.apiserver.resources.limits.memorystring"500Mi"Memory limit for the apollo apiserver deployment.
features.alpha.apollo.apiserver.resources.requests.cpustring"100m"CPU request for the apollo apiserver deployment.
features.alpha.apollo.apiserver.resources.requests.memorystring"200Mi"Memory request for the apollo apiserver deployment.
features.alpha.apollo.apiserver.service.api.portint8443Port for the apollo apiserver service.
features.alpha.apollo.apiserver.service.metrics.portint8085Port for the apollo apiserver metrics service.
features.alpha.apollo.apiserver.service.typestring"ClusterIP"Type of service for the apollo apiserver service.
features.alpha.apollo.enabledboolfalseThis enables the apollo feature.
features.alpha.apollo.podAnnotationsobject{}Annotations to be added to the apollo apiserver pods.
features.alpha.apollo.podLabelsobject{}Labels to be added to the apollo apiserver pods.
features.alpha.apollo.podSecurityContextobject{}Pod security context for the apollo deployment.
features.alpha.apollo.prometheus.podMonitor.enabledboolfalseThis enables the Prometheus pod monitor for the apollo deployment.
features.alpha.apollo.prometheus.podMonitor.intervalstring"30s"The interval at which metrics should be scraped.
features.alpha.apollo.replicaCountint1Number of replicas for the apollo apiserver deployment.
features.alpha.apollo.secretRefs.tlsSecretNamestring"spaces-apollo-cert"Name of the secret containing the apollo server’s TLS certificate.
features.alpha.apollo.serviceAccount.annotationsobject{}Annotations to be added to the apollo service account, if created.
features.alpha.apollo.serviceAccount.createbooltrueWhether to create a service account for the apollo deployment.
features.alpha.apollo.serviceAccount.namestring"mxe-apollo"The name of the service account to be created. Expected to exist if create is set to false.
features.alpha.apollo.storage.postgres.cnpgobject{ … }Configuration for the PostgreSQL cluster and PGBouncer pooler managed by CloudNativePG, only respected if create is set to true.
features.alpha.apollo.storage.postgres.cnpg.cluster.debugboolfalseSetting the cluster to log at debug level, sets up PgAudit and other useful extensions for debugging.
features.alpha.apollo.storage.postgres.cnpg.cluster.imageNamestring"ghcr.io/cloudnative-pg/postgresql:16"Image to be used for the cluster, if not specified the default image according to the CloudNativePG operator installed version will be used.
features.alpha.apollo.storage.postgres.cnpg.cluster.instancesint2Number of instances in the postgres cluster.
features.alpha.apollo.storage.postgres.cnpg.cluster.parametersobject{"max_connections":"100"}The Postgres configuration, see Postgres documentation for all available options and CloudNativePG for all allowed ones. Tune the suggested parameters as needed.
features.alpha.apollo.storage.postgres.cnpg.cluster.storage.pvcTemplateobject{}A full PVC template for the PVCs used by the cluster.
features.alpha.apollo.storage.postgres.cnpg.cluster.storage.sizestring"5Gi"The size of the PVCs for the cluster.
features.alpha.apollo.storage.postgres.cnpg.cluster.storage.storageClassstring""The storage class to use for the cluster’s PVCs.
features.alpha.apollo.storage.postgres.cnpg.poolerobject""The pooler configuration for the cluster.
features.alpha.apollo.storage.postgres.cnpg.pooler.debugboolfalseWhether the pooler should log at debug level.
features.alpha.apollo.storage.postgres.cnpg.pooler.enabledbooltrueWhether the pooler should be enabled.
features.alpha.apollo.storage.postgres.cnpg.pooler.instancesint2The number of replicas of the pooler to run.
features.alpha.apollo.storage.postgres.cnpg.pooler.parametersobject{"default_pool_size":"1",
"max_client_conn":"1000",
"max_db_connections":"0",
"max_prepared_statements":"1000"}
The pooler configuration, see PGbouncer documentation for all available options. Tune the suggested parameters as needed.
features.alpha.apollo.storage.postgres.cnpg.pooler.podTemplateobject{}The pod template for the pooler, allows configuring almost all aspects of the pooler pods.
features.alpha.apollo.storage.postgres.connectionobject""Configuration for the Apollo database connection, only respected if create is set to false.
features.alpha.apollo.storage.postgres.connection.apollo.credentialsobject{"format":"","secret":{"name":""},"user":""}The credentials for the connection from apollo server. Defaults to the one set in connection.credentials, if not set.
features.alpha.apollo.storage.postgres.connection.apollo.credentials.formatstring""The format of the credentials for the connection from apollo server. Defaults to the one set in connection.credentials.format, if not set.
features.alpha.apollo.storage.postgres.connection.apollo.credentials.secret.namestring""Name of the secret containing the specified user’s credentials. Defaults to the one set in connection.credentials.secret.name, if not set.
features.alpha.apollo.storage.postgres.connection.apollo.credentials.userstring""The user to connect from apollo server as. Defaults to the one set in connection.credentials.user, if not set.
features.alpha.apollo.storage.postgres.connection.apollo.sslmodestring""sslmode for the connection from apollo server. Defaults to the one set in connection.sslmode, if not set.
features.alpha.apollo.storage.postgres.connection.apollo.urlstring""The url for the connection from apollo server. Defaults to the one set in connection.url, if not set.
features.alpha.apollo.storage.postgres.connection.ca.namestring""Name of the secret containing the CA certificate to verify the connection with, if needed.
features.alpha.apollo.storage.postgres.connection.credentials.formatstring"pgpass"The format of the credentials, either pgpass or basicauth.
features.alpha.apollo.storage.postgres.connection.credentials.secret.namestring""Name of the secret containing the specified user’s credentials.
features.alpha.apollo.storage.postgres.connection.credentials.userstring""The user to connect to the database as.
features.alpha.apollo.storage.postgres.connection.sslmodestring"require"sslmode for the connection to the database.
features.alpha.apollo.storage.postgres.connection.syncer.credentials.formatstring""Format of the credentials for the connection from apollo syncers. Defaults to the one set in connection.credentials.format, if not set.
features.alpha.apollo.storage.postgres.connection.syncer.credentials.secret.namestring""The name of the secret containing the specified user’s credentials. If not set, a per syncer password will be generated and stored in a secret.
features.alpha.apollo.storage.postgres.connection.syncer.credentials.userstring""The user to connect from apollo syncers. If not set, a per syncer user will be created and granted the necessary permissions.
features.alpha.apollo.storage.postgres.connection.syncer.sslmodestring""sslmode for the connection from apollo syncer. Defaults to the one set in connection.sslmode, if not set.
features.alpha.apollo.storage.postgres.connection.syncer.urlstring""sslmode for the connection from apollo syncer. Defaults to the one set in connection.url, if not set.
features.alpha.apollo.storage.postgres.connection.urlstring""The url for the connection to the database. Just the hostname is required, the rest of the connection string will be built from the other fields.
features.alpha.apollo.storage.postgres.createbooltrueWhether the chart should install and handle the PostgreSQL database for Apollo using CloudNativePG, if set to true all connection configuration will be ignored.
features.alpha.apollo.syncer.debugboolfalseWhether apollo syncers should be deployed in debug mode.
features.alpha.apollo.syncer.image.pullPolicystring"IfNotPresent"Image pull policy for the apollo syncer image.
features.alpha.apollo.syncer.image.repositorystring"hyperspace"Repository for the apollo syncer image.
features.alpha.apollo.syncer.image.tagstring""Tag for the apollo syncer image.
features.alpha.apollo.syncer.metrics.enabledbooltrueWhether apollo syncers should expose metrics.
features.alpha.apollo.syncer.resources.limits.cpustring"1000m"CPU limit for the apollo syncer deployment.
features.alpha.apollo.syncer.resources.limits.memorystring"1024Mi"Memory limit for the apollo syncer deployment.
features.alpha.apollo.syncer.resources.requests.cpustring"100m"CPU request for the apollo syncer deployment.
features.alpha.apollo.syncer.resources.requests.memorystring"150Mi"Memory request for the apollo syncer deployment.
features.alpha.argocdPlugin.enabledboolfalseWhether to enable the argocd plugin feature.
features.alpha.argocdPlugin.target.externalClusterobject""The secret name and key for the kubeconfig of the external cluster. This is used by the argocd plugin to connect to the external cluster in case ArgoCD does not run in the same cluster as Spaces. If not specified, defaults to in-cluster credentials.
features.alpha.argocdPlugin.target.externalCluster.enabledboolfalseWhether to use the provided kubeconfig secret for the argocd plugin, otherwise in-cluster credentials will be used.
features.alpha.argocdPlugin.target.externalCluster.secret.keystring"kubeconfig"The key at which the kubeconfig is stored in the secret. Ignored if externalCluster.enabled is false.
features.alpha.argocdPlugin.target.externalCluster.secret.namestring"kubeconfig"The name of the secret containing the kubeconfig for the external cluster. Ignored if externalCluster.enabled is false.
features.alpha.argocdPlugin.target.secretNamespacestring"argocd"The namespace where the ArgoCD cluster secrets should be created in.
features.alpha.argocdPlugin.useUIDFormatForCTPSecretsboolfalseIf enabled, old secrets with will be deleted and recreated with the .
features.alpha.inControlPlaneOverride.enabledboolfalseThis enables the InControlPlaneOverride API to allow hierarchical configuration overrides in the control planes.
features.alpha.observability.enabledboolfalseThis enables the observability feature within this space.
Enabling observability requires OpenTelemetry Operator for Kubernetes to be installed in the cluster. See https://opentelemetry.io/docs/kubernetes/operator/
features.alpha.sharedBackup.enabledboolfalseThis enables the SharedBackup feature.
features.alpha.sharedSecrets.enabledboolfalseThis enables the shared secrets feature.
features.alpha.simulations.enabledboolfalseThis enables simulating changes to a control plane.
features.alpha.spaceBackupobject{"enabled":false}Configurations for the space backup feature.
features.alpha.spaceBackup.enabledboolfalseThis enables the space backup feature.
features.alpha.upboundPolicy.enabledboolfalseThis enables the SharedUpboundPolicy API within this space.
features.alpha.upboundRBAC.enabledboolfalseThis enables respecting Upbound Authorization management within the space. This will include new APIs for binding Objects to identities supplied by Upbound.
features.betaobject{}Beta features are on by default, but may be disabled here. Beta features are considered to be well tested, and will not be removed completely without being marked deprecated for at least two releases.
fullnameOverridestring""The full name of the chart, including the repository name.
gatewayAPIobject""Configurations for external requests coming into the space.
gatewayAPI.gatewayobject{ … }Configurations for the Gateway resource that will act as an application gateway for Spaces.
gatewayAPI.gateway.classNamestring"spaces"Specifies the GatewayClass name for the Gateway being provisioned if gatewayAPI.gateway.provision is true.
gatewayAPI.gateway.namestring"spaces"Specifies the name of the Gateway resource to be used as the parent of the spaces routes, and to be provisioned if gatewayAPI.gateway.provision is true.
gatewayAPI.gateway.provisionboolfalseSpecifies whether the helm chart should provision the Gateway resource for routing external traffic into the cluster.
gatewayAPI.hoststring"proxy.upbound-127.0.0.1.nip.io"Specifies the externally routable hostname used for routing requests to individual control planes.
gatewayAPI.insecureboolfalseDisable TLS at the endpoints
gatewayAPI.namespaceLabelsobject{}Labels that are defined on the namespace of the Envoy proxy pod. Default value is:
kubernetes.io/metadata.name: envoy-gateway-system
gatewayAPI.podLabelsobject{}Labels that are defined on the Envoy proxy pod. Default value is:
app.kubernetes.io/name: envoy
app.kubernetes.io/component: proxy
app.kubernetes.io/managed-by: envoy-gateway
gatewayAPI.spacesRouterRouteobject{ … }Configurations for the TLS or HTTP route that forwards external traffic into spaces-router.
gatewayAPI.spacesRouterRoute.provisionboolfalseSpecifies whether the Helm chart should provision the TLSRoute or HTTPRoute resource (depending on how spaces-router is configured) for routing traffic to spaces-router.
imagePullSecretslist[{"name":"upbound-pull-secret"}]NOTE: only an imagePullSecret of “upbound-pull-secret” is currently supported.
ingressobject""Configurations for external requests coming into the space.
ingress.annotationsobject{}Allows setting ingress annotations for the external facing Ingress that terminates at the spaces-router deployment.
ingress.hoststring"proxy.upbound-127.0.0.1.nip.io"Specifies the externally routable hostname used for routing requests to individual control planes.
ingress.insecureboolfalseDisable TLS at the endpoints
ingress.namespaceLabelsobject{}.Labels that are defined on the namespace of ingress-nginx pod. Default value is:
kubernetes.io/metadata.name: ingress-nginx
ingress.podLabelsobject{}Labels that are defined on the ingress-nginx pod. Default value is:
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/component: controller
app.kubernetes.io/name: ingress-nginx
ingress.provisionbooltrueSpecifies whether the helm chart should create an Ingress resource for routing requests to the spaces-router.
nameOverridestring""The name of the chart.
observability.collectorsobject""Observability configuration to collect metrics and traces ( and logs in the future) from the Control Plane.
Use SharedTelemetryConfig API to configure the exporters for Control Planes and Control Plane Groups.
Control Plane telemetry collection is disabled by default and gated by the “features.alpha.observability.enabled” parameter.
observability.collectors.repositorystring"opentelemetry-collector-spaces"Repository for the OpenTelemetry collector image.
observability.collectors.resources.limits.cpustring"100m"CPU limit for the OpenTelemetry collector pod.
observability.collectors.resources.limits.memorystring"1Gi"Memory limit for the OpenTelemetry collector pod.
observability.collectors.resources.requests.cpustring"10m"CPU request for the OpenTelemetry collector pod.
observability.collectors.resources.requests.memorystring"100Mi"Memory request for the OpenTelemetry collector pod.
observability.collectors.tagstring""Tag for the OpenTelemetry collector image.
observability.spacesCollectorobject""Observability configuration to collect metric and logs from the Spaces machinery and send them to the specified exporters.
observability.spacesCollector.config.exportPipelineobject{"logs":[],"metrics":[]}The space-level OpenTelemetry collector exporter configuration.
otlphttp:
endpoint: https://otlp.eu01.nr-data.net
headers:
api-key:
observability.spacesCollector.config.exportPipeline.logslist[]List of logs exporters names.
observability.spacesCollector.config.exportPipeline.metricslist[]List of metrics exporters names.
observability.spacesCollector.config.exportersobject{"debug":null}To export observability data, configure the exporters here and update the exportPipeline to include the exporters you want to use per telemetry type.
observability.spacesCollector.config.exporters.debugstringnilThe debug exporter configuration.
observability.spacesCollector.repositorystring"opentelemetry-collector-spaces"Repository for the space-level OpenTelemetry collector image.
observability.spacesCollector.resources.limits.cpustring"100m"CPU limit for the space-level OpenTelemetry collector pod.
observability.spacesCollector.resources.limits.memorystring"1Gi"Memory limit for the space-level OpenTelemetry collector pod.
observability.spacesCollector.resources.requests.cpustring"10m"CPU request for the space-level OpenTelemetry collector pod.
observability.spacesCollector.resources.requests.memorystring"100Mi"Memory request for the space-level OpenTelemetry collector pod.
observability.spacesCollector.tagstring""Tag for the space-level OpenTelemetry collector image.
registrystring"xpkg.upbound.io/spaces-artifacts"Specifies the registry where the containers used in the spaces deployment are served from.
routerobject""Configurations for the space router deployment.
router.controlPlane.commandlist[]The command to run for the router’s envoy control plane.
router.controlPlane.extraArgslist[]Additional arguments to pass to the router’s envoy control plane.
router.controlPlane.extraEnvlist[]Additional environment variables to pass to the router’s envoy control plane.
router.controlPlane.extraVolumeMountslist[]Additional volume mounts to pass to the router’s envoy control plane.
router.controlPlane.image.pullPolicystring"IfNotPresent"The pull policy for the router’s envoy control plane image.
router.controlPlane.image.repositorystring"hyperspace"The repository for the router’s envoy control plane image.
router.controlPlane.image.tagstring""The tag for the router’s envoy control plane image.
router.controlPlane.resources.limits.cpustring"1000m"CPU limit for the router’s envoy control plane.
router.controlPlane.resources.limits.memorystring"1000Mi"Memory limit for the router’s envoy control plane.
router.controlPlane.resources.requests.cpustring"100m"CPU request for the router’s envoy control plane.
router.controlPlane.resources.requests.memorystring"100Mi"Memory request for the router’s envoy control plane.
router.controlPlane.service.auth.portint9000The port for the router’s envoy control plane auth service.
router.controlPlane.service.grpc.portint8081The port for the router’s envoy control plane gRPC service.
router.controlPlane.service.http.portint9091The port for the router’s envoy control plane HTTP service.
router.controlPlane.service.metrics.portint8085The port for the router’s envoy control plane metrics service.
router.controlPlane.service.privateHttp.portint9092The port for the router’s envoy control plane private HTTP service.
router.extraVolumeslist[]Extra volumes to be added to the router pods.
router.hpa.enabledboolfalseThis enables the Horizontal Pod Autoscaler for the router deployment.
router.hpa.maxReplicasint5The maximum number of replicas for the Horizontal Pod Autoscaler.
router.hpa.minReplicasint1The minimum number of replicas for the Horizontal Pod Autoscaler.
router.hpa.targetCPUUtilizationPercentageint80The target CPU utilization percentage for the Horizontal Pod Autoscaler.
router.hpa.targetMemoryUtilizationPercentageint0The target memory utilization percentage for the Horizontal Pod Autoscaler.
router.insecureboolfalseDisable TLS at the endpoints
router.podLabelsobject{}Labels to be added to the router pods.
router.prometheus.podMonitor.enabledboolfalseThis enables the PodMonitor for the router deployment.
router.prometheus.podMonitor.intervalstring"30s"The interval at which the PodMonitor scrapes metrics.
router.proxy.affinityobject{}Affinity for the router’s envoy proxy.
router.proxy.extraArgslist[]Additional arguments to pass to the router’s envoy proxy.
router.proxy.extraEnvlist[]Additional environment variables to pass to the router’s envoy proxy.
router.proxy.extraVolumeMountslist[]Additional volume mounts to pass to the router’s envoy proxy.
router.proxy.image.pullPolicystring"IfNotPresent"Image pull policy for the router’s envoy proxy image.
router.proxy.image.repositorystring"envoy"Repository for the router’s envoy proxy image.
router.proxy.image.tagstring"v1.26-latest"Tag for the router’s envoy proxy image.
router.proxy.nodeSelectorobject{}Node selector for the router’s envoy proxy.
router.proxy.resources.limits.cpustring"1000m"CPU limit for the router’s envoy proxy.
router.proxy.resources.limits.memorystring"200Mi"Memory limit for the router’s envoy proxy.
router.proxy.resources.requests.cpustring"100m"CPU request for the router’s envoy proxy.
router.proxy.resources.requests.memorystring"50Mi"Memory request for the router’s envoy proxy.
router.proxy.service.annotationsobject{}Annotations for the router’s envoy proxy service.
router.proxy.service.http.portint8443The port for the router’s envoy proxy HTTP service.
router.proxy.service.typestring"ClusterIP"Type for the router’s envoy proxy service.
router.proxy.tolerationslist[]Toleration for the router’s envoy proxy.
router.replicaCountint1The number of replicas for the router deployment.
router.secretRefs.adminValidatingstring"cert-admin-signing"Name of the secret containing the admin signing certificate.
router.secretRefs.gatewaySigningstring"cert-token-signing-gateway"Name of the secret containing the internal token signing certificat host: proxy.upbound-127.0.0.1.nip.ioe
router.secretRefs.tlsSecretNamestring"spaces-router-tls"Name of the secret containing the TLS Certificate for the router.
router.secretRefs.upboundIAMCABundlestring""Name of the secret containing the CA bundle for the configured UpboundIAM Issuer. This is helpful for testing when configuring against an Issuer using self-signed certificates.
router.serviceAccount.annotationsobject{}Annotations to be added to the service account used by the router deployment.
router.serviceAccount.createbooltrueWhether to create a service account for the router deployment.
router.serviceAccount.namestring""The name of the service account used by the router deployment.
securityContextobject{}Security context for system components.
spaceobject{"labels":{}}Configurations that are applied consistently across the space.
space.labelsobject{}Labels that are applied to all Deployments, Pods, Services, and StatefulSets managed by the Space.
versionstring""Overall artifact version that affects xpkgs and related components.