feat: start with talos
This commit is contained in:
commit
ace89ded66
7 changed files with 175 additions and 0 deletions
0
README.md
Normal file
0
README.md
Normal file
4
talos/.sops.yaml
Normal file
4
talos/.sops.yaml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
creation_rules:
|
||||
- age: >-
|
||||
age1yqc8cmp2x5w4n7w4y7375wt7j6cudm0czan6x3yt2l442hmufqzsrf20ud
|
60
talos/README.md
Normal file
60
talos/README.md
Normal file
|
@ -0,0 +1,60 @@
|
|||
Change into the directory `$HOME/Documents/home-cluster/talos`
|
||||
|
||||
# Required packages
|
||||
```bash
|
||||
brew install talosctl talhelper sops age
|
||||
```
|
||||
## Helpful vscode extension
|
||||
```bash
|
||||
vscode extension @signageos/vscode-sops
|
||||
```
|
||||
|
||||
# Configure sops and age
|
||||
```bash
|
||||
# When decrypting a file with the corresponding identity, SOPS will look for a text
|
||||
# file named keys.txt located in a sops subdirectory of your user configuration directory.
|
||||
mkdir -p $HOME/Library/Application\ Support/sops/age
|
||||
|
||||
# Generate the key pair
|
||||
age-keygen -o $HOME/Library/Application\ Support/sops/age/keys.txt
|
||||
```
|
||||
|
||||
# talhelper
|
||||
## Encryption setup
|
||||
Create and copy the following content into your `.sops.yaml`. Replace `YOUR_PULBIC_AGE_KEY` with the public key that you can find in your previously genereted keys.txt.
|
||||
|
||||
> [!NOTE]
|
||||
> Do not change the indentation!
|
||||
|
||||
```yaml
|
||||
---
|
||||
creation_rules:
|
||||
- age: >-
|
||||
YOUR_PULBIC_AGE_KEY
|
||||
```
|
||||
|
||||
## talos secret
|
||||
Generate and encrypt your new talos secret.
|
||||
```bash
|
||||
talhelper gensecret > talsecret.sops.yaml
|
||||
|
||||
sops -e -i talsecret.sops.yaml
|
||||
```
|
||||
|
||||
> [!CAUTION]
|
||||
> Do not update or change `talsecret.sops.yaml`.
|
||||
|
||||
## talhelper environment vars
|
||||
Create and encrypt the talenv.yaml to store sensitive data used during `talhelper genconfig`
|
||||
```bash
|
||||
vi talenv.yaml
|
||||
|
||||
sops -e -i talenv.yaml
|
||||
```
|
||||
|
||||
## talhelper genconfig
|
||||
The command `talhelper genconfig` will create a `.gitignore`, `talosconfig` and `CLUSTERNAME_HOSTNAMEs.yaml` under clusterconfig.
|
||||
|
||||
> [!CAUTION]
|
||||
> The `.gitignore` contains all genereted files from `talhelper genconfig` because those files contain unencrypted secrets.
|
||||
|
2
talos/clusterconfig/.gitignore
vendored
Normal file
2
talos/clusterconfig/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
home-cluster-talos-01.yaml
|
||||
talosconfig
|
55
talos/talconfig.yaml
Normal file
55
talos/talconfig.yaml
Normal file
|
@ -0,0 +1,55 @@
|
|||
clusterName: home-cluster
|
||||
|
||||
talosVersion: 1.10.0
|
||||
kubernetesVersion: 1.33.0
|
||||
|
||||
endpoint: https://10.10.10.4:6443
|
||||
domain: ${myDomainName}
|
||||
|
||||
additionalMachineCertSans:
|
||||
- 10.10.10.3
|
||||
additionalApiServerCertSans:
|
||||
- 10.10.10.3
|
||||
|
||||
nodes:
|
||||
# control plane nodes
|
||||
- hostname: talos-01
|
||||
controlPlane: true
|
||||
ipAddress: 10.10.10.3
|
||||
networkInterfaces:
|
||||
- interface: eno1
|
||||
addresses:
|
||||
- 10.10.10.3/24
|
||||
routes:
|
||||
- network: 0.0.0.0/0
|
||||
gateway: 10.10.10.1
|
||||
dhcp: false
|
||||
nameservers:
|
||||
- 10.10.10.1
|
||||
installDisk: /dev/nvme0n1
|
||||
time:
|
||||
servers:
|
||||
- 10.10.10.1
|
||||
userVolumes:
|
||||
- name: local-storage
|
||||
provisioning:
|
||||
diskSelector:
|
||||
match: disk.transport == "nvme"
|
||||
maxSize: 500GiB
|
||||
filesystem:
|
||||
type: xfs
|
||||
machineSpec:
|
||||
mode: metal
|
||||
arch: amd64
|
||||
nodeAnnotations:
|
||||
installerImage: '{{ .MachineConfig.MachineInstall.InstallImage }}'
|
||||
|
||||
patches:
|
||||
- |-
|
||||
cluster:
|
||||
network:
|
||||
cni:
|
||||
name: none
|
||||
proxy:
|
||||
disabled: true
|
||||
allowSchedulingOnControlPlanes: true
|
16
talos/talenv.yaml
Normal file
16
talos/talenv.yaml
Normal file
|
@ -0,0 +1,16 @@
|
|||
myDomainName: ENC[AES256_GCM,data:L0VE7SjZvwp/XjKnz2METyKvrw==,iv:VuyScOczqO9To6lb9+ses+twAs3kjbXOMt3o9taHJsU=,tag:w+Z2Sv4ePCaxFlDBn8cGSA==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1yqc8cmp2x5w4n7w4y7375wt7j6cudm0czan6x3yt2l442hmufqzsrf20ud
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOSTB6TjNNQ1BIQm1sZVNn
|
||||
aXJCZ3hnSnF5ZE9pcWMyRG5EK3ZPZ1lUSDFZCllPWmNzUGZzRjkzRkQrckZrL0pG
|
||||
WktrQWZlV1F4ejh5QmVIRjg4akNLR0UKLS0tIDA4Yi9rMFI5N3M1R1d1Ym1iQzli
|
||||
WUdzaSttVUN0QmhmdGVxaDVSV1FBbmcKz6D+BNy9KidIDfe4lwC4INx++z96P1PV
|
||||
TRidxe+Ug78lgzU5twdZTT5udXuvfZ8dJ0Z22NqzykUZbb/Nuj3SQA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-05-05T22:27:33Z"
|
||||
mac: ENC[AES256_GCM,data:KDcfQWYZ/RdUgTX2+30Ey+RQRbX+YG1btJR5jZgd7ueD8GtGtFNXK0GseCKMdbc96vhCqZ7+8UQWX/xymltEKcwZfuOWtoRCr45ZG15A99nazj065BTtOE8SDLd3naEHilgUU00pLKt9YjhOUx7w7lKvxmB+2Ov///iHJzTGMSI=,iv:GK1/DffoRua5DhzSwXrpZlLv3b0V/MY9XoVEHFvrWC0=,tag:qQrO88jeEkTHg36Okzd4zA==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
38
talos/talsecret.sops.yaml
Normal file
38
talos/talsecret.sops.yaml
Normal file
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue