Skip to content

KubeDirectorConfig Definition

Joel Baxter edited this page May 3, 2023 · 8 revisions

This page documents the v1beta1 KubeDirectorConfig data structure.

KubeDirectorConfig is a representation of an administrative configuration set for KubeDirector. Currently only a global configuration (affecting all KubeDirector-managed virtual clusters) is supported; that KubeDirectorConfig resource must be named "kd-global-config" and placed in the same namespace as the KubeDirector deployment.

KubeDirectorConfigSpec

Field Description
defaultStorageClassName
string
Name of the storage class to use for a role that requests persistent storage but does not specify a storage class, instead of using the K8s default storage class. Optional.
defaultServiceType
string
Name of the service type to use for a virtual cluster that does not specify a service type. May be "ClusterIP", "NodePort", or "LoadBalancer". Optional: defaults to "LoadBalancer".
nativeSystemdSupport
boolean
Whether the K8s platform natively supports systemd inside virtual cluster members, without additional action required from KubeDirector. This should be set true if K8s is running in a RHEL or CentOS environment (OS version 7.2 or later), but should usually be false for K8s in a typical "cloud" environment. Optional: defaults to false.
requiredSecretPrefix
string
A prefix that must match against a secret's name before a KubeDirectorCluster can mount that secret. Optional: if unspecified, no such check is performed.
clusterSvcDomainBase
string
The domain suffix (including the initial dot character) that is used for composing DNS names in this K8s installation. Used when informing config package scripts about member FQDNs. Optional: if unspecified, defaults to ".svc.cluster.local".
properties supported by KD v0.5.2+ below
defaultNamingScheme
string
Naming scheme used for the K8s resources created to implement a virtual cluster, if that KubeDirectorCluster does not specify a naming scheme. (See the KubeDirectorCluster docs for more details.) May be "UID" or "CrNameRole". Optional: if unspecified, defaults to "UID".
properties supported by KD v0.7.0+ below
masterEncryptionKey
string
Hex-encoded representation of a 16-byte, 24-byte, or 32-byte key used to encrypt "secret keys" values in KubeDirectorCluster role specs (using AES-GCM). See the secret-keys.md doc for more details. Cannot be modified while any KubeDirectorCluster resources exist. Optional: if unspecified, defaults to a 32-byte (64 characters when hex-encoded) key.
podLabels
string dictionary
Additional labels that will be attached to any member pod created for any KubeDirectorCluster.
podAnnotations
string dictionary
Additional annotations that will be attached to any member pod created for any KubeDirectorCluster.
serviceLabels
string dictionary
Additional labels that will be attached to any member service created for any KubeDirectorCluster.
serviceAnnotations
string dictionary
Additional annotations that will be attached to any member service created for any KubeDirectorCluster.
backupClusterStatus
boolean
Whether to enable backup and restore of KubeDirectorClusters by turning on "status backup". See the backup-and-restore.md doc for more details. Optional: defaults to false.
allowRestoreWithoutConnections
boolean
Whether, in a restore-from-backup situation, to allow automatic resumption of a KubeDirectorCluster's reconciliation even if some of its "connected" resources are missing. See the backup-and-restore.md doc for more details. Optional: defaults to false.
properties supported only on KD master-branch builds below
forceSharedMemorySizeSupport
boolean
Whether to allow setting the "sharedMemory" property in a KubeDirectorCluster role spec. This should correspond to the value of the SizeMemoryBackedVolumes feature gate on the K8s cluster. Optional. If this flag is unset, then the default behavior is to allow setting that "sharedMemory" property if and only if running on K8s version 1.22 or later, where SizeMemoryBackedVolumes is true by default.

KubeDirectorConfigStatus

Field Description
state
string
Overall state of the config. May be "creating" or "ready".
generationUID
string
A UID that changes each time the status object changes. Used internally by KubeDirector.

KubeDirectorConfig

Field Description
apiVersion
string
Must be "kubedirector.hpe.com/v1beta1".
kind
string
Must be "KubeDirectorConfig".
metadata
ObjectMeta
The metadata.name property must have the value "kd-global-config".
spec
KubeDirectorConfigSpec
status
KubeDirectorConfigStatus
Read-only. Do not specify status when creating or updating the resource. Can be read directly as a "status" sub-resource of the KubeDirectorConfig resource.