KFDDistribution - Distribution Only Cluster Schema
This document explains the full schema for the kind: KFDDistribution for the furyctl.yaml file used by furyctl. This configuration file will be used to deploy the SIGHUP Distribution modules on top of an existing Kubernetes cluster.
An example configuration file can be created by running the following command:
furyctl create config --kind KFDDistribution --version v1.29.4 --name example-cluster
Replace the version with your desired version of KFD.
Properties
| Property | Type | Required |
|---|---|---|
| apiVersion | string | Required |
| kind | string | Required |
| metadata | object | Required |
| spec | object | Required |
Description
KFD modules deployed on top of an existing Kubernetes cluster.
.apiVersion
Constraints
pattern: the string must match the following regular expression:
^kfd\.sighup\.io/v\d+((alpha|beta)\d+)?$
.kind
Constraints
enum: the value of this property must be equal to one of the following string values:
| Value |
|---|
"KFDDistribution" |
.metadata
Properties
| Property | Type | Required |
|---|---|---|
| name | string | Required |
.metadata.name
Description
The name of the cluster. It will also be used as a prefix for all the other resources created.
Constraints
maximum length: the maximum number of characters for this string is: 56
minimum length: the minimum number of characters for this string is: 1
.spec
Properties
| Property | Type | Required |
|---|---|---|
| distribution | object | Required |
| distributionVersion | string | Required |
| plugins | object | Optional |
.spec.distribution
Properties
| Property | Type | Required |
|---|---|---|
| common | object | Optional |
| customPatches | object | Optional |
| kubeconfig | string | Required |
| modules | object | Required |
.spec.distribution.common
Properties
| Property | Type | Required |
|---|---|---|
| nodeSelector | object | Optional |
| provider | object | Optional |
| registry | string | Optional |
| relativeVendorPath | string | Optional |
| tolerations | array | Optional |
Description
Common configuration for all the distribution modules.
.spec.distribution.common.nodeSelector
Description
The node selector to use to place the pods for all the KFD modules. Follows Kubernetes selector format. Example: node.kubernetes.io/role: infra.
.spec.distribution.common.provider
Properties
| Property | Type | Required |
|---|---|---|
| type | string | Required |
.spec.distribution.common.provider.type
Description
The provider type. Don't set. FOR INTERNAL USE ONLY.
.spec.distribution.common.registry
Description
URL of the registry where to pull images from for the Distribution phase. (Default is registry.sighup.io/fury).
NOTE: If plugins are pulling from the default registry, the registry will be replaced for the plugin too.
.spec.distribution.common.relativeVendorPath
Description
The relative path to the vendor directory, does not need to be changed.
.spec.distribution.common.tolerations
Properties
| Property | Type | Required |
|---|---|---|
| effect | string | Required |
| key | string | Required |
| operator | string | Optional |
| value | string | Optional |
Description
An array with the tolerations that will be added to the pods for all the KFD modules. Follows Kubernetes tolerations format. Example:
- effect: NoSchedule
key: node.kubernetes.io/role
value: infra
.spec.distribution.common.tolerations.effect
Constraints
enum: the value of this property must be equal to one of the following string values:
| Value |
|---|
"NoSchedule" |
"PreferNoSchedule" |
"NoExecute" |
.spec.distribution.common.tolerations.key
Description
The key of the toleration
.spec.distribution.common.tolerations.operator
Constraints
enum: the value of this property must be equal to one of the following string values:
| Value |
|---|
"Exists" |
"Equal" |
.spec.distribution.common.tolerations.value
Description
The value of the toleration
.spec.distribution.customPatches
Properties
| Property | Type | Required |
|---|---|---|
| configMapGenerator | array | Optional |
| images | array | Optional |
| patches | array | Optional |
| patchesStrategicMerge | array | Optional |
| secretGenerator | array | Optional |
.spec.distribution.customPatches.configMapGenerator
Properties
| Property | Type | Required |
|---|---|---|
| behavior | string | Optional |
| envs | array | Optional |
| files | array | Optional |
| literals | array | Optional |
| name | string | Required |
| namespace | string | Optional |
| options | object | Optional |
.spec.distribution.customPatches.configMapGenerator.behavior
Description
The behavior of the configmap
Constraints
enum: the value of this property must be equal to one of the following string values:
| Value |
|---|
"create" |
"replace" |
"merge" |
.spec.distribution.customPatches.configMapGenerator.envs
Description
The envs of the configmap
.spec.distribution.customPatches.configMapGenerator.files
Description
The files of the configmap
.spec.distribution.customPatches.configMapGenerator.literals
Description
The literals of the configmap
.spec.distribution.customPatches.configMapGenerator.name
Description
The name of the configmap
.spec.distribution.customPatches.configMapGenerator.namespace
Description
The namespace of the configmap
.spec.distribution.customPatches.configMapGenerator.options
Properties
| Property | Type | Required |
|---|---|---|
| annotations | object | Optional |
| disableNameSuffixHash | boolean | Optional |
| immutable | boolean | Optional |
| labels | object | Optional |
.spec.distribution.customPatches.configMapGenerator.options.annotations
Description
The annotations of the configmap
.spec.distribution.customPatches.configMapGenerator.options.disableNameSuffixHash
Description
If true, the name suffix hash will be disabled
.spec.distribution.customPatches.configMapGenerator.options.immutable
Description
If true, the configmap will be immutable
.spec.distribution.customPatches.configMapGenerator.options.labels
Description
The labels of the configmap
.spec.distribution.customPatches.images
Description
Each entry should follow the format of Kustomize's images patch
.spec.distribution.customPatches.patches
Properties
| Property | Type | Required |
|---|---|---|
| options | object | Optional |
| patch | string | Optional |
| path | string | Optional |
| target | object | Optional |
.spec.distribution.customPatches.patches.options
Properties
| Property | Type | Required |
|---|---|---|
| allowKindChange | boolean | Optional |
| allowNameChange | boolean | Optional |
.spec.distribution.customPatches.patches.options.allowKindChange
Description
If true, the kind change will be allowed
.spec.distribution.customPatches.patches.options.allowNameChange
Description
If true, the name change will be allowed
.spec.distribution.customPatches.patches.patch
Description
The patch content
.spec.distribution.customPatches.patches.path
Description
The path of the patch
.spec.distribution.customPatches.patches.target
Properties
| Property | Type | Required |
|---|---|---|
| annotationSelector | string | Optional |
| group | string | Optional |
| kind | string | Optional |
| labelSelector | string | Optional |
| name | string | Optional |
| namespace | string | Optional |
| version | string | Optional |