This commit is contained in:
2026-08-02 17:00:11 +03:00
commit f3a51d1681
21 changed files with 1333 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
ipam:
mode: kubernetes
routingMode: native
ipv4NativeRoutingCIDR: 10.244.0.0/16
autoDirectNodeRoutes: false
kubeProxyReplacement: true
k8sServiceHost: localhost
k8sServicePort: 7445
bpf:
masquerade: true
cgroup:
autoMount:
enabled: false
hostRoot: /sys/fs/cgroup
securityContext:
capabilities:
ciliumAgent:
- CHOWN
- KILL
- NET_ADMIN
- NET_RAW
- IPC_LOCK
- SYS_ADMIN
- SYS_RESOURCE
- DAC_OVERRIDE
- FOWNER
- SETGID
- SETUID
cleanCiliumState:
- NET_ADMIN
- SYS_ADMIN
- SYS_RESOURCE
hubble:
enabled: true
relay:
enabled: true
ui:
enabled: true
MTU: 1420
+14
View File
@@ -0,0 +1,14 @@
machine:
network:
kubespan:
enabled: true
mtu: 1420
advertiseKubernetesNetworks: true
cluster:
discovery:
enabled: true
network:
cni:
name: none
proxy:
disabled: true
+4
View File
@@ -0,0 +1,4 @@
machine:
install:
disk: /dev/sda
image: factory.talos.dev/installer/c0ad57b8eb60094dd2ebed394ae5e9dfb279c7661d6c1de5944ede4c16cbfc9d:v1.13.7
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.201/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.202/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.203/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.204/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.205/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.206/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.207/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.208/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
+12
View File
@@ -0,0 +1,12 @@
machine:
network:
interfaces:
- interface: eth0
addresses:
- 10.255.200.209/24
routes:
- network: 0.0.0.0/0
gateway: 10.255.200.1
dhcp: false
nameservers:
- 9.9.9.9
@@ -0,0 +1,27 @@
machine:
disks:
- device: /dev/sdb
partitions:
- mountpoint: /var/lib/longhorn
kubelet:
extraMounts:
- destination: /var/lib/longhorn
type: bind
source: /var/lib/longhorn
options:
- bind
- rshared
- rw
network:
kubespan:
enabled: true
mtu: 1420
advertiseKubernetesNetworks: true
cluster:
discovery:
enabled: true
network:
cni:
name: none
proxy:
disabled: true
@@ -0,0 +1,14 @@
machine:
network:
kubespan:
enabled: true
mtu: 1420
advertiseKubernetesNetworks: true
cluster:
discovery:
enabled: true
network:
cni:
name: none
proxy:
disabled: true
+8
View File
@@ -0,0 +1,8 @@
customization:
systemExtensions:
officialExtensions:
- siderolabs/iscsi-tools
- siderolabs/nfs-utils
- siderolabs/qemu-guest-agent
extraKernelArgs:
- net.ifnames=0
+392
View File
@@ -0,0 +1,392 @@
version: v1alpha1 # Indicates the schema used to decode the contents.
debug: false # Enable verbose logging to the console.
persist: true
# Provides machine specific configuration options.
machine:
type: controlplane # Defines the role of the machine within the cluster.
token: omy7ai.8zly2x1qlygu3lhu # The `token` is used by a machine to join the PKI of the cluster.
# The root certificate authority of the PKI.
ca:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJQakNCOGFBREFnRUNBaEIzVGhWTXpNM24wMmoxcWk1a3VyVzlNQVVHQXl0bGNEQVFNUTR3REFZRFZRUUsKRXdWMFlXeHZjekFlRncweU5qQTRNREl4TURFNU1EVmFGdzB6TmpBM016QXhNREU1TURWYU1CQXhEakFNQmdOVgpCQW9UQlhSaGJHOXpNQ293QlFZREsyVndBeUVBNWhBOTloYmUyWWJ0M2tnd0M2ODBSd3JOM3FzSlc3NFdheTFrCis2RWRDdFdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVSHF6dHdMNUdYOE13eVBBOApFTDVuUmRneHJzTXdCUVlESzJWd0EwRUE4WTVyVzdPdFJ3cFF5UGtENVpuOWl3bnVLYzJqczVyKy9vREF4dTl5CkZSdlRCcXp5WWdaQU9ubklBNWgvUVFaMXJFMVhrZ1dQcFBDdXhMNEZPQzd0Qmc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0KTUM0Q0FRQXdCUVlESzJWd0JDSUVJTmRZY1RGc0xEYlN5UlpXYVErU1NoWkExeHFhSVcvd1MrdkxzYVE3Zzh5SQotLS0tLUVORCBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0K
# Extra certificate subject alternative names for the machine's certificate.
certSANs: []
# # Uncomment this to enable SANs.
# - 10.0.0.10
# - 172.16.0.10
# - 192.168.0.10
# Used to provide additional options to the kubelet.
kubelet:
image: ghcr.io/siderolabs/kubelet:v1.36.2 # The `image` field is an optional reference to an alternative kubelet image.
defaultRuntimeSeccompProfileEnabled: true # Enable container runtime default Seccomp profile.
disableManifestsDirectory: true # The `disableManifestsDirectory` field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory.
# # The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list.
# clusterDNS:
# - 10.96.0.10
# - 169.254.2.53
# # The `extraArgs` field is used to provide additional flags to the kubelet.
# extraArgs:
# key: value
# extraArgs:
# key:
# - value1
# - value2
# # The `extraMounts` field is used to add additional mounts to the kubelet container.
# extraMounts:
# - destination: /var/lib/example # Destination is the absolute path where the mount will be placed in the container.
# type: bind # Type specifies the mount kind.
# source: /var/lib/example # Source specifies the source path of the mount.
# # Options are fstab style mount options.
# options:
# - bind
# - rshared
# - rw
# # The `extraConfig` field is used to provide kubelet configuration overrides.
# extraConfig:
# serverTLSBootstrap: true
# # The `KubeletCredentialProviderConfig` field is used to provide kubelet credential configuration.
# credentialProviderConfig:
# apiVersion: kubelet.config.k8s.io/v1
# kind: CredentialProviderConfig
# providers:
# - apiVersion: credentialprovider.kubelet.k8s.io/v1
# defaultCacheDuration: 12h
# matchImages:
# - '*.dkr.ecr.*.amazonaws.com'
# - '*.dkr.ecr.*.amazonaws.com.cn'
# - '*.dkr.ecr-fips.*.amazonaws.com'
# - '*.dkr.ecr.us-iso-east-1.c2s.ic.gov'
# - '*.dkr.ecr.us-isob-east-1.sc2s.sgov.gov'
# name: ecr-credential-provider
# # The `nodeIP` field is used to configure `--node-ip` flag for the kubelet.
# nodeIP:
# # The `validSubnets` field configures the networks to pick kubelet node IP from.
# validSubnets:
# - 10.0.0.0/8
# - '!10.0.0.3/32'
# - fdc7::/16
# Used to provide instructions for installations.
install:
disk: /dev/sda # The disk used for installations.
image: ghcr.io/siderolabs/installer:v1.13.7 # Allows for supplying the image used to perform the installation.
wipe: false # Indicates if the installation disk should be wiped at installation time.
grubUseUKICmdline: true # Indicates if legacy GRUB bootloader should use kernel cmdline from the UKI instead of building it on the host.
# # Look up disk using disk attributes like model, size, serial and others.
# diskSelector:
# size: 4GB # Disk size.
# model: WDC* # Disk model `/sys/block/<dev>/device/model`.
# busPath: /pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0 # Disk bus path.
# Features describe individual Talos features that can be switched on or off.
features:
diskQuotaSupport: true # Enable XFS project quota support for EPHEMERAL partition and user disks.
# KubePrism - local proxy/load balancer on defined port that will distribute
kubePrism:
enabled: true # Enable KubePrism support - will start local load balancing proxy.
port: 7445 # KubePrism port.
# Configures host DNS caching resolver.
hostDNS:
enabled: true # Enable host DNS caching resolver.
forwardKubeDNSToHost: true # Use the host DNS resolver as upstream for Kubernetes CoreDNS pods.
# # Configure Talos API access from Kubernetes pods.
# kubernetesTalosAPIAccess:
# enabled: true # Enable Talos API access from Kubernetes pods.
# # The list of Talos API roles which can be granted for access from Kubernetes pods.
# allowedRoles:
# - os:reader
# # The list of Kubernetes namespaces Talos API access is available from.
# allowedKubernetesNamespaces:
# - kube-system
# Configures the node labels for the machine.
nodeLabels:
node.kubernetes.io/exclude-from-external-load-balancers: ""
# # Provides machine specific control plane configuration options.
# # ControlPlane definition example.
# controlPlane:
# # Controller manager machine specific configuration options.
# controllerManager:
# disabled: false # Disable kube-controller-manager on the node.
# # Scheduler machine specific configuration options.
# scheduler:
# disabled: true # Disable kube-scheduler on the node.
# # Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.
# # nginx static pod.
# pods:
# - apiVersion: v1
# kind: pod
# metadata:
# name: nginx
# spec:
# containers:
# - image: nginx
# name: nginx
# # Allows the addition of user specified files.
# # MachineFiles usage example.
# files:
# - content: '...' # The contents of the file.
# permissions: 0o666 # The file's permissions in octal.
# path: /tmp/file.txt # The path of the file.
# op: append # The operation to use
# # Used to configure the machine's sysctls.
# # MachineSysctls usage example.
# sysctls:
# kernel.domainname: talos.dev
# net.ipv4.ip_forward: "0"
# net/ipv6/conf/eth0.100/disable_ipv6: "1"
# # Used to configure the machine's sysfs.
# # MachineSysfs usage example.
# sysfs:
# devices.system.cpu.cpu0.cpufreq.scaling_governor: performance
# # Configures the udev system.
# udev:
# # List of udev rules to apply to the udev system
# rules:
# - SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="44", MODE="0660"
# # Configures the logging system.
# logging:
# # Logging destination.
# destinations:
# - endpoint: tcp://1.2.3.4:12345 # Where to send logs. Supported protocols are "tcp" and "udp".
# format: json_lines # Logs format.
# logging:
# # Logging destination.
# destinations:
# - endpoint: udp://127.0.0.1:12345 # Where to send logs. Supported protocols are "tcp" and "udp".
# format: json_lines # Logs format.
# # Extra tags (key-value) pairs to attach to every log message sent.
# extraTags:
# machine: worker-1
# # Configures the kernel.
# kernel:
# # Kernel modules to load.
# modules:
# - name: btrfs # Module name.
# # Configures the seccomp profiles for the machine.
# seccompProfiles:
# - name: audit.json # The `name` field is used to provide the file name of the seccomp profile.
# # The `value` field is used to provide the seccomp profile.
# value:
# defaultAction: SCMP_ACT_LOG
# # Override (patch) settings in the default OCI runtime spec for CRI containers.
# # override default open file limit
# baseRuntimeSpecOverrides:
# process:
# rlimits:
# - hard: 1024
# soft: 1024
# type: RLIMIT_NOFILE
# # Configures the node annotations for the machine.
# # node annotations example.
# nodeAnnotations:
# customer.io/rack: r13a25
# # Configures the node taints for the machine. Effect is optional.
# # node taints example.
# nodeTaints:
# exampleTaint: exampleTaintValue:NoSchedule
# Provides cluster specific configuration options.
cluster:
id: mFOB7YKyBjmrMN-1uIf2VYSQsUVUPa57CRtr87tTzkU= # Globally unique identifier for this cluster (base64 encoded random 32 bytes).
secret: Q6QGW/pwtdhEu5Lm0E/Q/HMUrfztEqEDbKV0yCsOxxc= # Shared secret of cluster (base64 encoded random 32 bytes).
# Provides control plane specific configuration options.
controlPlane:
endpoint: https://10.255.200.201:6443 # Endpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname.
clusterName: test-cluster # Configures the cluster's name.
# Provides cluster specific network configuration options.
network:
dnsDomain: cluster.local # The domain used by Kubernetes DNS.
# The pod subnet CIDR.
podSubnets:
- 10.244.0.0/16
# The service subnet CIDR.
serviceSubnets:
- 10.96.0.0/12
# # The CNI used.
# cni:
# name: custom # Name of CNI to use.
# # URLs containing manifests to apply for the CNI.
# urls:
# - https://raw.githubusercontent.com/projectcalico/calico/v3.31.5/manifests/canal.yaml
token: ghhkqg.oba4i5k615vxxpi5 # The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster.
secretboxEncryptionSecret: c/UqkjMirsEWpF43TRXdGDYBs8YXNHnqhNQHra2wcsI= # A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
# The base64 encoded root certificate authority used by Kubernetes.
ca:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpakNDQVMrZ0F3SUJBZ0lRUHAzTWhzUHB5RTg1VEQ0Z1cxbGZSakFLQmdncWhrak9QUVFEQWpBVk1STXcKRVFZRFZRUUtFd3ByZFdKbGNtNWxkR1Z6TUI0WERUSTJNRGd3TWpFd01Ua3dOVm9YRFRNMk1EY3pNREV3TVRrdwpOVm93RlRFVE1CRUdBMVVFQ2hNS2EzVmlaWEp1WlhSbGN6QlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VICkEwSUFCTWNlOWZmYW54enlRL1pYbnBEQTgrY2kvTVBQQjk0QXY5OVE4SWhyNkhFS0J3TnI0K1FOa21MckdYankKRDlpTVZuMkJzUU5lRXNjUUIyUXNHY0FUMm8rallUQmZNQTRHQTFVZER3RUIvd1FFQXdJQ2hEQWRCZ05WSFNVRQpGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFCkZnUVUxcEtURXo2OS9PN3I2akMxbFlMTTVWeEZPTUV3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUlHaG50TTkKa0RJYUNRYlB5THdMNzFhaVVSLzdJaHdzUk1PdytHczZ3aDJTQWlFQW51T0g4aUhxVHhkY3V4S1B1dndPRnVuRQpRM3RlKzZ3bExaU0VvUE9FZjY0PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUNNaG9wN0dZNmJBL1AvbTRRUzEzc0UrbUtqd1grZzJ5NElQWTB3VDExRU1vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFeHg3MTk5cWZIUEpEOWxlZWtNRHo1eUw4dzg4SDNnQy8zMUR3aUd2b2NRb0hBMnZqNUEyUwpZdXNaZVBJUDJJeFdmWUd4QTE0U3h4QUhaQ3dad0JQYWp3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
# The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.
aggregatorCA:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJZRENDQVFhZ0F3SUJBZ0lSQUl5enBESUdaem1YNDIwYm9aNDdXeUF3Q2dZSUtvWkl6ajBFQXdJd0FEQWUKRncweU5qQTRNREl4TURFNU1EVmFGdzB6TmpBM016QXhNREU1TURWYU1BQXdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVJOdHdSckxyaXJlM3Z6MWloRFNtWS93b256OHQ2aThzRUFuUEVPLy9BM1NOQjlpSVlwCm9MNUNPbEJ2RTBWZXA5MTVOd1JrVjg2OGU4WWZXcWI3a0g1VG8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FvUXcKSFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4dwpIUVlEVlIwT0JCWUVGSFdWVXRCSXh0cnRkSkZJZzZkeUN5M0VQMXZDTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDCklRRENsR0pjQmJjclE3NUNRWjBSbVJNa0FBVjBYT0pmQlNJMjI4MW5uNkVKZ1FJZ0pna0hFNURHd2Zsc1VrcG4KWVJEMmNpRTNMQlN5cVJDdWs4ZDcweUF6SUQwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUN3Q3NkeDNDZEpEMUZmUkNiZEFFajFPMTRUK29acHJsNzZETStmMXk0R0tvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFVGJjRWF5NjRxM3Q3ODlZb1EwcG1QOEtKOC9MZW92TEJBSnp4RHYvd04walFmWWlHS2FDKwpRanBRYnhORlhxZmRlVGNFWkZmT3ZIdkdIMXFtKzVCK1V3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
# The base64 encoded private key for service account token generation.
serviceAccount:
key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBMW84WHc1N0owWk1GaWxVR25mNktqWU5ERFBaSVpLWlNyOWNCN3ZqNTRrUGsvajZVCkRhMVIrNU5CRnpKQkNreVZRWUtVUVJOWjJoTmVINm5VYk9OR1ZDdjkyVktid1Rkd2dUanZ6eHk0MzJhaHA5bXAKUmxxTENyYW14NnBVYlFGUWhJNGd3dmlHTWl6TWdEOHdtS3N6am16ckJ1Ui91YkVOaXF6S21xZ1JGSUpoblNZbQppNnRoTk04YVR1eGMrZlgvWG9xM01CeHZCYS9NY0dqSFY3MXd2TlFIc1c1MW1SME94ZWdYUVdZUW5XcDZvN0VoClpRR3BmSDl1RnBzVjJBdE8xQWdCLzVld0tySG9peEpDaFhTeHNIbytYbS9JZUNMM3BodCtMQ2NycDNNNEZybGQKT3BWaTJCaXpxTW5IaDhnVWpKdGowZ0YzWmVYcHhTNjZweDdMOXdDMjF2Y1BLdkF3aW56ZVJXZVFrSTlnQUwxUApUNEszQUR5NXdHU2NuSXkrWjg0dVNoUGc0Sm1Rc3N4VTdLZW9hRW5aU2lRY2NVcDNhN0hCVFdNN1pvR1RUdXBMCnk2VER6a3BKL1h3OUg5aEE5VDgzK1U4b2g5N0N5VW40K0tyZEVqd0ZvUHdRSHMyQSs4OURxdlB0L2JDVW9sVUsKZzZSMTN0d0J3bU9FMlhMRlMzNTd4cm1TVER1SkVBaERLSEtuZURjekVSR284Q0hodEcvQzN6M3NGTmxVb21WOQpuZ2lBdDhKQnBVMHgvNW5COHJHODVVTGZOazIyTlJLLzd3ZnB2ZWQybHlFaEM2YTJmT0RrTG1YanRWQWpvdTFwCitOWWxaRXJaYWlxYUVaRW9hWXcwdk1qN2NuZEx6emlKRHYzazE4a3VrQXBOSFNrcFgyVkI1VnFHZlAwQ0F3RUEKQVFLQ0FnQUp5c2dMM29CWmR6dEdmL0RvWHdpVndzclptWmZlT0JVSC8ya1FMZjdCaTlXMG9NaURBMGo5a1UvawpMaC8zeDF6OGUyZ212Q3Bhb0kyb0pra1NteURIa0tacU43SHlGSVNtOFNGSXM0ZmdjaitvZUcrWVRXT1JIcHJuCisrY1VmbjNkUHR0UjZxTzlRSHdvMGpsMmprR3hHMWx5bkJVVU5YZG52OUVUVTk1THNGT2lKMjZVNjBKcGRaWSsKeWR6SWI2aXkrT081WjJMTndLTTA4aU0rNXQ5eFRyLzNJaEp0NVh5YUhhaUtESTF2a2I5OUh3Vm1KYmhGZlU5Wgo2c1FKY3lLcTNKNnl1b3FJdUV2anBQYXlQb3dwZ0xxOTlwNFFsWS8xM2NWWllJUkdoU1NuTE5pTFp1djI3dEdzClAyRkMyaWZON3YyVVJRcmM5S3hCbW90Y096U1Z3TkpDako3dzcxaXdLa2dDY21uVW9ZLzJNZkc3YTJxK3F4bmcKU3o5QStoTk4xamxvdVIrMlBWODZDYUt2VVZuK3NIZ0xTYVBxNW1TY0IxUlZmUmdDVEVBUzg1dEFOOFQ2SXJNUAoreUJEdFBBbUVCaEtDSUkvaDExL05ObG1HbXFWdHJuSGdDdmhBeEVVQXNUTld3alNPU2xuK2U1czB6TVlPclR1CnRBVWg1Z2dFajdaemtacnVpcVkreUxENVlBQjBURU1BdzY0c1c4T1RpQS84NjM3eno4S0lwcCtVelE2Y3VoTFgKcDI5dkg3aER5eHcrUFBDUTR0b2tKK3UxNjA0U3hlMHVFM3FOcmZ0b3BiajF0bDhXVlFyRHhrWVJhWHJtMDZlRgpGcW9TZnVqTlJWaWFCY1B1alVHcW5SR254dno3TUhoakxvM1hKMitaK0E0TllSWlV4UUtDQVFFQS83MlJlTGphClpnMlhacEJ1bTc1L1VhRFBYNDBLZEFWeFBJSlpSbGdiZEpmSkk2cmdXbTRsMDVDVkhLY2labk0vR09GWkVUT0kKODFHSlVZYW1WbzNFeWhHWXphQ0diSHU1N05mSlJpWXhOWXNEWGJHbDkxUzVtVkhvTDVpSUo0bHphR3paMDkrMApYWGpEd3lxblNyWmN6WjdPcG94anE4ZjA1UFVJODVYMUZTbUEyMHlWRXVJRmliQU0xeW9PR1plaHBqVnd0OW12CndkU01lRXNNYXV2bGY2QUR1aGJqazBGQWNxcHl1OGtkaUNXZWdKMzJwOHZBOXkwb1ZiVGRFcy9hK3BDaytGMEsKL2NXRytxUzFicWxabkxzSVV0NXhFRDdIekwyNkdzNDhiZ0tGYlpEdjQ2MUcwZjFLNFdXc21mSXBDaDBGS2RtZApyMDNiNGtGZHRYT1NJd0tDQVFFQTFzYlR3U1FjZWVnYStZZmtkRkxnYTlSRXphR2c5K21jNFMrcWQ1T243SSs3CllRNVVpYnk3NFFISzdySnFlZTFZNlM1bDJJVVFNdVpYSUVNa096SlpNeWNOM29ObWd6M25CNnI2UUNzUFpqWDgKME0zMEdUeW1nVVFuQUNKa0NGeEEva09ZcjQ5bnRCR0twNkdGRmxSZFc0QzZVV3dBS2Z4eTdSdC9FYUIvbkxJVQpjRzJtai9iZ0c2ZkMxVjI5a2Y1d0RjRmVZMUMrOStUUllXSlhpSFp4dFJZU1g3aENaL0l5V2lleWFuVnF2alp1Cnh6NGtnd3ErT1pxQ2EyYldJT3lFV1N4NDBsbnhZUW02VVVUcHZzRngyNHJGSTRDdjlCZTJ1SjlEQVErYk1jSXAKeHdHcFFrS1dzK3lIQkMyckZrQzV2N1F4aHBSanVKMnUyWWduTEQ3V1h3S0NBUUVBMVNqTHRNVFcvTkw5UzdhOQpDc0Y0VzdCZXlMVEZicmtPampIVGVZZDhzdXpFOFI2L1M0Q2R0TDdCR3BYUVhYWlh0RVE0T2Rjcm9pdG0rblh4CjlSakxXdVhaNkNLUmlLQ0Q4djVWUEV3ZkhoTFZabVhwQU1NMHc2OTZpUmxvK3hOZEIwQWJPN2N0SGUvSHM4ZTgKa3RCM2Y4ZUxWVlNVeXh5cWFhQTNxdGhsNUJLbzNhRHliRC9KLzk2bWhUei9iYU51VUJ3ZzdJemNLd0lmWnpDZQpsQXcxU1BBMXl3akMvUDBaVzdub1VjOHE5MHpyMVNaVTdiMHVCSmcyRTJIaUZvajdhM2ZlbVVqc0hXTmp3MHhBCkVaSEVLSmZZTTBKSEdSUks4c044K0ZUSUY2V3dVd2ZJZTR2MUNKaEhycUZSZ1N0UHU2YytvNGhJSDFNVklIdjkKUUgybzR3S0NBUUFaaDN5NElvQzRCTnpmK0VVeGhvQmlrTkswMXBkNW9HMGpYelVXRFprU1IydHdkL0dZaGJTWApaRTBvM2xCRnVlNnRtUFJHTGxya2tmaWRQeDNaWTN5eTFkdVNMWEJML1ZtdTBhWDVacVRuODFiZnd2dFczSnkyCkZOSEY5RkNMcGR1YjNaRVNuU3NvZmtWSzg2b01JMjhOWjFtK1ArWXRGM0xadUVEOGFXV0J6TEVkUkF0ZVpXdnkKSFpqTkg5MWVzeTNDbE0rUllwR3dpYVJSdlF6R2piMnFWcnRNWVd5VFNuaXR1clk4YlVTSTQ1TjdYMm1ib2ZWRwpoNVVsQ3c0OHo2QlRzVE9UWFZtUnZVUkdVTGl3RWZKa3REUUdxazgvNW1tenZFcU1uN3hFeDkyTGFDa2tWU0h3CnRSYS9hbVpCdU9QYlk2SFhhMkFIRzhjaTJFby91aUJsQW9JQkFCWE9namxhSS8vWXJYcENSSTNBOENQeWdxazEKNllwUFdVMjNISWRKUlJKdzI2WDVGQ3pWZXh0UTJhY2RxRXZ6TW9uOTdBK0VMWkg2aUZFTFBNcnkxeHdpSUZZcgpNVFNjMlZ0RkIvRWViVnduTzU0RFMwQWFKTk1DSjZjb1JBTk5BMExnSEY4UlNTdjd1K09FOXVQUTdUWHlkVUJFCnJ3aVlEVjF2N3JSSHlKcXA2Tm4xYWk5b0NsQXlEQmRNL2dkWXdEeURqUTBLR3hlVXZHZWxEejR2RWV3RThQVUIKcVBSb1UzV1RjVENjSWZTL3FnVEZQTEtGbWRoNFdoVlUrZlNwOTlXSjR0cHdPOVNJTGxXNzVReldxNlhBOEZFMApwK2FyRFBkaHJWQnlLZzIwc2dodjE5Mi91THBLOERoSEVJVlZuWmJGNVpIVDNlZDBSSGtQc1dTd1lrND0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K
# API server specific configuration options.
apiServer:
image: registry.k8s.io/kube-apiserver:v1.36.2 # The container image used in the API server manifest.
# Configure the API server admission plugins.
admissionControl:
- name: PodSecurity # Name is the name of the admission controller.
# Configuration is an embedded configuration object to be used as the plugin's
configuration:
apiVersion: pod-security.admission.config.k8s.io/v1alpha1
defaults:
audit: restricted
audit-version: latest
enforce: baseline
enforce-version: latest
warn: restricted
warn-version: latest
exemptions:
namespaces:
- kube-system
runtimeClasses: []
usernames: []
kind: PodSecurityConfiguration
# Configure the API server audit policy.
auditPolicy:
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
# # Configure the API server authorization config. Node and RBAC authorizers are always added irrespective of the configuration.
# authorizationConfig:
# - type: Webhook # Type is the name of the authorizer. Allowed values are `Node`, `RBAC`, and `Webhook`.
# name: webhook # Name is used to describe the authorizer.
# # webhook is the configuration for the webhook authorizer.
# webhook:
# connectionInfo:
# type: InClusterConfig
# failurePolicy: Deny
# matchConditionSubjectAccessReviewVersion: v1
# matchConditions:
# - expression: has(request.resourceAttributes)
# - expression: '!(\''system:serviceaccounts:kube-system\'' in request.groups)'
# subjectAccessReviewVersion: v1
# timeout: 3s
# - type: Webhook # Type is the name of the authorizer. Allowed values are `Node`, `RBAC`, and `Webhook`.
# name: in-cluster-authorizer # Name is used to describe the authorizer.
# # webhook is the configuration for the webhook authorizer.
# webhook:
# connectionInfo:
# type: InClusterConfig
# failurePolicy: NoOpinion
# matchConditionSubjectAccessReviewVersion: v1
# subjectAccessReviewVersion: v1
# timeout: 3s
# Controller manager server specific configuration options.
controllerManager:
image: registry.k8s.io/kube-controller-manager:v1.36.2 # The container image used in the controller manager manifest.
# Kube-proxy server-specific configuration options
proxy:
image: registry.k8s.io/kube-proxy:v1.36.2 # The container image used in the kube-proxy manifest.
# # Disable kube-proxy deployment on cluster bootstrap.
# disabled: false
# Scheduler server specific configuration options.
scheduler:
image: registry.k8s.io/kube-scheduler:v1.36.2 # The container image used in the scheduler manifest.
# Configures cluster member discovery.
discovery:
enabled: true # Enable the cluster membership discovery feature.
# Configure registries used for cluster member discovery.
registries:
# Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information
kubernetes:
disabled: true # Disable Kubernetes discovery registry.
# Service registry is using an external service to push and pull information about cluster members.
service: {}
# # External service endpoint.
# endpoint: https://discovery.talos.dev/
# Etcd specific configuration options.
etcd:
# The `ca` is the root certificate authority of the PKI.
ca:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJmakNDQVNPZ0F3SUJBZ0lRY1dVdDJLeVFwdS80dmpkSjJZQTNjekFLQmdncWhrak9QUVFEQWpBUE1RMHcKQ3dZRFZRUUtFd1JsZEdOa01CNFhEVEkyTURnd01qRXdNVGt3TlZvWERUTTJNRGN6TURFd01Ua3dOVm93RHpFTgpNQXNHQTFVRUNoTUVaWFJqWkRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkN6T3plaGc4UHNECkk0OGVVcHc4SDVPQmJHa3dSZUhXdTNXMVVnRWthTklSVGtFV2RLSkV1NzlsTmFJZ2pRUlZ3OEs5RjhuSloyRFoKcklmQUVJR1Fabk9qWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjRApBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVQ2QxWWlkK1VxZjNvCnd0SmZpRmFDRVliZkFRTXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBSUFhNEUvL2V0T1VhcDN2cGRhVjNtU24KWk9kaENIeUdhUWRJYlBWcHdPUXVBaUVBczkwOTJMV3ROeGF5MHJIdVUySUVpY1ZSRTJkUjdVWk0wbXZ4Vnc1VQpXK2c9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUJFMmhEblVJR1oyWVUvNEMzTytaY3ZlNHJvdUhlZnIybXNpajRzdERxcHRvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFTE03TjZHRHcrd01qang1U25Ed2ZrNEZzYVRCRjRkYTdkYlZTQVNSbzBoRk9RUlowb2tTNwp2MlUxb2lDTkJGWER3cjBYeWNsbllObXNoOEFRZ1pCbWN3PT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
# # The container image used to create the etcd service.
# image: registry.k8s.io/etcd:v3.6.12
# # The `advertisedSubnets` field configures the networks to pick etcd advertised IP from.
# advertisedSubnets:
# - 10.0.0.0/8
# A list of urls that point to additional manifests.
extraManifests: []
# - https://www.example.com/manifest1.yaml
# - https://www.example.com/manifest2.yaml
# A list of inline Kubernetes manifests.
inlineManifests: []
# - name: namespace-ci # Name of the manifest.
# contents: |- # Manifest contents as a string.
# apiVersion: v1
# kind: Namespace
# metadata:
# name: ci
# # A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
# # Decryption secret example (do not use in production!).
# aescbcEncryptionSecret: z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM=
# # Core DNS specific configuration options.
# coreDNS:
# image: registry.k8s.io/coredns/coredns:v1.14.4 # The `image` field is an override to the default coredns image.
# # External cloud provider configuration.
# externalCloudProvider:
# enabled: true # Enable external cloud provider.
# # A list of urls that point to additional manifests for an external cloud provider.
# manifests:
# - https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/rbac.yaml
# - https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/aws-cloud-controller-manager-daemonset.yaml
# # A map of key value pairs that will be added while fetching the extraManifests.
# extraManifestHeaders:
# Token: "1234567"
# X-ExtraInfo: info
# # Settings for admin kubeconfig generation.
# adminKubeconfig:
# certLifetime: 1h0m0s # Admin kubeconfig certificate lifetime (default is 1 year).
# # Allows running workload on control-plane nodes.
# allowSchedulingOnControlPlanes: true
---
apiVersion: v1alpha1
kind: HostnameConfig
auto: stable # A method to automatically generate a hostname for the machine.
# # A static hostname to set for the machine.
# hostname: controlplane1
# hostname: controlplane1.example.org
+426
View File
@@ -0,0 +1,426 @@
version: v1alpha1 # Indicates the schema used to decode the contents.
debug: false # Enable verbose logging to the console.
persist: true
# Provides machine specific configuration options.
machine:
type: worker # Defines the role of the machine within the cluster.
token: omy7ai.8zly2x1qlygu3lhu # The `token` is used by a machine to join the PKI of the cluster.
# The root certificate authority of the PKI.
ca:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJQakNCOGFBREFnRUNBaEIzVGhWTXpNM24wMmoxcWk1a3VyVzlNQVVHQXl0bGNEQVFNUTR3REFZRFZRUUsKRXdWMFlXeHZjekFlRncweU5qQTRNREl4TURFNU1EVmFGdzB6TmpBM016QXhNREU1TURWYU1CQXhEakFNQmdOVgpCQW9UQlhSaGJHOXpNQ293QlFZREsyVndBeUVBNWhBOTloYmUyWWJ0M2tnd0M2ODBSd3JOM3FzSlc3NFdheTFrCis2RWRDdFdqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVSHF6dHdMNUdYOE13eVBBOApFTDVuUmRneHJzTXdCUVlESzJWd0EwRUE4WTVyVzdPdFJ3cFF5UGtENVpuOWl3bnVLYzJqczVyKy9vREF4dTl5CkZSdlRCcXp5WWdaQU9ubklBNWgvUVFaMXJFMVhrZ1dQcFBDdXhMNEZPQzd0Qmc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: ""
# Extra certificate subject alternative names for the machine's certificate.
certSANs: []
# # Uncomment this to enable SANs.
# - 10.0.0.10
# - 172.16.0.10
# - 192.168.0.10
# Used to provide additional options to the kubelet.
kubelet:
image: ghcr.io/siderolabs/kubelet:v1.36.2 # The `image` field is an optional reference to an alternative kubelet image.
defaultRuntimeSeccompProfileEnabled: true # Enable container runtime default Seccomp profile.
disableManifestsDirectory: true # The `disableManifestsDirectory` field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory.
# # The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list.
# clusterDNS:
# - 10.96.0.10
# - 169.254.2.53
# # The `extraArgs` field is used to provide additional flags to the kubelet.
# extraArgs:
# key: value
# extraArgs:
# key:
# - value1
# - value2
# # The `extraMounts` field is used to add additional mounts to the kubelet container.
# extraMounts:
# - destination: /var/lib/example # Destination is the absolute path where the mount will be placed in the container.
# type: bind # Type specifies the mount kind.
# source: /var/lib/example # Source specifies the source path of the mount.
# # Options are fstab style mount options.
# options:
# - bind
# - rshared
# - rw
# # The `extraConfig` field is used to provide kubelet configuration overrides.
# extraConfig:
# serverTLSBootstrap: true
# # The `KubeletCredentialProviderConfig` field is used to provide kubelet credential configuration.
# credentialProviderConfig:
# apiVersion: kubelet.config.k8s.io/v1
# kind: CredentialProviderConfig
# providers:
# - apiVersion: credentialprovider.kubelet.k8s.io/v1
# defaultCacheDuration: 12h
# matchImages:
# - '*.dkr.ecr.*.amazonaws.com'
# - '*.dkr.ecr.*.amazonaws.com.cn'
# - '*.dkr.ecr-fips.*.amazonaws.com'
# - '*.dkr.ecr.us-iso-east-1.c2s.ic.gov'
# - '*.dkr.ecr.us-isob-east-1.sc2s.sgov.gov'
# name: ecr-credential-provider
# # The `nodeIP` field is used to configure `--node-ip` flag for the kubelet.
# nodeIP:
# # The `validSubnets` field configures the networks to pick kubelet node IP from.
# validSubnets:
# - 10.0.0.0/8
# - '!10.0.0.3/32'
# - fdc7::/16
# Used to provide instructions for installations.
install:
disk: /dev/sda # The disk used for installations.
image: ghcr.io/siderolabs/installer:v1.13.7 # Allows for supplying the image used to perform the installation.
wipe: false # Indicates if the installation disk should be wiped at installation time.
grubUseUKICmdline: true # Indicates if legacy GRUB bootloader should use kernel cmdline from the UKI instead of building it on the host.
# # Look up disk using disk attributes like model, size, serial and others.
# diskSelector:
# size: 4GB # Disk size.
# model: WDC* # Disk model `/sys/block/<dev>/device/model`.
# busPath: /pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0 # Disk bus path.
registries: {}
# Features describe individual Talos features that can be switched on or off.
features:
diskQuotaSupport: true # Enable XFS project quota support for EPHEMERAL partition and user disks.
# KubePrism - local proxy/load balancer on defined port that will distribute
kubePrism:
enabled: true # Enable KubePrism support - will start local load balancing proxy.
port: 7445 # KubePrism port.
# Configures host DNS caching resolver.
hostDNS:
enabled: true # Enable host DNS caching resolver.
forwardKubeDNSToHost: true # Use the host DNS resolver as upstream for Kubernetes CoreDNS pods.
# # Configure Talos API access from Kubernetes pods.
# kubernetesTalosAPIAccess:
# enabled: true # Enable Talos API access from Kubernetes pods.
# # The list of Talos API roles which can be granted for access from Kubernetes pods.
# allowedRoles:
# - os:reader
# # The list of Kubernetes namespaces Talos API access is available from.
# allowedKubernetesNamespaces:
# - kube-system
# # Provides machine specific control plane configuration options.
# # ControlPlane definition example.
# controlPlane:
# # Controller manager machine specific configuration options.
# controllerManager:
# disabled: false # Disable kube-controller-manager on the node.
# # Scheduler machine specific configuration options.
# scheduler:
# disabled: true # Disable kube-scheduler on the node.
# # Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.
# # nginx static pod.
# pods:
# - apiVersion: v1
# kind: pod
# metadata:
# name: nginx
# spec:
# containers:
# - image: nginx
# name: nginx
# # Allows the addition of user specified files.
# # MachineFiles usage example.
# files:
# - content: '...' # The contents of the file.
# permissions: 0o666 # The file's permissions in octal.
# path: /tmp/file.txt # The path of the file.
# op: append # The operation to use
# # Used to configure the machine's sysctls.
# # MachineSysctls usage example.
# sysctls:
# kernel.domainname: talos.dev
# net.ipv4.ip_forward: "0"
# net/ipv6/conf/eth0.100/disable_ipv6: "1"
# # Used to configure the machine's sysfs.
# # MachineSysfs usage example.
# sysfs:
# devices.system.cpu.cpu0.cpufreq.scaling_governor: performance
# # Configures the udev system.
# udev:
# # List of udev rules to apply to the udev system
# rules:
# - SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="44", MODE="0660"
# # Configures the logging system.
# logging:
# # Logging destination.
# destinations:
# - endpoint: tcp://1.2.3.4:12345 # Where to send logs. Supported protocols are "tcp" and "udp".
# format: json_lines # Logs format.
# logging:
# # Logging destination.
# destinations:
# - endpoint: udp://127.0.0.1:12345 # Where to send logs. Supported protocols are "tcp" and "udp".
# format: json_lines # Logs format.
# # Extra tags (key-value) pairs to attach to every log message sent.
# extraTags:
# machine: worker-1
# # Configures the kernel.
# kernel:
# # Kernel modules to load.
# modules:
# - name: btrfs # Module name.
# # Configures the seccomp profiles for the machine.
# seccompProfiles:
# - name: audit.json # The `name` field is used to provide the file name of the seccomp profile.
# # The `value` field is used to provide the seccomp profile.
# value:
# defaultAction: SCMP_ACT_LOG
# # Override (patch) settings in the default OCI runtime spec for CRI containers.
# # override default open file limit
# baseRuntimeSpecOverrides:
# process:
# rlimits:
# - hard: 1024
# soft: 1024
# type: RLIMIT_NOFILE
# # Configures the node labels for the machine.
# # node labels example.
# nodeLabels:
# exampleLabel: exampleLabelValue
# # Configures the node annotations for the machine.
# # node annotations example.
# nodeAnnotations:
# customer.io/rack: r13a25
# # Configures the node taints for the machine. Effect is optional.
# # node taints example.
# nodeTaints:
# exampleTaint: exampleTaintValue:NoSchedule
# Provides cluster specific configuration options.
cluster:
id: mFOB7YKyBjmrMN-1uIf2VYSQsUVUPa57CRtr87tTzkU= # Globally unique identifier for this cluster (base64 encoded random 32 bytes).
secret: Q6QGW/pwtdhEu5Lm0E/Q/HMUrfztEqEDbKV0yCsOxxc= # Shared secret of cluster (base64 encoded random 32 bytes).
# Provides control plane specific configuration options.
controlPlane:
endpoint: https://10.255.200.201:6443 # Endpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname.
clusterName: test-cluster # Configures the cluster's name.
# Provides cluster specific network configuration options.
network:
dnsDomain: cluster.local # The domain used by Kubernetes DNS.
# The pod subnet CIDR.
podSubnets:
- 10.244.0.0/16
# The service subnet CIDR.
serviceSubnets:
- 10.96.0.0/12
# # The CNI used.
# cni:
# name: custom # Name of CNI to use.
# # URLs containing manifests to apply for the CNI.
# urls:
# - https://raw.githubusercontent.com/projectcalico/calico/v3.31.5/manifests/canal.yaml
token: ghhkqg.oba4i5k615vxxpi5 # The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster.
# The base64 encoded root certificate authority used by Kubernetes.
ca:
crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpakNDQVMrZ0F3SUJBZ0lRUHAzTWhzUHB5RTg1VEQ0Z1cxbGZSakFLQmdncWhrak9QUVFEQWpBVk1STXcKRVFZRFZRUUtFd3ByZFdKbGNtNWxkR1Z6TUI0WERUSTJNRGd3TWpFd01Ua3dOVm9YRFRNMk1EY3pNREV3TVRrdwpOVm93RlRFVE1CRUdBMVVFQ2hNS2EzVmlaWEp1WlhSbGN6QlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VICkEwSUFCTWNlOWZmYW54enlRL1pYbnBEQTgrY2kvTVBQQjk0QXY5OVE4SWhyNkhFS0J3TnI0K1FOa21MckdYankKRDlpTVZuMkJzUU5lRXNjUUIyUXNHY0FUMm8rallUQmZNQTRHQTFVZER3RUIvd1FFQXdJQ2hEQWRCZ05WSFNVRQpGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFCkZnUVUxcEtURXo2OS9PN3I2akMxbFlMTTVWeEZPTUV3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUlHaG50TTkKa0RJYUNRYlB5THdMNzFhaVVSLzdJaHdzUk1PdytHczZ3aDJTQWlFQW51T0g4aUhxVHhkY3V4S1B1dndPRnVuRQpRM3RlKzZ3bExaU0VvUE9FZjY0PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
key: ""
# Configures cluster member discovery.
discovery:
enabled: true # Enable the cluster membership discovery feature.
# Configure registries used for cluster member discovery.
registries:
# Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information
kubernetes:
disabled: true # Disable Kubernetes discovery registry.
# Service registry is using an external service to push and pull information about cluster members.
service: {}
# # External service endpoint.
# endpoint: https://discovery.talos.dev/
# # A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
# # Decryption secret example (do not use in production!).
# aescbcEncryptionSecret: z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM=
# # A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
# # Decryption secret example (do not use in production!).
# secretboxEncryptionSecret: z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM=
# # The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.
# # AggregatorCA example.
# aggregatorCA:
# crt: LS0tIEVYQU1QTEUgQ0VSVElGSUNBVEUgLS0t
# key: LS0tIEVYQU1QTEUgS0VZIC0tLQ==
# # The base64 encoded private key for service account token generation.
# # AggregatorCA example.
# serviceAccount:
# key: LS0tIEVYQU1QTEUgS0VZIC0tLQ==
# # API server specific configuration options.
# apiServer:
# image: registry.k8s.io/kube-apiserver:v1.36.2 # The container image used in the API server manifest.
# # Extra arguments to supply to the API server.
# extraArgs:
# feature-gates: ServerSideApply=true
# http2-max-streams-per-connection: "32"
# # Extra certificate subject alternative names for the API server's certificate.
# certSANs:
# - 1.2.3.4
# - 4.5.6.7
# # Configure the API server admission plugins.
# admissionControl:
# - name: PodSecurity # Name is the name of the admission controller.
# # Configuration is an embedded configuration object to be used as the plugin's
# configuration:
# apiVersion: pod-security.admission.config.k8s.io/v1alpha1
# defaults:
# audit: restricted
# audit-version: latest
# enforce: baseline
# enforce-version: latest
# warn: restricted
# warn-version: latest
# exemptions:
# namespaces:
# - kube-system
# runtimeClasses: []
# usernames: []
# kind: PodSecurityConfiguration
# # Configure the API server audit policy.
# auditPolicy:
# apiVersion: audit.k8s.io/v1
# kind: Policy
# rules:
# - level: Metadata
# # Configure the API server authorization config. Node and RBAC authorizers are always added irrespective of the configuration.
# authorizationConfig:
# - type: Webhook # Type is the name of the authorizer. Allowed values are `Node`, `RBAC`, and `Webhook`.
# name: webhook # Name is used to describe the authorizer.
# # webhook is the configuration for the webhook authorizer.
# webhook:
# connectionInfo:
# type: InClusterConfig
# failurePolicy: Deny
# matchConditionSubjectAccessReviewVersion: v1
# matchConditions:
# - expression: has(request.resourceAttributes)
# - expression: '!(\''system:serviceaccounts:kube-system\'' in request.groups)'
# subjectAccessReviewVersion: v1
# timeout: 3s
# - type: Webhook # Type is the name of the authorizer. Allowed values are `Node`, `RBAC`, and `Webhook`.
# name: in-cluster-authorizer # Name is used to describe the authorizer.
# # webhook is the configuration for the webhook authorizer.
# webhook:
# connectionInfo:
# type: InClusterConfig
# failurePolicy: NoOpinion
# matchConditionSubjectAccessReviewVersion: v1
# subjectAccessReviewVersion: v1
# timeout: 3s
# # Controller manager server specific configuration options.
# controllerManager:
# image: registry.k8s.io/kube-controller-manager:v1.36.2 # The container image used in the controller manager manifest.
# # Extra arguments to supply to the controller manager.
# extraArgs:
# feature-gates: ServerSideApply=true
# # Kube-proxy server-specific configuration options
# proxy:
# disabled: false # Disable kube-proxy deployment on cluster bootstrap.
# image: registry.k8s.io/kube-proxy:v1.36.2 # The container image used in the kube-proxy manifest.
# mode: ipvs # proxy mode of kube-proxy.
# # Extra arguments to supply to kube-proxy.
# extraArgs:
# proxy-mode: iptables
# # Scheduler server specific configuration options.
# scheduler:
# image: registry.k8s.io/kube-scheduler:v1.36.2 # The container image used in the scheduler manifest.
# # Extra arguments to supply to the scheduler.
# extraArgs:
# feature-gates: AllBeta=true
# # Etcd specific configuration options.
# etcd:
# image: registry.k8s.io/etcd:v3.6.12 # The container image used to create the etcd service.
# # The `ca` is the root certificate authority of the PKI.
# ca:
# crt: LS0tIEVYQU1QTEUgQ0VSVElGSUNBVEUgLS0t
# key: LS0tIEVYQU1QTEUgS0VZIC0tLQ==
# # Extra arguments to supply to etcd.
# extraArgs:
# election-timeout: "5000"
# # The `advertisedSubnets` field configures the networks to pick etcd advertised IP from.
# advertisedSubnets:
# - 10.0.0.0/8
# # Core DNS specific configuration options.
# coreDNS:
# image: registry.k8s.io/coredns/coredns:v1.14.4 # The `image` field is an override to the default coredns image.
# # External cloud provider configuration.
# externalCloudProvider:
# enabled: true # Enable external cloud provider.
# # A list of urls that point to additional manifests for an external cloud provider.
# manifests:
# - https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/rbac.yaml
# - https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/aws-cloud-controller-manager-daemonset.yaml
# # A list of urls that point to additional manifests.
# extraManifests:
# - https://www.example.com/manifest1.yaml
# - https://www.example.com/manifest2.yaml
# # A map of key value pairs that will be added while fetching the extraManifests.
# extraManifestHeaders:
# Token: "1234567"
# X-ExtraInfo: info
# # A list of inline Kubernetes manifests.
# inlineManifests:
# - name: namespace-ci # Name of the manifest.
# contents: |- # Manifest contents as a string.
# apiVersion: v1
# kind: Namespace
# metadata:
# name: ci
# # Settings for admin kubeconfig generation.
# adminKubeconfig:
# certLifetime: 1h0m0s # Admin kubeconfig certificate lifetime (default is 1 year).
# # Allows running workload on control-plane nodes.
# allowSchedulingOnControlPlanes: true
---
apiVersion: v1alpha1
kind: HostnameConfig
auto: stable # A method to automatically generate a hostname for the machine.
# # A static hostname to set for the machine.
# hostname: controlplane1
# hostname: controlplane1.example.org