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 TalosConfig ¶
type TalosConfig 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
}
TalosConfig represents the Talos scaffolding configuration.
type TalosGenerator ¶
type TalosGenerator struct{}
TalosGenerator generates the Talos directory structure.
func NewTalosGenerator ¶
func NewTalosGenerator() *TalosGenerator
NewTalosGenerator creates a new TalosGenerator.
func (*TalosGenerator) Generate ¶
func (g *TalosGenerator) Generate( model *TalosConfig, opts yamlgenerator.Options, ) (string, error)
Generate creates the Talos patches directory structure. The model parameter contains the patches directory path. Returns the generated directory path and any error encountered.