controlplane.yaml 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  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: eth0
  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. # # Allows for extra entries to be added to the `/etc/hosts` file
  141. # extraHostEntries:
  142. # - ip: 192.168.1.100 # The IP of the host.
  143. # # The host alias.
  144. # aliases:
  145. # - example
  146. # - example.domain.tld
  147. # # Configures KubeSpan feature.
  148. #kubespan:
  149. # enabled: true # Enable the KubeSpan feature.
  150. # Used to provide instructions for installations.
  151. install:
  152. disk: /dev/sda # The disk used for installations.
  153. image: ghcr.io/siderolabs/installer:v1.5.1 # Allows for supplying the image used to perform the installation.
  154. wipe: true # Indicates if the installation disk should be wiped at installation time.
  155. # # Look up disk using disk attributes like model, size, serial and others.
  156. # diskSelector:
  157. # size: 4GB # Disk size.
  158. # model: WDC* # Disk model `/sys/block/<dev>/device/model`.
  159. # busPath: /pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0 # Disk bus path.
  160. # # Allows for supplying extra kernel args via the bootloader.
  161. # extraKernelArgs:
  162. # - talos.platform=metal
  163. # - reboot=k
  164. # # Allows for supplying additional system extension images to install on top of base Talos image.
  165. # extensions:
  166. # - image: ghcr.io/siderolabs/gvisor:20220117.0-v1.0.0 # System extension image.
  167. # Used to configure the machine's container image registry mirrors.
  168. registries: {}
  169. # # Specifies mirror configuration for each registry host namespace.
  170. # mirrors:
  171. # ghcr.io:
  172. # # List of endpoints (URLs) for registry mirrors to use.
  173. # endpoints:
  174. # - https://registry.insecure
  175. # - https://ghcr.io/v2/
  176. # # Specifies TLS & auth configuration for HTTPS image registries.
  177. # config:
  178. # registry.insecure:
  179. # # The TLS configuration for the registry.
  180. # tls:
  181. # insecureSkipVerify: true # Skip TLS server certificate verification (not recommended).
  182. #
  183. # # # Enable mutual TLS authentication with the registry.
  184. # # clientIdentity:
  185. # # crt: LS0tIEVYQU1QTEUgQ0VSVElGSUNBVEUgLS0t
  186. # # key: LS0tIEVYQU1QTEUgS0VZIC0tLQ==
  187. #
  188. # # # The auth configuration for this registry.
  189. # # auth:
  190. # # username: username # Optional registry authentication.
  191. # # password: password # Optional registry authentication.
  192. # Features describe individual Talos features that can be switched on or off.
  193. features:
  194. rbac: true # Enable role-based access control (RBAC).
  195. stableHostname: true # Enable stable default hostname.
  196. apidCheckExtKeyUsage: true # Enable checks for extended key usage of client certificates in apid.
  197. diskQuotaSupport: true # Enable XFS project quota support for EPHEMERAL partition and user disks.
  198. # # Configure Talos API access from Kubernetes pods.
  199. # kubernetesTalosAPIAccess:
  200. # enabled: true # Enable Talos API access from Kubernetes pods.
  201. # # The list of Talos API roles which can be granted for access from Kubernetes pods.
  202. # allowedRoles:
  203. # - os:reader
  204. # # The list of Kubernetes namespaces Talos API access is available from.
  205. # allowedKubernetesNamespaces:
  206. # - kube-system
  207. # # Provides machine specific control plane configuration options.
  208. # # ControlPlane definition example.
  209. # controlPlane:
  210. # # Controller manager machine specific configuration options.
  211. # controllerManager:
  212. # disabled: false # Disable kube-controller-manager on the node.
  213. # # Scheduler machine specific configuration options.
  214. # scheduler:
  215. # disabled: true # Disable kube-scheduler on the node.
  216. # # Used to provide static pod definitions to be run by the kubelet directly bypassing the kube-apiserver.
  217. # # nginx static pod.
  218. # pods:
  219. # - apiVersion: v1
  220. # kind: pod
  221. # metadata:
  222. # name: nginx
  223. # spec:
  224. # containers:
  225. # - image: nginx
  226. # name: nginx
  227. # # Used to partition, format and mount additional disks.
  228. # # MachineDisks list example.
  229. # disks:
  230. # - device: /dev/sdb # The name of the disk to use.
  231. # # A list of partitions to create on the disk.
  232. # partitions:
  233. # - mountpoint: /var/mnt/extra # Where to mount the partition.
  234. #
  235. # # # The size of partition: either bytes or human readable representation. If `size:` is omitted, the partition is sized to occupy the full disk.
  236. # # # Human readable representation.
  237. # # size: 100 MB
  238. # # # Precise value in bytes.
  239. # # size: 1073741824
  240. # # Allows the addition of user specified files.
  241. # # MachineFiles usage example.
  242. # files:
  243. # - content: '...' # The contents of the file.
  244. # permissions: 0o666 # The file's permissions in octal.
  245. # path: /tmp/file.txt # The path of the file.
  246. # op: append # The operation to use
  247. # # The `env` field allows for the addition of environment variables.
  248. # # Environment variables definition examples.
  249. # env:
  250. # GRPC_GO_LOG_SEVERITY_LEVEL: info
  251. # GRPC_GO_LOG_VERBOSITY_LEVEL: "99"
  252. # https_proxy: http://SERVER:PORT/
  253. # env:
  254. # GRPC_GO_LOG_SEVERITY_LEVEL: error
  255. # https_proxy: https://USERNAME:PASSWORD@SERVER:PORT/
  256. # env:
  257. # https_proxy: http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
  258. # # Used to configure the machine's time settings.
  259. # # Example configuration for cloudflare ntp server.
  260. # time:
  261. # disabled: false # Indicates if the time service is disabled for the machine.
  262. # # Specifies time (NTP) servers to use for setting the system time.
  263. # servers:
  264. # - time.cloudflare.com
  265. # bootTimeout: 2m0s # Specifies the timeout when the node time is considered to be in sync unlocking the boot sequence.
  266. # # Used to configure the machine's sysctls.
  267. # # MachineSysctls usage example.
  268. # sysctls:
  269. # kernel.domainname: talos.dev
  270. # net.ipv4.ip_forward: "0"
  271. # # Used to configure the machine's sysfs.
  272. # # MachineSysfs usage example.
  273. # sysfs:
  274. # devices.system.cpu.cpu0.cpufreq.scaling_governor: performance
  275. # # Machine system disk encryption configuration.
  276. # systemDiskEncryption:
  277. # # Ephemeral partition encryption.
  278. # ephemeral:
  279. # provider: luks2 # Encryption provider to use for the encryption.
  280. # # Defines the encryption keys generation and storage method.
  281. # keys:
  282. # - # Deterministically generated key from the node UUID and PartitionLabel.
  283. # nodeID: {}
  284. # slot: 0 # Key slot number for LUKS2 encryption.
  285. #
  286. # # # KMS managed encryption key.
  287. # # kms:
  288. # # endpoint: https://192.168.88.21:4443 # KMS endpoint to Seal/Unseal the key.
  289. #
  290. # # # Cipher kind to use for the encryption. Depends on the encryption provider.
  291. # # cipher: aes-xts-plain64
  292. # # # Defines the encryption sector size.
  293. # # blockSize: 4096
  294. # # # Additional --perf parameters for the LUKS2 encryption.
  295. # # options:
  296. # # - no_read_workqueue
  297. # # - no_write_workqueue
  298. # # Configures the udev system.
  299. # udev:
  300. # # List of udev rules to apply to the udev system
  301. # rules:
  302. # - SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="44", MODE="0660"
  303. # # Configures the logging system.
  304. # logging:
  305. # # Logging destination.
  306. # destinations:
  307. # - endpoint: tcp://1.2.3.4:12345 # Where to send logs. Supported protocols are "tcp" and "udp".
  308. # format: json_lines # Logs format.
  309. # # Configures the kernel.
  310. # kernel:
  311. # # Kernel modules to load.
  312. # modules:
  313. # - name: brtfs # Module name.
  314. # # Configures the seccomp profiles for the machine.
  315. # seccompProfiles:
  316. # - name: audit.json # The `name` field is used to provide the file name of the seccomp profile.
  317. # # The `value` field is used to provide the seccomp profile.
  318. # value:
  319. # defaultAction: SCMP_ACT_LOG
  320. # # Configures the node labels for the machine.
  321. # # node labels example.
  322. # nodeLabels:
  323. # exampleLabel: exampleLabelValue
  324. # Provides cluster specific configuration options.
  325. cluster:
  326. id: DnLy-yXXaIqQRaELsr5VZj-rnVj7jUxyyv69GkmgDIQ= # Globally unique identifier for this cluster (base64 encoded random 32 bytes).
  327. secret: ssgf5bbwHcen8w5i48nlDIdsUcTf9O3AoO3EQDTbpmo= # Shared secret of cluster (base64 encoded random 32 bytes).
  328. # Provides control plane specific configuration options.
  329. controlPlane:
  330. 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.
  331. clusterName: talos-cluster # Configures the cluster's name.
  332. # Provides cluster specific network configuration options.
  333. network:
  334. dnsDomain: cluster.local # The domain used by Kubernetes DNS.
  335. # The pod subnet CIDR.
  336. podSubnets:
  337. - 10.244.0.0/16
  338. # The service subnet CIDR.
  339. serviceSubnets:
  340. - 10.96.0.0/12
  341. # # The CNI used.
  342. # cni:
  343. # name: custom # Name of CNI to use.
  344. # # URLs containing manifests to apply for the CNI.
  345. # urls:
  346. # - https://docs.projectcalico.org/archive/v3.20/manifests/canal.yaml
  347. token: zszgpu.9yqk443feyidmnx3 # The [bootstrap token](https://kubernetes.io/docs/reference/access-authn-authz/bootstrap-tokens/) used to join the cluster.
  348. secretboxEncryptionSecret: M0Xyw+c3iyQ6wo64UpJpYP03DZW0SL+NLjugUzkRGGc= # A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
  349. # The base64 encoded root certificate authority used by Kubernetes.
  350. ca:
  351. crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpekNDQVRDZ0F3SUJBZ0lSQUp4ZS9tbGpNUENkaXBFTDBrenZtNjB3Q2dZSUtvWkl6ajBFQXdJd0ZURVQKTUJFR0ExVUVDaE1LYTNWaVpYSnVaWFJsY3pBZUZ3MHlNekE1TURNeE5qTTJOVFZhRncwek16QTRNekV4TmpNMgpOVFZhTUJVeEV6QVJCZ05WQkFvVENtdDFZbVZ5Ym1WMFpYTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CCkJ3TkNBQVMza29QWERNeFE5c2UyUlhnZklFZXZLR0N6alRjcjNLZ1hEYjBkaW9ueHlRSXJNWGpTOUFWNEJ2aE4KRldKTHpRLy9WTjZJRUdGTEZOb1NjUnpJaURVNG8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FvUXdIUVlEVlIwbApCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWURWUjBPCkJCWUVGS1F4eWVkOHdRUnplcFRwcFFZMkZIUHVOTTdjTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFDNGFWTmoKN01ONEloMFdyNWcyK01oa1FBbzZUMzVYU0ZrVEozbjFaRDd1TGdJaEFJZC9PTGVFQkRQb2FQTUFMTk5Sc01hQQpTOWpSMHR5MTBCcTFzZVhuYVpJdAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
  352. key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUJEK0pjNjZmeWR5QmpVcHdLWm9wLzhma0tMSnEvTHh1c2w1azE4UTd5djRvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFdDVLRDF3ek1VUGJIdGtWNEh5QkhyeWhnczQwM0s5eW9GdzI5SFlxSjhja0NLekY0MHZRRgplQWI0VFJWaVM4MFAvMVRlaUJCaFN4VGFFbkVjeUlnMU9BPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
  353. # The base64 encoded aggregator certificate authority used by Kubernetes for front-proxy certificate generation.
  354. aggregatorCA:
  355. crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJZVENDQVFhZ0F3SUJBZ0lSQU5mOFFscXA1eWlWRGVZVlBybGVVOTR3Q2dZSUtvWkl6ajBFQXdJd0FEQWUKRncweU16QTVNRE14TmpNMk5UVmFGdzB6TXpBNE16RXhOak0yTlRWYU1BQXdXVEFUQmdjcWhrak9QUUlCQmdncQpoa2pPUFFNQkJ3TkNBQVFPUkdBeUNnUk0yL0ltbFpod2d6cnIxOVBNSnNJSTJaNHhVVVpGWVpjdGxBMFIzRWR2CkxnTHo1ZzVqZVdFZWk4V2x4UEk4Ylkyd2F2MmY5dExDZ2RPeW8yRXdYekFPQmdOVkhROEJBZjhFQkFNQ0FvUXcKSFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdFR0NDc0dBUVVGQndNQ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4dwpIUVlEVlIwT0JCWUVGTGtscGpwdTlwSENrS1YvaTFlVGl4UVVjMDZJTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDCklRQ0Zmc3ZhK3dGWDhKT2JqYjhnOEJCK1VpK3lBWDJJRG54M1d1cmZCS2p0blFJaEFLblppS0dBeTBaRG0vR2wKblprclh1dTAxSmQwSVIzQU5oUUFKUGNXbitOWQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
  356. key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUdpYzB5Uzl6NTB1SnZVNkwvNE52cUVRMFh0Z1piQ1NjWk9jbGx2Tld4cnBvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFRGtSZ01nb0VUTnZ5SnBXWWNJTTY2OWZUekNiQ0NObWVNVkZHUldHWExaUU5FZHhIYnk0Qwo4K1lPWTNsaEhvdkZwY1R5UEcyTnNHcjluL2JTd29IVHNnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
  357. # The base64 encoded private key for service account token generation.
  358. serviceAccount:
  359. key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSVBwYVVDT1VielJ0azc2OVpMRmZnWVo3NEFQbWV3ejhPUlptbWZzeXM3d3JvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFZUh0YjBwQWs0Y0JtV041OEl4eGpKUlVMaExvcWVxVERTK1NHVnRSNUJneDQ0UExrWnVlKwpsUjRwMEtLc2w3UVlSNW5UdkEzRnJjQThZTi9mek9KTkpBPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
  360. # API server specific configuration options.
  361. apiServer:
  362. image: registry.k8s.io/kube-apiserver:v1.28.0 # The container image used in the API server manifest.
  363. # Extra certificate subject alternative names for the API server's certificate.
  364. certSANs:
  365. - talos-master-vm-01.dezendorf.net
  366. disablePodSecurityPolicy: true # Disable PodSecurityPolicy in the API server and default manifests.
  367. # Configure the API server admission plugins.
  368. admissionControl:
  369. - name: PodSecurity # Name is the name of the admission controller.
  370. # Configuration is an embedded configuration object to be used as the plugin's
  371. configuration:
  372. apiVersion: pod-security.admission.config.k8s.io/v1alpha1
  373. defaults:
  374. audit: restricted
  375. audit-version: latest
  376. enforce: baseline
  377. enforce-version: latest
  378. warn: restricted
  379. warn-version: latest
  380. exemptions:
  381. namespaces:
  382. - kube-system
  383. runtimeClasses: []
  384. usernames: []
  385. kind: PodSecurityConfiguration
  386. # Configure the API server audit policy.
  387. auditPolicy:
  388. apiVersion: audit.k8s.io/v1
  389. kind: Policy
  390. rules:
  391. - level: Metadata
  392. # Controller manager server specific configuration options.
  393. controllerManager:
  394. image: registry.k8s.io/kube-controller-manager:v1.28.0 # The container image used in the controller manager manifest.
  395. # Kube-proxy server-specific configuration options
  396. proxy:
  397. image: registry.k8s.io/kube-proxy:v1.28.0 # The container image used in the kube-proxy manifest.
  398. # # Disable kube-proxy deployment on cluster bootstrap.
  399. # disabled: false
  400. # Scheduler server specific configuration options.
  401. scheduler:
  402. image: registry.k8s.io/kube-scheduler:v1.28.0 # The container image used in the scheduler manifest.
  403. # Configures cluster member discovery.
  404. discovery:
  405. enabled: true # Enable the cluster membership discovery feature.
  406. # Configure registries used for cluster member discovery.
  407. registries:
  408. # Kubernetes registry uses Kubernetes API server to discover cluster members and stores additional information
  409. kubernetes:
  410. disabled: true # Disable Kubernetes discovery registry.
  411. # Service registry is using an external service to push and pull information about cluster members.
  412. service: {}
  413. # # External service endpoint.
  414. # endpoint: https://discovery.talos.dev/
  415. # Etcd specific configuration options.
  416. etcd:
  417. # The `ca` is the root certificate authority of the PKI.
  418. ca:
  419. crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJmakNDQVNPZ0F3SUJBZ0lRSVloZ3BvV0lhMXpsK2xnUklYWWpYakFLQmdncWhrak9QUVFEQWpBUE1RMHcKQ3dZRFZRUUtFd1JsZEdOa01CNFhEVEl6TURrd016RTJNelkxTlZvWERUTXpNRGd6TVRFMk16WTFOVm93RHpFTgpNQXNHQTFVRUNoTUVaWFJqWkRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkhKUDhuT2VueEdhCnE1d1NqMGJHR0FhcjJFSDFKWjlEK2tqQVE5Y0FudEtPOTNSM3ZFbit6UDZDZTFPRUp3OGsyU1dXa1l0bmQ2dFIKUkt1U3dBeDBnelNqWVRCZk1BNEdBMVVkRHdFQi93UUVBd0lDaERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjRApBUVlJS3dZQkJRVUhBd0l3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVMCtuak9iaHcrRkMwCitEazBuVWtzaG1HYU5VSXdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBS3pRaFJhb1hYeVV1RklSYkx6aldSSmkKRSszVGtEeVZqZjNxYnVnUHlaeXlBaUVBcHoyZEVNUVpDc1l5R2g5VDRQU2VXRDEyTlVYNlI4NWEycnlZbUJPZgp6d0k9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
  420. key: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUllWTFCbGhaaDB6QTZySXE1WEVlc1BwemVlZ0xXWDBJVTZkcktURUdEaW5vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFY2sveWM1NmZFWnFybkJLUFJzWVlCcXZZUWZVbG4wUDZTTUJEMXdDZTBvNzNkSGU4U2Y3TQovb0o3VTRRbkR5VFpKWmFSaTJkM3ExRkVxNUxBREhTRE5BPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
  421. # # The container image used to create the etcd service.
  422. # image: gcr.io/etcd-development/etcd:v3.5.9
  423. # # The `advertisedSubnets` field configures the networks to pick etcd advertised IP from.
  424. # advertisedSubnets:
  425. # - 10.0.0.0/8
  426. # A list of urls that point to additional manifests.
  427. extraManifests: []
  428. # - https://www.example.com/manifest1.yaml
  429. # - https://www.example.com/manifest2.yaml
  430. # A list of inline Kubernetes manifests.
  431. inlineManifests: []
  432. # - name: namespace-ci # Name of the manifest.
  433. # contents: |- # Manifest contents as a string.
  434. # apiVersion: v1
  435. # kind: Namespace
  436. # metadata:
  437. # name: ci
  438. # # A key used for the [encryption of secret data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/).
  439. # # Decryption secret example (do not use in production!).
  440. # aescbcEncryptionSecret: z01mye6j16bspJYtTB/5SFX8j7Ph4JXxM2Xuu4vsBPM=
  441. # # Core DNS specific configuration options.
  442. # coreDNS:
  443. # image: registry.k8s.io/coredns/coredns:v1.10.1 # The `image` field is an override to the default coredns image.
  444. # # External cloud provider configuration.
  445. # externalCloudProvider:
  446. # enabled: true # Enable external cloud provider.
  447. # # A list of urls that point to additional manifests for an external cloud provider.
  448. # manifests:
  449. # - https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/rbac.yaml
  450. # - https://raw.githubusercontent.com/kubernetes/cloud-provider-aws/v1.20.0-alpha.0/manifests/aws-cloud-controller-manager-daemonset.yaml
  451. # # A map of key value pairs that will be added while fetching the extraManifests.
  452. # extraManifestHeaders:
  453. # Token: "1234567"
  454. # X-ExtraInfo: info
  455. # # Settings for admin kubeconfig generation.
  456. # adminKubeconfig:
  457. # certLifetime: 1h0m0s # Admin kubeconfig certificate lifetime (default is 1 year).
  458. # # Allows running workload on control-plane nodes.
  459. # allowSchedulingOnControlPlanes: true