controlplane.yaml 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. version: v1alpha1 # Indicates the schema used to decode the contents.
  2. debug: false # Enable verbose logging to the console.
  3. persist: true # description: |
  4. # Provides machine specific configuration options.
  5. machine:
  6. type: controlplane # Defines the role of the machine within the cluster.
  7. token: u7240y.plogoeorz04f09sw # The `token` is used by a machine to join the PKI of the cluster.
  8. # The root certificate authority of the PKI.
  9. ca:
  10. crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJQakNCOGFBREFnRUNBaEFCdE5hMWNDcXBMUTl5RHh4Vm1hVmJNQVVHQXl0bGNEQVFNUTR3REFZRFZRUUsKRXdWMFlXeHZjekFlRncweU16QTVNRE14TmpNMk5UVmFGdzB6TXpBNE16RXhOak0yTlRWYU1CQXhEakFNQmdOVgpCQW9UQlhSaGJHOXpNQ293QlFZREsyVndBeUVBQW5qWmpDRmRpdTIvNUJNSlI2QWRWTWhwUEQ5MzgxTnYrWnA5Cm1mRndFTENqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUkKS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVMFU0OVEzK2lZY3k1TTBUSwphWnVBUjIwUlRNVXdCUVlESzJWd0EwRUF6TEtTdG1FQ1BHNzZpYUp5Z3Nmdzc1Z0tqVEVmODFCS0NOVFBBWkJzCnM2alRySktlRVA0SHpzOFIvZStyTGc4ZSszNDZWSXhoY1FMQWVKV21qc2VQRGc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
  11. key: LS0tLS1CRUdJTiBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0KTUM0Q0FRQXdCUVlESzJWd0JDSUVJRExDOExUQVZ5bVl6Mk02dXU3VnVsUmNUZk1WbHBtdFptb1dxZUtoNjJSYgotLS0tLUVORCBFRDI1NTE5IFBSSVZBVEUgS0VZLS0tLS0K
  12. # Extra certificate subject alternative names for the machine's certificate.
  13. certSANs: []
  14. # # Uncomment this to enable SANs.
  15. # - 10.0.0.10
  16. # - 172.16.0.10
  17. # - 192.168.0.10
  18. # Used to provide additional options to the kubelet.
  19. kubelet:
  20. image: ghcr.io/siderolabs/kubelet:v1.28.0 # The `image` field is an optional reference to an alternative kubelet image.
  21. defaultRuntimeSeccompProfileEnabled: true # Enable container runtime default Seccomp profile.
  22. disableManifestsDirectory: true # The `disableManifestsDirectory` field configures the kubelet to get static pod manifests from the /etc/kubernetes/manifests directory.
  23. # # The `ClusterDNS` field is an optional reference to an alternative kubelet clusterDNS ip list.
  24. # clusterDNS:
  25. # - 10.96.0.10
  26. # - 169.254.2.53
  27. # # The `extraArgs` field is used to provide additional flags to the kubelet.
  28. # extraArgs:
  29. # key: value
  30. # # The `extraMounts` field is used to add additional mounts to the kubelet container.
  31. # extraMounts:
  32. # - destination: /var/lib/example
  33. # type: bind
  34. # source: /var/lib/example
  35. # options:
  36. # - bind
  37. # - rshared
  38. # - rw
  39. # # The `extraConfig` field is used to provide kubelet configuration overrides.
  40. # extraConfig:
  41. # serverTLSBootstrap: true
  42. # # The `nodeIP` field is used to configure `--node-ip` flag for the kubelet.
  43. # nodeIP:
  44. # # The `validSubnets` field configures the networks to pick kubelet node IP from.
  45. # validSubnets:
  46. # - 10.0.0.0/8
  47. # - '!10.0.0.3/32'
  48. # - fdc7::/16
  49. # Provides machine specific network configuration options.
  50. network:
  51. interfaces:
  52. - interface: eno1
  53. dhcp: true
  54. vip:
  55. ip: 192.168.0.10
  56. # # `interfaces` is used to define the network interface configuration.
  57. # interfaces:
  58. # - interface: enp0s1 # The interface name.
  59. # # Assigns static IP addresses to the interface.
  60. # addresses:
  61. # - 192.168.2.0/24
  62. # # A list of routes associated with the interface.
  63. # routes:
  64. # - network: 0.0.0.0/0 # The route's network (destination).
  65. # gateway: 192.168.2.1 # The route's gateway (if empty, creates link scope route).
  66. # metric: 1024 # The optional metric for the route.
  67. # mtu: 1500 # The interface's MTU.
  68. #
  69. # # # Picks a network device using the selector.
  70. # # # select a device with bus prefix 00:*.
  71. # # deviceSelector:
  72. # # busPath: 00:* # PCI, USB bus prefix, supports matching by wildcard.
  73. # # # select a device with mac address matching `*:f0:ab` and `virtio` kernel driver.
  74. # # deviceSelector:
  75. # # hardwareAddr: '*:f0:ab' # Device hardware address, supports matching by wildcard.
  76. # # driver: virtio # Kernel driver, supports matching by wildcard.
  77. # # # select a device with bus prefix 00:*, a device with mac address matching `*:f0:ab` and `virtio` kernel driver.
  78. # # deviceSelector:
  79. # # - busPath: 00:* # PCI, USB bus prefix, supports matching by wildcard.
  80. # # - hardwareAddr: '*:f0:ab' # Device hardware address, supports matching by wildcard.
  81. # # driver: virtio # Kernel driver, supports matching by wildcard.
  82. # # # Bond specific options.
  83. # # bond:
  84. # # # The interfaces that make up the bond.
  85. # # interfaces:
  86. # # - enp2s0
  87. # # - enp2s1
  88. # # # Picks a network device using the selector.
  89. # # deviceSelectors:
  90. # # - busPath: 00:* # PCI, USB bus prefix, supports matching by wildcard.
  91. # # - hardwareAddr: '*:f0:ab' # Device hardware address, supports matching by wildcard.
  92. # # driver: virtio # Kernel driver, supports matching by wildcard.
  93. # # mode: 802.3ad # A bond option.
  94. # # lacpRate: fast # A bond option.
  95. # # # Bridge specific options.
  96. # # bridge:
  97. # # # The interfaces that make up the bridge.
  98. # # interfaces:
  99. # # - enxda4042ca9a51
  100. # # - enxae2a6774c259
  101. # # # A bridge option.
  102. # # stp:
  103. # # enabled: true # Whether Spanning Tree Protocol (STP) is enabled.
  104. # # # Indicates if DHCP should be used to configure the interface.
  105. # # dhcp: true
  106. # # # DHCP specific options.
  107. # # dhcpOptions:
  108. # # routeMetric: 1024 # The priority of all routes received via DHCP.
  109. # # # Wireguard specific configuration.
  110. # # # wireguard server example
  111. # # wireguard:
  112. # # privateKey: ABCDEF... # Specifies a private key configuration (base64 encoded).
  113. # # listenPort: 51111 # Specifies a device's listening port.
  114. # # # Specifies a list of peer configurations to apply to a device.
  115. # # peers:
  116. # # - publicKey: ABCDEF... # Specifies the public key of this peer.
  117. # # endpoint: 192.168.1.3 # Specifies the endpoint of this peer entry.
  118. # # # AllowedIPs specifies a list of allowed IP addresses in CIDR notation for this peer.
  119. # # allowedIPs:
  120. # # - 192.168.1.0/24
  121. # # # wireguard peer example
  122. # # wireguard:
  123. # # privateKey: ABCDEF... # Specifies a private key configuration (base64 encoded).
  124. # # # Specifies a list of peer configurations to apply to a device.
  125. # # peers:
  126. # # - publicKey: ABCDEF... # Specifies the public key of this peer.
  127. # # endpoint: 192.168.1.2:51822 # Specifies the endpoint of this peer entry.
  128. # # persistentKeepaliveInterval: 10s # Specifies the persistent keepalive interval for this peer.
  129. # # # AllowedIPs specifies a list of allowed IP addresses in CIDR notation for this peer.
  130. # # allowedIPs:
  131. # # - 192.168.1.0/24
  132. # # # Virtual (shared) IP address configuration.
  133. # # # layer2 vip example
  134. # vip:
  135. # ip: 192.168.0.10
  136. # # Used to statically set the nameservers for the machine.
  137. # nameservers:
  138. # - 8.8.8.8
  139. # - 1.1.1.1
  140. # # Used to statically set the nameservers for the machine.
  141. nameservers:
  142. - 192.168.1.87
  143. - 192.168.1.1
  144. # # Allows for extra entries to be added to the `/etc/hosts` file
  145. # extraHostEntries:
  146. # - ip: 192.168.1.100 # The IP of the host.
  147. # # The host alias.
  148. # aliases:
  149. # - example
  150. # - example.domain.tld
  151. # # Configures KubeSpan feature.
  152. #kubespan:
  153. # enabled: true # Enable the KubeSpan feature.
  154. # Used to provide instructions for installations.
  155. install:
  156. diskSelector:
  157. size: '<= 300GB' #/dev/sda # The disk used for installations.
  158. #busPath: '*usb*'
  159. #disk: /dev/sda # The disk used for installations.
  160. image: ghcr.io/siderolabs/installer:v1.5.1 # Allows for supplying the image used to perform the installation.
  161. wipe: true # Indicates if the installation disk should be wiped at installation time.
  162. # # Look up disk using disk attributes like model, size, serial and others.
  163. # diskSelector:
  164. # size: 4GB # Disk size.
  165. # model: WDC* # Disk model `/sys/block/<dev>/device/model`.
  166. # busPath: /pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0 # Disk bus path.
  167. # # Allows for supplying extra kernel args via the bootloader.
  168. # extraKernelArgs:
  169. # - talos.platform=metal
  170. # - reboot=k
  171. # # Allows for supplying additional system extension images to install on top of base Talos image.
  172. # extensions:
  173. # - image: ghcr.io/siderolabs/gvisor:20220117.0-v1.0.0 # System extension image.
  174. # Used to configure the machine's container image registry mirrors.
  175. registries: {}
  176. # # Specifies mirror configuration for each registry host namespace.
  177. # mirrors:
  178. # ghcr.io:
  179. # # List of endpoints (URLs) for registry mirrors to use.
  180. # endpoints:
  181. # - https://registry.insecure
  182. # - https://ghcr.io/v2/
  183. # # Specifies TLS & auth configuration for HTTPS image registries.
  184. # config:
  185. # registry.insecure:
  186. # # The TLS configuration for the registry.
  187. # tls:
  188. # insecureSkipVerify: true # Skip TLS server certificate verification (not recommended).
  189. #
  190. # # # Enable mutual TLS authentication with the registry.
  191. # # clientIdentity:
  192. # # crt: LS0tIEVYQU1QTEUgQ0VSVElGSUNBVEUgLS0t
  193. # # key: LS0tIEVYQU1QTEUgS0VZIC0tLQ==
  194. #
  195. # # # The auth configuration for this registry.
  196. # # auth:
  197. # # username: username # Optional registry authentication.
  198. # # password: password # Optional registry authentication.
  199. # Features describe individual Talos features that can be switched on or off.
  200. features:
  201. rbac: true # Enable role-based access control (RBAC).
  202. stableHostname: true # Enable stable default hostname.
  203. apidCheckExtKeyUsage: true # Enable checks for extended key usage of client certificates in apid.
  204. diskQuotaSupport: true # Enable XFS project quota support for EPHEMERAL partition and user disks.
  205. # # Configure Talos API access from Kubernetes pods.
  206. # kubernetesTalosAPIAccess:
  207. # enabled: true # Enable Talos API access from Kubernetes pods.
  208. # # The list of Talos API roles which can be granted for access from Kubernetes pods.
  209. # allowedRoles:
  210. # - os:reader
  211. # # The list of Kubernetes namespaces Talos API access is available from.
  212. # allowedKubernetesNamespaces:
  213. # - kube-system
  214. # # Provides machine specific control plane configuration options.
  215. # # ControlPlane definition example.
  216. # controlPlane:
  217. # # Controller manager machine specific configuration options.
  218. # controllerManager:
  219. # disabled: false # Disable kube-controller-manager on the node.
  220. # # Scheduler machine specific configuration options.
  221. # scheduler:
  222. # disabled: true # Disable kube-scheduler on the node.
  223. # # Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.
  224. # # nginx static pod.
  225. # pods:
  226. # - apiVersion: v1
  227. # kind: pod
  228. # metadata:
  229. # name: nginx
  230. # spec:
  231. # containers:
  232. # - image: nginx
  233. # name: nginx
  234. # # Used to partition, format and mount additional disks.
  235. # # MachineDisks list example.
  236. # disks:
  237. # - device: /dev/sdb # The name of the disk to use.
  238. # # A list of partitions to create on the disk.
  239. # partitions:
  240. # - mountpoint: /var/mnt/extra # Where to mount the partition.
  241. #
  242. # # # The size of partition: either bytes or human readable representation. If `size:` is omitted, the partition is sized to occupy the full disk.
  243. # # # Human readable representation.
  244. # # size: 100 MB
  245. # # # Precise value in bytes.
  246. # # size: 1073741824
  247. # # Allows the addition of user specified files.
  248. # # MachineFiles usage example.
  249. # files:
  250. # - content: '...' # The contents of the file.
  251. # permissions: 0o666 # The file's permissions in octal.
  252. # path: /tmp/file.txt # The path of the file.
  253. # op: append # The operation to use
  254. # # The `env` field allows for the addition of environment variables.
  255. # # Environment variables definition examples.
  256. # env:
  257. # GRPC_GO_LOG_SEVERITY_LEVEL: info
  258. # GRPC_GO_LOG_VERBOSITY_LEVEL: "99"
  259. # https_proxy: http://SERVER:PORT/
  260. # env:
  261. # GRPC_GO_LOG_SEVERITY_LEVEL: error
  262. # https_proxy: https://USERNAME:PASSWORD@SERVER:PORT/
  263. # env:
  264. # https_proxy: http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
  265. # # Used to configure the machine's time settings.
  266. # # Example configuration for cloudflare ntp server.
  267. # time:
  268. # disabled: false # Indicates if the time service is disabled for the machine.
  269. # # Specifies time (NTP) servers to use for setting the system time.
  270. # servers:
  271. # - time.cloudflare.com
  272. # bootTimeout: 2m0s # Specifies the timeout when the node time is considered to be in sync unlocking the boot sequence.
  273. # # Used to configure the machine's sysctls.
  274. # # MachineSysctls usage example.
  275. # sysctls:
  276. # kernel.domainname: talos.dev
  277. # net.ipv4.ip_forward: "0"
  278. # # Used to configure the machine's sysfs.
  279. # # MachineSysfs usage example.
  280. # sysfs:
  281. # devices.system.cpu.cpu0.cpufreq.scaling_governor: performance
  282. # # Machine system disk encryption configuration.
  283. # systemDiskEncryption:
  284. # # Ephemeral partition encryption.
  285. # ephemeral:
  286. # provider: luks2 # Encryption provider to use for the encryption.
  287. # # Defines the encryption keys generation and storage method.
  288. # keys:
  289. # - # Deterministically generated key from the node UUID and PartitionLabel.
  290. # nodeID: {}
  291. # slot: 0 # Key slot number for LUKS2 encryption.
  292. #
  293. # # # KMS managed encryption key.
  294. # # kms:
  295. # # endpoint: https://192.168.88.21:4443 # KMS endpoint to Seal/Unseal the key.
  296. #
  297. # # # Cipher kind to use for the encryption. Depends on the encryption provider.
  298. # # cipher: aes-xts-plain64
  299. # # # Defines the encryption sector size.
  300. # # blockSize: 4096
  301. # # # Additional --perf parameters for the LUKS2 encryption.
  302. # # options:
  303. # # - no_read_workqueue
  304. # # - no_write_workqueue
  305. # # Configures the udev system.
  306. # udev:
  307. # # List of udev rules to apply to the udev system
  308. # rules:
  309. # - SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="44", MODE="0660"
  310. # # Configures the logging system.
  311. # logging:
  312. # # Logging destination.
  313. # destinations:
  314. # - endpoint: tcp://1.2.3.4:12345 # Where to send logs. Supported protocols are "tcp" and "udp".
  315. # format: json_lines # Logs format.
  316. # # Configures the kernel.
  317. # kernel:
  318. # # Kernel modules to load.
  319. # modules:
  320. # - name: brtfs # Module name.
  321. # # Configures the seccomp profiles for the machine.
  322. # seccompProfiles:
  323. # - name: audit.json # The `name` field is used to provide the file name of the seccomp profile.
  324. # # The `value` field is used to provide the seccomp profile.
  325. # value:
  326. # defaultAction: SCMP_ACT_LOG
  327. # # Configures the node labels for the machine.
  328. # # node labels example.
  329. # nodeLabels:
  330. # exampleLabel: exampleLabelValue
  331. # Provides cluster specific configuration options.
  332. cluster:
  333. id: DnLy-yXXaIqQRaELsr5VZj-rnVj7jUxyyv69GkmgDIQ= # Globally unique identifier for this cluster (base64 encoded random 32 bytes).
  334. secret: ssgf5bbwHcen8w5i48nlDIdsUcTf9O3AoO3EQDTbpmo= # Shared secret of cluster (base64 encoded random 32 bytes).
  335. # Provides control plane specific configuration options.
  336. controlPlane:
  337. endpoint: https://talos-master-vm-01.dezendorf.net:6443 # Endpoint is the canonical controlplane endpoint, which can be an IP address or a DNS hostname.
  338. clusterName: talos-cluster # Configures the cluster's name.
  339. # Provides cluster specific network configuration options.
  340. network:
  341. dnsDomain: cluster.local # The domain used by Kubernetes DNS.
  342. # The pod subnet CIDR.
  343. podSubnets:
  344. - 10.244.0.0/16
  345. # The service subnet CIDR.
  346. serviceSubnets:
  347. - 10.96.0.0/12
  348. # # The CNI used.
  349. cni:
  350. name: flannel #none # Name of CNI to use.
  351. # # URLs containing manifests to apply for the CNI.
  352. # urls:
  353. # - https://docs.projectcalico.org/archive/v3.20/manifests/canal.yaml
  354. token: zszgpu.9yqk443feyidmnx3 # The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster.
  355. secretboxEncryptionSecret: M0Xyw+c3iyQ6wo64UpJpYP03DZW0SL+NLjugUzkRGGc= # A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
  356. # The base64 encoded root certificate authority used by Kubernetes.
  357. ca:
  358. crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpekNDQVRDZ0F3SUJBZ0lSQUp4ZS9tbGpNUENkaXBFTDBrenZtNjB3Q2dZSUtvWkl6ajBFQXdJd0ZURVQKTUJFR0ExVUVDaE1LYTNWaVpYSnVaWFJsY3pBZUZ3MHlNekE1TURNeE5qTTJOVFZhRncwek16QTRNekV4TmpNMgpOVFZhTUJVeEV6QVJCZ05WQkFvVENtdDFZbVZ5Ym1WMFpYTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CCkJ3TkNBQVMza29QWERNeFE5c2UyUlhnZklFZXZLR0N6alRjcjNLZ1hEYjBkaW9ueHlRSXJNWGpTOUFWNEJ2aE4KRldKTHpRLy9WTjZJRUdGTEZOb1NjUnpJaURVNG8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FvUXdIUVlEVlIwbApCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWURWUjBPCkJCWUVGS1F4eWVkOHdRUnplcFRwcFFZMkZIUHVOTTdjTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFDNGFWTmoKN01ONEloMFdyNWcyK01oa1FBbzZUMzVYU0ZrVEozbjFaRDd1TGdJaEFJZC9PTGVFQkRQb2FQTUFMTk5Sc01hQQpTOWpSMHR5MTBCcTFzZVhuYVpJdAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
  359. key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUJEK0pjNjZmeWR5QmpVcHdLWm9wLzhma0tMSnEvTHh1c2w1azE4UTd5djRvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFdDVLRDF3ek1VUGJIdGtWNEh5QkhyeWhnczQwM0s5eW9GdzI5SFlxSjhja0NLekY0MHZRRgplQWI0VFJWaVM4MFAvMVRlaUJCaFN4VGFFbkVjeUlnMU9BPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
  360. # The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.
  361. aggregatorCA:
  362. crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJZVENDQVFhZ0F3SUJBZ0lSQU5mOFFscXA1eWlWRGVZVlBybGVVOTR3Q2dZSUtvWkl6ajBFQXdJd0FEQWUKRncweU16QTVNRE14TmpNMk5UVmFGdzB6TXpBNE16RXhOak0yTlRWYU1BQXdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVFPUkdBeUNnUk0yL0ltbFpod2d6cnIxOVBNSnNJSTJaNHhVVVpGWVpjdGxBMFIzRWR2CkxnTHo1ZzVqZVdFZWk4V2x4UEk4Ylkyd2F2MmY5dExDZ2RPeW8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FvUXcKSFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4dwpIUVlEVlIwT0JCWUVGTGtscGpwdTlwSENrS1YvaTFlVGl4UVVjMDZJTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDCklRQ0Zmc3ZhK3dGWDhKT2JqYjhnOEJCK1VpK3lBWDJJRG54M1d1cmZCS2p0blFJaEFLblppS0dBeTBaRG0vR2wKblprclh1dTAxSmQwSVIzQU5oUUFKUGNXbitOWQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
  363. key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUdpYzB5Uzl6NTB1SnZVNkwvNE52cUVRMFh0Z1piQ1NjWk9jbGx2Tld4cnBvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFRGtSZ01nb0VUTnZ5SnBXWWNJTTY2OWZUekNiQ0NObWVNVkZHUldHWExaUU5FZHhIYnk0Qwo4K1lPWTNsaEhvdkZwY1R5UEcyTnNHcjluL2JTd29IVHNnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
  364. # The base64 encoded private key for service account token generation.
  365. serviceAccount:
  366. key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSVBwYVVDT1VielJ0azc2OVpMRmZnWVo3NEFQbWV3ejhPUlptbWZzeXM3d3JvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFZUh0YjBwQWs0Y0JtV041OEl4eGpKUlVMaExvcWVxVERTK1NHVnRSNUJneDQ0UExrWnVlKwpsUjRwMEtLc2w3UVlSNW5UdkEzRnJjQThZTi9mek9KTkpBPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
  367. # API server specific configuration options.
  368. apiServer:
  369. image: registry.k8s.io/kube-apiserver:v1.28.0 # The container image used in the API server manifest.
  370. # Extra certificate subject alternative names for the API server's certificate.
  371. certSANs:
  372. - talos-master-vm-01.dezendorf.net
  373. - talos-master-vm-02.dezendorf.net
  374. - talos-master-vm-03.dezendorf.net
  375. - talos-master.dezendorf.net
  376. disablePodSecurityPolicy: true # Disable PodSecurityPolicy in the API server and default manifests.
  377. # Configure the API server admission plugins.
  378. admissionControl:
  379. - name: PodSecurity # Name is the name of the admission controller.
  380. # Configuration is an embedded configuration object to be used as the plugin's
  381. configuration:
  382. apiVersion: pod-security.admission.config.k8s.io/v1alpha1
  383. defaults:
  384. audit: restricted
  385. audit-version: latest
  386. enforce: baseline
  387. enforce-version: latest
  388. warn: restricted
  389. warn-version: latest
  390. exemptions:
  391. namespaces:
  392. - kube-system
  393. runtimeClasses: []
  394. usernames: []
  395. kind: PodSecurityConfiguration
  396. # Configure the API server audit policy.
  397. auditPolicy:
  398. apiVersion: audit.k8s.io/v1
  399. kind: Policy
  400. rules:
  401. - level: Metadata
  402. # Controller manager server specific configuration options.
  403. controllerManager:
  404. image: registry.k8s.io/kube-controller-manager:v1.28.0 # The container image used in the controller manager manifest.
  405. # Kube-proxy server-specific configuration options
  406. proxy:
  407. image: registry.k8s.io/kube-proxy:v1.28.0 # The container image used in the kube-proxy manifest.
  408. # # Disable kube-proxy deployment on cluster bootstrap.
  409. # disabled: false
  410. mode: ipvs
  411. extraArgs:
  412. ipvs-strict-arp: true
  413. proxy-mode: iptables
  414. # Scheduler server specific configuration options.
  415. scheduler:
  416. image: registry.k8s.io/kube-scheduler:v1.28.0 # The container image used in the scheduler manifest.
  417. # Configures cluster member discovery.
  418. discovery:
  419. enabled: true # Enable the cluster membership discovery feature.
  420. # Configure registries used for cluster member discovery.
  421. registries:
  422. # Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information
  423. kubernetes:
  424. disabled: true # Disable Kubernetes discovery registry.
  425. # Service registry is using an external service to push and pull information about cluster members.
  426. service: {}
  427. # # External service endpoint.
  428. # endpoint: https://discovery.talos.dev/
  429. # Etcd specific configuration options.
  430. etcd:
  431. # The `ca` is the root certificate authority of the PKI.
  432. ca:
  433. crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJmakNDQVNPZ0F3SUJBZ0lRSVloZ3BvV0lhMXpsK2xnUklYWWpYakFLQmdncWhrak9QUVFEQWpBUE1RMHcKQ3dZRFZRUUtFd1JsZEdOa01CNFhEVEl6TURrd016RTJNelkxTlZvWERUTXpNRGd6TVRFMk16WTFOVm93RHpFTgpNQXNHQTFVRUNoTUVaWFJqWkRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkhKUDhuT2VueEdhCnE1d1NqMGJHR0FhcjJFSDFKWjlEK2tqQVE5Y0FudEtPOTNSM3ZFbit6UDZDZTFPRUp3OGsyU1dXa1l0bmQ2dFIKUkt1U3dBeDBnelNqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjRApBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVMCtuak9iaHcrRkMwCitEazBuVWtzaG1HYU5VSXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBS3pRaFJhb1hYeVV1RklSYkx6aldSSmkKRSszVGtEeVZqZjNxYnVnUHlaeXlBaUVBcHoyZEVNUVpDc1l5R2g5VDRQU2VXRDEyTlVYNlI4NWEycnlZbUJPZgp6d0k9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
  434. key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUllWTFCbGhaaDB6QTZySXE1WEVlc1BwemVlZ0xXWDBJVTZkcktURUdEaW5vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFY2sveWM1NmZFWnFybkJLUFJzWVlCcXZZUWZVbG4wUDZTTUJEMXdDZTBvNzNkSGU4U2Y3TQovb0o3VTRRbkR5VFpKWmFSaTJkM3ExRkVxNUxBREhTRE5BPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
  435. # # The container image used to create the etcd service.
  436. # image: gcr.io/etcd-development/etcd:v3.5.9
  437. # # The `advertisedSubnets` field configures the networks to pick etcd advertised IP from.
  438. # advertisedSubnets:
  439. # - 10.0.0.0/8
  440. # A list of urls that point to additional manifests.
  441. extraManifests: []
  442. # - https://www.example.com/manifest1.yaml
  443. # - https://www.example.com/manifest2.yaml
  444. # A list of inline Kubernetes manifests.
  445. inlineManifests: []
  446. # - name: namespace-ci # Name of the manifest.
  447. # contents: |- # Manifest contents as a string.
  448. # apiVersion: v1
  449. # kind: Namespace
  450. # metadata:
  451. # name: ci
  452. # # A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
  453. # # Decryption secret example (do not use in production!).
  454. # aescbcEncryptionSecret: z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM=
  455. # # Core DNS specific configuration options.
  456. # coreDNS:
  457. # image: registry.k8s.io/coredns/coredns:v1.10.1 # The `image` field is an override to the default coredns image.
  458. # # External cloud provider configuration.
  459. # externalCloudProvider:
  460. # enabled: true # Enable external cloud provider.
  461. # # A list of urls that point to additional manifests for an external cloud provider.
  462. # manifests:
  463. # - https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/rbac.yaml
  464. # - https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/aws-cloud-controller-manager-daemonset.yaml
  465. # # A map of key value pairs that will be added while fetching the extraManifests.
  466. # extraManifestHeaders:
  467. # Token: "1234567"
  468. # X-ExtraInfo: info
  469. # # Settings for admin kubeconfig generation.
  470. # adminKubeconfig:
  471. # certLifetime: 1h0m0s # Admin kubeconfig certificate lifetime (default is 1 year).
  472. # # Allows running workload on control-plane nodes.
  473. # allowSchedulingOnControlPlanes: true