Compare commits
10
Commits
68e07e7807
...
e55ae1a1f5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e55ae1a1f5 | ||
|
|
f7274e4ccc | ||
|
|
e895ba359f | ||
|
|
36f8a6c17b | ||
|
|
a8f4b51b7f | ||
|
|
fe0252bff0 | ||
|
|
3e122b90fa | ||
|
|
e5a7ba8da8 | ||
|
|
48a7a16f90 | ||
|
|
535ea53fcf |
No files matched your search
@@ -5,6 +5,7 @@ version: '3'
|
|||||||
vars:
|
vars:
|
||||||
TALHELPER_CLUSTER_DIR: '{{.KUBERNETES_DIR}}/bootstrap/talos/clusterconfig'
|
TALHELPER_CLUSTER_DIR: '{{.KUBERNETES_DIR}}/bootstrap/talos/clusterconfig'
|
||||||
TALHELPER_CONFIG_FILE: '{{.KUBERNETES_DIR}}/bootstrap/talos/talconfig.yaml'
|
TALHELPER_CONFIG_FILE: '{{.KUBERNETES_DIR}}/bootstrap/talos/talconfig.yaml'
|
||||||
|
TALHELPER_SECRET_FILE: '{{.KUBERNETES_DIR}}/bootstrap/talos/talsecret.sops.yaml'
|
||||||
TALOSCONFIG: '{{.TALHELPER_CLUSTER_DIR}}/talosconfig'
|
TALOSCONFIG: '{{.TALHELPER_CLUSTER_DIR}}/talosconfig'
|
||||||
|
|
||||||
env:
|
env:
|
||||||
@@ -12,11 +13,24 @@ env:
|
|||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
|
||||||
|
generate-config:
|
||||||
|
desc: Generate Talos configuration
|
||||||
|
cmd: talhelper genconfig --config-file {{.TALHELPER_CONFIG_FILE}} --secret-file {{.TALHELPER_SECRET_FILE}} --out-dir {{.TALHELPER_CLUSTER_DIR}}
|
||||||
|
preconditions:
|
||||||
|
- msg: Missing talhelper config file
|
||||||
|
sh: test -f {{.TALHELPER_CONFIG_FILE}}
|
||||||
|
- msg: Missing Sops config file
|
||||||
|
sh: test -f {{.SOPS_CONFIG_FILE}}
|
||||||
|
- msg: Missing Sops Age key file
|
||||||
|
sh: test -f {{.SOPS_AGE_KEY_FILE}}
|
||||||
|
|
||||||
apply-config:
|
apply-config:
|
||||||
desc: Apply Talos configuration to a node
|
desc: Apply Talos configuration to a node
|
||||||
cmd: talosctl apply-config --mode={{.MODE}} --nodes {{.HOSTNAME}} --file {{.TALHELPER_CLUSTER_DIR}}/{{.CLUSTER_NAME}}-{{.HOSTNAME}}.yaml
|
cmds:
|
||||||
|
- talosctl --nodes {{.HOSTNAME}} apply-config --mode=staged --file {{.TALHELPER_CLUSTER_DIR}}/{{.CLUSTER_NAME}}-{{.HOSTNAME}}.yaml
|
||||||
|
- talosctl --nodes {{.HOSTNAME}} reboot
|
||||||
|
- talosctl --nodes {{.HOSTNAME}} health --wait-timeout=10m --server=false
|
||||||
vars:
|
vars:
|
||||||
MODE: '{{.MODE | default "no-reboot"}}'
|
|
||||||
CLUSTER_NAME:
|
CLUSTER_NAME:
|
||||||
sh: yq '.clusterName' {{.TALHELPER_CONFIG_FILE}}
|
sh: yq '.clusterName' {{.TALHELPER_CONFIG_FILE}}
|
||||||
requires:
|
requires:
|
||||||
@@ -71,8 +85,7 @@ tasks:
|
|||||||
|
|
||||||
upgrade-k8s:
|
upgrade-k8s:
|
||||||
desc: Upgrade Kubernetes
|
desc: Upgrade Kubernetes
|
||||||
cmds:
|
cmd: talosctl --nodes {{.KUBERNETES_CONTROLLER}} upgrade-k8s --to {{.KUBERNETES_VERSION}}
|
||||||
- talosctl --nodes {{.KUBERNETES_CONTROLLER}} upgrade-k8s --to {{.KUBERNETES_VERSION}}
|
|
||||||
vars:
|
vars:
|
||||||
KUBERNETES_CONTROLLER:
|
KUBERNETES_CONTROLLER:
|
||||||
sh: talosctl config info --output json | jq --raw-output '.endpoints[]' | shuf -n 1
|
sh: talosctl config info --output json | jq --raw-output '.endpoints[]' | shuf -n 1
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ jq
|
|||||||
kubeconform
|
kubeconform
|
||||||
kubectl-bin
|
kubectl-bin
|
||||||
kustomize
|
kustomize
|
||||||
minijinja
|
minijinja-cli-bin
|
||||||
moreutils
|
moreutils
|
||||||
sops
|
sops
|
||||||
stern-bin
|
stern-bin
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ tasks:
|
|||||||
- cmd: curl -sSfL https://github.com/mitsuhiko/minijinja/releases/latest/download/minijinja-cli-installer.sh | bash
|
- cmd: curl -sSfL https://github.com/mitsuhiko/minijinja/releases/latest/download/minijinja-cli-installer.sh | bash
|
||||||
env:
|
env:
|
||||||
MINIJINJA_CLI_INSTALL_DIR: '.'
|
MINIJINJA_CLI_INSTALL_DIR: '.'
|
||||||
|
MINIJINJA_CLI_UNMANAGED_INSTALL: 'true'
|
||||||
HELM_INSTALL_DIR: '.'
|
HELM_INSTALL_DIR: '.'
|
||||||
USE_SUDO: 'false'
|
USE_SUDO: 'false'
|
||||||
|
|
||||||
|
|||||||
@@ -288,6 +288,42 @@ There might be a situation where you want to destroy your Kubernetes cluster. Th
|
|||||||
task talos:reset # --force
|
task talos:reset # --force
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 🛠️ Talos and Kubernetes Maintenance
|
||||||
|
|
||||||
|
#### ⚙️ Updating Talos node configuration
|
||||||
|
|
||||||
|
📍 _Ensure you have updated `talconfig.yaml` and any patches with your updated configuration._
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# (Re)generate the Talos config
|
||||||
|
task talos:generate-config
|
||||||
|
# Apply the config to the node
|
||||||
|
task talos:apply-config HOSTNAME=? MODE=?
|
||||||
|
# e.g. task talos:apply-config HOSTNAME=k8s-0 MODE=reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
#### ⬆️ Updating Talos and Kubernetes versions
|
||||||
|
|
||||||
|
📍 _Ensure the `talosVersion` and `kubernetesVersion` in `talhelper.yaml` are up-to-date with the version you wish to upgrade to._
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Upgrade the whole cluster to a newer Talos version
|
||||||
|
task talos:upgrade-cluster
|
||||||
|
# e.g. task talos:upgrade-cluster
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Upgrade node to a newer Talos version
|
||||||
|
task talos:upgrade-node HOSTNAME=?
|
||||||
|
# e.g. task talos:upgrade HOSTNAME=k8s-0
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Upgrade cluster to a newer Kubernetes version
|
||||||
|
task talos:upgrade-k8s
|
||||||
|
# e.g. task talos:upgrade-k8s
|
||||||
|
```
|
||||||
|
|
||||||
## 🤖 Renovate
|
## 🤖 Renovate
|
||||||
|
|
||||||
[Renovate](https://www.mend.io/renovate) is a tool that automates dependency management. It is designed to scan your repository around the clock and open PRs for out-of-date dependencies it finds. Common dependencies it can discover are Helm charts, container images, GitHub Actions, Ansible roles... even Flux itself! Merging a PR will cause Flux to apply the update to your cluster.
|
[Renovate](https://www.mend.io/renovate) is a tool that automates dependency management. It is designed to scan your repository around the clock and open PRs for out-of-date dependencies it finds. Common dependencies it can discover are Helm charts, container images, GitHub Actions, Ansible roles... even Flux itself! Merging a PR will cause Flux to apply the update to your cluster.
|
||||||
@@ -342,28 +378,6 @@ Below is a general guide on trying to debug an issue with an resource or applica
|
|||||||
|
|
||||||
Resolving problems that you have could take some tweaking of your YAML manifests in order to get things working, other times it could be a external factor like permissions on NFS. If you are unable to figure out your problem see the help section below.
|
Resolving problems that you have could take some tweaking of your YAML manifests in order to get things working, other times it could be a external factor like permissions on NFS. If you are unable to figure out your problem see the help section below.
|
||||||
|
|
||||||
## ⬆️ Upgrading Talos and Kubernetes
|
|
||||||
|
|
||||||
📍 _Ensure the `talosVersion` and `kubernetesVersion` in `talhelper.yaml` are up-to-date with the version you wish to upgrade to._
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Upgrade the whole cluster to a newer Talos version
|
|
||||||
task talos:upgrade-cluster
|
|
||||||
# e.g. task talos:upgrade-cluster
|
|
||||||
```
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Upgrade node to a newer Talos version
|
|
||||||
task talos:upgrade-node HOSTNAME=?
|
|
||||||
# e.g. task talos:upgrade HOSTNAME=k8s-0
|
|
||||||
```
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Upgrade cluster to a newer Kubernetes version
|
|
||||||
task talos:upgrade-k8s
|
|
||||||
# e.g. task talos:upgrade-k8s
|
|
||||||
```
|
|
||||||
|
|
||||||
## 👉 Help
|
## 👉 Help
|
||||||
|
|
||||||
- Make a post in this repository's Github [Discussions](https://github.com/onedr0p/cluster-template/discussions).
|
- Make a post in this repository's Github [Discussions](https://github.com/onedr0p/cluster-template/discussions).
|
||||||
@@ -377,6 +391,10 @@ The cluster is your oyster (or something like that). Below are some optional con
|
|||||||
|
|
||||||
To browse or get ideas on applications people are running, community member [@whazor](https://github.com/whazor) created [Kubesearch](https://kubesearch.dev) as a creative way to search Flux HelmReleases across Github and Gitlab.
|
To browse or get ideas on applications people are running, community member [@whazor](https://github.com/whazor) created [Kubesearch](https://kubesearch.dev) as a creative way to search Flux HelmReleases across Github and Gitlab.
|
||||||
|
|
||||||
|
### DNS
|
||||||
|
|
||||||
|
Instead of using [k8s_gateway](https://github.com/ori-edge/k8s_gateway) to provide DNS for your applications you might want to check out [external-dns](https://github.com/kubernetes-sigs/external-dns), it has wide support for many different providers such as [Pi-hole](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/pihole.md), [UniFi](https://github.com/kashalls/external-dns-unifi-webhook), [Adguard Home](https://github.com/muhlba91/external-dns-provider-adguard), [Bind](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/rfc2136.md) and more.
|
||||||
|
|
||||||
### Storage
|
### Storage
|
||||||
|
|
||||||
The included CSI (openebs in local-hostpath mode) is a great start for storage but soon you might find you need more features like replicated block storage, or to connect to a NFS/SMB/iSCSI server. If you need any of those features be sure to check out the projects like [rook-ceph](https://github.com/rook/rook), [longhorn](https://github.com/longhorn/longhorn), [openebs](https://github.com/openebs/openebs), [democratic-csi](https://github.com/democratic-csi/democratic-csi), [csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs),
|
The included CSI (openebs in local-hostpath mode) is a great start for storage but soon you might find you need more features like replicated block storage, or to connect to a NFS/SMB/iSCSI server. If you need any of those features be sure to check out the projects like [rook-ceph](https://github.com/rook/rook), [longhorn](https://github.com/longhorn/longhorn), [openebs](https://github.com/openebs/openebs), [democratic-csi](https://github.com/democratic-csi/democratic-csi), [csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs),
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ spec:
|
|||||||
#% for item in bootstrap_bgp.peers %#
|
#% for item in bootstrap_bgp.peers %#
|
||||||
- peerAddress: "#{ item }#/32"
|
- peerAddress: "#{ item }#/32"
|
||||||
peerASN: #{ bootstrap_bgp.peer_asn }#
|
peerASN: #{ bootstrap_bgp.peer_asn }#
|
||||||
peerPort: #{ bootstrap_bgp.peer_port | default(179) }#
|
peerPort: #{ bootstrap_bgp.peer_port | default(179, true) }#
|
||||||
#% endfor %#
|
#% endfor %#
|
||||||
#% else %#
|
#% else %#
|
||||||
#% if bootstrap_node_default_gateway %#
|
#% if bootstrap_node_default_gateway %#
|
||||||
|
|||||||
@@ -10,3 +10,16 @@ cluster:
|
|||||||
scheduler:
|
scheduler:
|
||||||
extraArgs:
|
extraArgs:
|
||||||
bind-address: 0.0.0.0
|
bind-address: 0.0.0.0
|
||||||
|
config:
|
||||||
|
apiVersion: kubescheduler.config.k8s.io/v1
|
||||||
|
kind: KubeSchedulerConfiguration
|
||||||
|
profiles:
|
||||||
|
- schedulerName: default-scheduler
|
||||||
|
pluginConfig:
|
||||||
|
- name: PodTopologySpread
|
||||||
|
args:
|
||||||
|
defaultingType: List
|
||||||
|
defaultConstraints:
|
||||||
|
- maxSkew: 1
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
whenUnsatisfiable: ScheduleAnyway
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
machine:
|
||||||
|
network:
|
||||||
|
nameservers:
|
||||||
|
#% for item in bootstrap_dns_servers | default(["1.1.1.1","1.0.0.1"], true) %#
|
||||||
|
- #{ item }#
|
||||||
|
#% endfor %#
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
machine:
|
||||||
|
time:
|
||||||
|
disabled: false
|
||||||
|
servers:
|
||||||
|
#% for item in bootstrap_ntp_servers | default(["time.cloudflare.com"], true) %#
|
||||||
|
- #{ item }#
|
||||||
|
#% endfor %#
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
machine:
|
machine:
|
||||||
sysctls:
|
sysctls:
|
||||||
fs.inotify.max_queued_events: "65536"
|
fs.inotify.max_user_watches: "1048576"
|
||||||
fs.inotify.max_user_watches: "524288"
|
|
||||||
fs.inotify.max_user_instances: "8192"
|
fs.inotify.max_user_instances: "8192"
|
||||||
net.core.rmem_max: "7500000"
|
net.core.rmem_max: "7500000"
|
||||||
net.core.wmem_max: "7500000"
|
net.core.wmem_max: "7500000"
|
||||||
@@ -36,9 +36,9 @@ nodes:
|
|||||||
#% if bootstrap_secureboot.enabled %#
|
#% if bootstrap_secureboot.enabled %#
|
||||||
machineSpec:
|
machineSpec:
|
||||||
secureboot: true
|
secureboot: true
|
||||||
talosImageURL: factory.talos.dev/installer-secureboot/#{ item.schematic_id | default(bootstrap_schematic_id) }#
|
talosImageURL: factory.talos.dev/installer-secureboot/#{ item.schematic_id | default(bootstrap_schematic_id, true) }#
|
||||||
#% else %#
|
#% else %#
|
||||||
talosImageURL: factory.talos.dev/installer/#{ item.schematic_id | default(bootstrap_schematic_id) }#
|
talosImageURL: factory.talos.dev/installer/#{ item.schematic_id | default(bootstrap_schematic_id, true) }#
|
||||||
#% endif %#
|
#% endif %#
|
||||||
controlPlane: #{ (item.controller) | string | lower }#
|
controlPlane: #{ (item.controller) | string | lower }#
|
||||||
networkInterfaces:
|
networkInterfaces:
|
||||||
@@ -49,7 +49,7 @@ nodes:
|
|||||||
- vlanId: #{ bootstrap_vlan }#
|
- vlanId: #{ bootstrap_vlan }#
|
||||||
addresses:
|
addresses:
|
||||||
- "#{ item.address }#/#{ bootstrap_node_network.split('/') | last }#"
|
- "#{ item.address }#/#{ bootstrap_node_network.split('/') | last }#"
|
||||||
mtu: #{ item.mtu | default(1500) }#
|
mtu: #{ item.mtu | default(1500, true) }#
|
||||||
routes:
|
routes:
|
||||||
- network: 0.0.0.0/0
|
- network: 0.0.0.0/0
|
||||||
#% if bootstrap_node_default_gateway %#
|
#% if bootstrap_node_default_gateway %#
|
||||||
@@ -62,7 +62,6 @@ nodes:
|
|||||||
ip: "#{ bootstrap_controller_vip }#"
|
ip: "#{ bootstrap_controller_vip }#"
|
||||||
#% endif %#
|
#% endif %#
|
||||||
#% else %#
|
#% else %#
|
||||||
#% if item.address %#
|
|
||||||
dhcp: false
|
dhcp: false
|
||||||
addresses:
|
addresses:
|
||||||
- "#{ item.address }#/#{ bootstrap_node_network.split('/') | last }#"
|
- "#{ item.address }#/#{ bootstrap_node_network.split('/') | last }#"
|
||||||
@@ -73,10 +72,7 @@ nodes:
|
|||||||
#% else %#
|
#% else %#
|
||||||
gateway: "#{ bootstrap_node_network | nthhost(1) }#"
|
gateway: "#{ bootstrap_node_network | nthhost(1) }#"
|
||||||
#% endif %#
|
#% endif %#
|
||||||
#% else %#
|
mtu: #{ item.mtu | default(1500, true) }#
|
||||||
dhcp: true
|
|
||||||
#% endif %#
|
|
||||||
mtu: #{ item.mtu | default(1500) }#
|
|
||||||
#% if item.controller %#
|
#% if item.controller %#
|
||||||
vip:
|
vip:
|
||||||
ip: "#{ bootstrap_controller_vip }#"
|
ip: "#{ bootstrap_controller_vip }#"
|
||||||
@@ -116,27 +112,6 @@ nodes:
|
|||||||
|
|
||||||
# Global patches
|
# Global patches
|
||||||
patches:
|
patches:
|
||||||
#% if bootstrap_dns_servers | length %#
|
|
||||||
- # Force nameserver
|
|
||||||
|-
|
|
||||||
machine:
|
|
||||||
network:
|
|
||||||
nameservers:
|
|
||||||
#% for item in bootstrap_dns_servers %#
|
|
||||||
- #{ item }#
|
|
||||||
#% endfor %#
|
|
||||||
#% endif %#
|
|
||||||
#% if bootstrap_ntp_servers | length %#
|
|
||||||
- # Configure NTP
|
|
||||||
|-
|
|
||||||
machine:
|
|
||||||
time:
|
|
||||||
disabled: false
|
|
||||||
servers:
|
|
||||||
#% for item in bootstrap_ntp_servers %#
|
|
||||||
- #{ item }#
|
|
||||||
#% endfor %#
|
|
||||||
#% endif %#
|
|
||||||
#% if bootstrap_secureboot.enabled and bootstrap_secureboot.encrypt_disk_with_tpm %#
|
#% if bootstrap_secureboot.enabled and bootstrap_secureboot.encrypt_disk_with_tpm %#
|
||||||
- # Encrypt system disk with TPM
|
- # Encrypt system disk with TPM
|
||||||
|-
|
|-
|
||||||
|
|||||||
+11
-14
@@ -5,7 +5,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# (Optional) Cluster name; affects Cilium and Talos
|
# (Optional) Cluster name; affects Cilium and Talos
|
||||||
# Default is "home-kubernetes"
|
# DEFAULT: "home-kubernetes"
|
||||||
bootstrap_cluster_name: ""
|
bootstrap_cluster_name: ""
|
||||||
|
|
||||||
# (Required) Generated schematic id from https://factory.talos.dev/
|
# (Required) Generated schematic id from https://factory.talos.dev/
|
||||||
@@ -18,12 +18,12 @@ bootstrap_node_network: ""
|
|||||||
# Worker nodes are optional
|
# Worker nodes are optional
|
||||||
bootstrap_node_inventory: []
|
bootstrap_node_inventory: []
|
||||||
# - name: "" # (Required) Name of the node (must match [a-z0-9-\]+)
|
# - name: "" # (Required) Name of the node (must match [a-z0-9-\]+)
|
||||||
# address: "" # (Optional) IP address of the node (Remove if node has a static DHCP reservation)
|
# address: "" # (Optional) IP address of the node
|
||||||
# controller: true # (Required) Set to true if this is a controller node
|
# controller: true # (Required) Set to true if this is a controller node
|
||||||
# disk: "" # (Required) Device path or serial number of the disk for this node (talosctl disks -n <ip> --insecure)
|
# disk: "" # (Required) Device path or serial number of the disk for this node (talosctl disks -n <ip> --insecure)
|
||||||
# mac_addr: "" # (Required) MAC address of the NIC for this node (talosctl get links -n <ip> --insecure)
|
# mac_addr: "" # (Required) MAC address of the NIC for this node (talosctl get links -n <ip> --insecure)
|
||||||
# schematic_id: "" # (Optional) Override the 'bootstrap_schematic_id' with a node specific schematic ID from https://factory.talos.dev/
|
# schematic_id: "" # (Optional) Override the 'bootstrap_schematic_id' with a node specific schematic ID from https://factory.talos.dev/
|
||||||
# mtu: "" # (Optional) MTU for the NIC, default is 1500
|
# mtu: "" # (Optional) MTU for the NIC. DEFAULT: 1500
|
||||||
# manifests: # (Optional) Additional manifests to include after MachineConfig
|
# manifests: # (Optional) Additional manifests to include after MachineConfig
|
||||||
# - extra.yaml # Ref: https://www.talos.dev/v1.7/reference/configuration/extensions/extensionserviceconfig/
|
# - extra.yaml # Ref: https://www.talos.dev/v1.7/reference/configuration/extensions/extensionserviceconfig/
|
||||||
# extension_services: # (Optional) Additional talhelper ExtensionServices (supports talenv.sops.yaml envsubst)
|
# extension_services: # (Optional) Additional talhelper ExtensionServices (supports talenv.sops.yaml envsubst)
|
||||||
@@ -36,18 +36,15 @@ bootstrap_node_inventory: []
|
|||||||
# - key=value
|
# - key=value
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
# (Optional) The DNS servers to use for the cluster nodes.
|
# The DNS servers to use for the cluster nodes.
|
||||||
# Default is pulled from your DHCP server.
|
# DEFAULT: [1.1.1.1, 1.0.0.1]
|
||||||
# If using a local DNS server make sure it meets the following requirements:
|
# If using a local DNS server make sure it meets the following requirements:
|
||||||
# 1. your nodes can reach it
|
# 1. your nodes can reach it
|
||||||
# 2. it is configured to forward requests to a public DNS server
|
# 2. it is configured to forward requests to a public DNS server
|
||||||
# 3. you are not force redirecting DNS requests to it - this will break cert generation over DNS01
|
|
||||||
# If using multiple DNS servers make sure they are setup the same way, there is no
|
|
||||||
# guarantee that the first DNS server will always be used for every lookup.
|
|
||||||
bootstrap_dns_servers: []
|
bootstrap_dns_servers: []
|
||||||
|
|
||||||
# (Optional) The NTP servers to use for the cluster nodes.
|
# The NTP servers to use for the cluster nodes.
|
||||||
# Default is pulled from your DHCP server.
|
# DEFAULT: [time.cloudflare.com]
|
||||||
bootstrap_ntp_servers: []
|
bootstrap_ntp_servers: []
|
||||||
|
|
||||||
# (Required) The pod CIDR for the cluster, this must NOT overlap with any
|
# (Required) The pod CIDR for the cluster, this must NOT overlap with any
|
||||||
@@ -71,7 +68,7 @@ bootstrap_controller_vip: ""
|
|||||||
bootstrap_tls_sans: []
|
bootstrap_tls_sans: []
|
||||||
|
|
||||||
# (Optional) The default gateway for the nodes
|
# (Optional) The default gateway for the nodes
|
||||||
# Default is derrived from bootstrap_node_network (e.g. 192.168.1.1)
|
# DEFAULT: .1 derrived from bootstrap_node_network (e.g. 192.168.1.1)
|
||||||
bootstrap_node_default_gateway: ""
|
bootstrap_node_default_gateway: ""
|
||||||
|
|
||||||
# (Optional) Add vlan tag to network master device, leave blank if you tag ports on your switch instead
|
# (Optional) Add vlan tag to network master device, leave blank if you tag ports on your switch instead
|
||||||
@@ -90,13 +87,13 @@ bootstrap_age_pubkey: ""
|
|||||||
bootstrap_bgp:
|
bootstrap_bgp:
|
||||||
enabled: false
|
enabled: false
|
||||||
# (Optional) If using multiple BGP peers add them here.
|
# (Optional) If using multiple BGP peers add them here.
|
||||||
# Default is .1 derrived from host_network: ['x.x.x.1']
|
# DEFAULT: .1 derrived from host_network: ['x.x.x.1']
|
||||||
peers: []
|
peers: []
|
||||||
# (Required) Set the BGP Autonomous System Number for the router(s) and nodes.
|
# (Required) Set the BGP Autonomous System Number for the router(s) and nodes.
|
||||||
# If these match, iBGP will be used. If not, eBGP will be used.
|
# If these match, iBGP will be used. If not, eBGP will be used.
|
||||||
peer_asn: "" # Router(s) AS
|
peer_asn: "" # Router(s) AS
|
||||||
local_asn: "" # Node(s) AS
|
local_asn: "" # Node(s) AS
|
||||||
peer_port: 179 # BGP Port - default is TCP port 179
|
peer_port: 179 # BGP Port. DEFAULT: 179
|
||||||
# (Required) The advertised CIDR for the cluster, this must NOT overlap with any
|
# (Required) The advertised CIDR for the cluster, this must NOT overlap with any
|
||||||
# existing networks and is usually a /16 (64K IPs).
|
# existing networks and is usually a /16 (64K IPs).
|
||||||
# If you want to use IPv6 check the advanced flags below
|
# If you want to use IPv6 check the advanced flags below
|
||||||
@@ -112,7 +109,7 @@ bootstrap_secureboot:
|
|||||||
encrypt_disk_with_tpm: false
|
encrypt_disk_with_tpm: false
|
||||||
|
|
||||||
# (Optional) Change Cilium load balancer mode
|
# (Optional) Change Cilium load balancer mode
|
||||||
# Default is "dsr" (Direct Server Return)
|
# DEFAULT: "dsr"
|
||||||
# Ref: https://docs.cilium.io/en/stable/network/kubernetes/kubeproxy-free/
|
# Ref: https://docs.cilium.io/en/stable/network/kubernetes/kubeproxy-free/
|
||||||
bootstrap_loadbalancer_mode: ""
|
bootstrap_loadbalancer_mode: ""
|
||||||
|
|
||||||
|
|||||||
@@ -33,8 +33,7 @@ echo "=== Validating kustomizations in ${KUBERNETES_DIR}/flux ==="
|
|||||||
find "${KUBERNETES_DIR}/flux" -type f -name $kustomize_config -print0 | while IFS= read -r -d $'\0' file;
|
find "${KUBERNETES_DIR}/flux" -type f -name $kustomize_config -print0 | while IFS= read -r -d $'\0' file;
|
||||||
do
|
do
|
||||||
echo "=== Validating kustomizations in ${file/%$kustomize_config} ==="
|
echo "=== Validating kustomizations in ${file/%$kustomize_config} ==="
|
||||||
kustomize build "${file/%$kustomize_config}" "${kustomize_args[@]}" | \
|
kustomize build "${file/%$kustomize_config}" "${kustomize_args[@]}" | kubeconform "${kubeconform_args[@]}"
|
||||||
kubeconform "${kubeconform_args[@]}"
|
|
||||||
if [[ ${PIPESTATUS[0]} != 0 ]]; then
|
if [[ ${PIPESTATUS[0]} != 0 ]]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -44,8 +43,7 @@ echo "=== Validating kustomizations in ${KUBERNETES_DIR}/apps ==="
|
|||||||
find "${KUBERNETES_DIR}/apps" -type f -name $kustomize_config -print0 | while IFS= read -r -d $'\0' file;
|
find "${KUBERNETES_DIR}/apps" -type f -name $kustomize_config -print0 | while IFS= read -r -d $'\0' file;
|
||||||
do
|
do
|
||||||
echo "=== Validating kustomizations in ${file/%$kustomize_config} ==="
|
echo "=== Validating kustomizations in ${file/%$kustomize_config} ==="
|
||||||
kustomize build "${file/%$kustomize_config}" "${kustomize_args[@]}" | \
|
kustomize build "${file/%$kustomize_config}" "${kustomize_args[@]}" | kubeconform "${kubeconform_args[@]}"
|
||||||
kubeconform "${kubeconform_args[@]}"
|
|
||||||
if [[ ${PIPESTATUS[0]} != 0 ]]; then
|
if [[ ${PIPESTATUS[0]} != 0 ]]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in new issue
Block a user