Documentation
¶
Overview ¶
Package talosgenerator provides a generator for Talos project scaffolding.
This package creates the Talos patches directory structure required for Talos cluster configuration, including cluster-wide, control-plane, and worker patch folders.
Index ¶
Constants ¶
const KubeletServingCertApproverManifestURL = "https://raw.githubusercontent.com/alex1989hu/kubelet-serving-cert-approver/main/deploy/standalone-install.yaml"
KubeletServingCertApproverManifestURL is the URL for the kubelet-serving-cert-approver manifest. This is installed during Talos bootstrap to automatically approve kubelet serving certificate CSRs. Note: We use alex1989hu/kubelet-serving-cert-approver for Talos because it provides a single manifest URL suitable for extraManifests. For non-Talos distributions, we use postfinance/kubelet-csr-approver via Helm which offers more features and configurability. See: https://docs.siderolabs.com/kubernetes-guides/monitoring-and-observability/deploy-metrics-server/
Variables ¶
var ErrConfigRequired = errors.New("talos config is required")
ErrConfigRequired is returned when a nil config is provided.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// PatchesDir is the root directory for Talos patches.
PatchesDir string
// MirrorRegistries contains mirror registry specifications in "host=upstream" format.
// Example: ["docker.io=https://registry-1.docker.io"]
MirrorRegistries []string
// WorkerNodes is the number of worker nodes configured.
// When 0 (default), generates allow-scheduling-on-control-planes.yaml.
WorkerNodes int
// DisableDefaultCNI indicates whether to disable Talos's default CNI (Flannel).
// When true, generates a disable-default-cni.yaml patch to set cluster.network.cni.name to "none".
// This is required when using an alternative CNI like Cilium.
DisableDefaultCNI bool
// EnableKubeletCertRotation indicates whether to enable kubelet serving certificate rotation.
// When true, generates a kubelet-cert-rotation.yaml patch with rotate-server-certificates: true.
// This is required for secure metrics-server communication using TLS.
EnableKubeletCertRotation bool
// ClusterName is an optional explicit cluster name override.
// When set, generates a cluster-name.yaml patch to set cluster.clusterName.
// This name is used for the kubeconfig context (admin@<name>).
ClusterName string
}
Config represents the Talos scaffolding configuration.