fix: update taskfiles and renovate config

Signed-off-by: Devin Buhl <devin@buhl.casa>
This commit is contained in:
Devin Buhl committed 2024-05-21 10:30:33 -04:00
1 parent ca861b2e5c
commit 25d353b0ce
4 files changed
+65 -105

No files matched your search

+17 -28
View File
@@ -12,36 +12,25 @@
"dependencyDashboardTitle": "Renovate Dashboard 🤖",
"suppressNotifications": ["prEditedNotification", "prIgnoreNotification"],
"rebaseWhen": "conflicted",
"schedule": ["on saturday"],
"schedule": ["every weekend"],
"ignorePaths": ["**/*.sops.*"],
"flux": {
"fileMatch": [
"(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"
]
"fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"]
},
"helm-values": {
"fileMatch": [
"(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"
]
"fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"]
},
"helmfile": {
"fileMatch": [
"(^|/)helmfile\\.ya?ml(?:\\.j2)?$"
]
"fileMatch": ["(^|/)helmfile\\.ya?ml(?:\\.j2)?$"]
},
"kubernetes": {
"fileMatch": [
"(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"
]
"fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"]
},
"kustomize": {
"fileMatch": [
"(^|/)kustomization\\.ya?ml(?:\\.j2)?$"
]
"fileMatch": ["(^|/)kustomization\\.ya?ml(?:\\.j2)?$"]
},
"pip_requirements": {
"fileMatch": [
"(^|/)[\\w-]*requirements(-\\w+)?\\.(txt|pip)(?:\\.j2)?$"
]
"fileMatch": ["(^|/)[\\w-]*requirements(-\\w+)?\\.(txt|pip)(?:\\.j2)?$"]
},
// commit message topics
"commitMessageTopic": "{{depName}}",
@@ -62,7 +51,7 @@
{
"description": ["Flux Group"],
"groupName": "Flux",
"matchPackagePatterns": ["flux"],
"matchPackagePatterns": ["fluxcd"],
"matchDatasources": ["docker", "github-tags"],
"versioning": "semver",
"group": {
@@ -71,10 +60,13 @@
"separateMinorPatch": true
},
{
"description": ["System Upgrade Controller Group"],
"groupName": "System Upgrade Controller",
"matchPackagePatterns": ["system-upgrade-controller"],
"matchDatasources": ["docker", "github-releases"],
"description": ["Talos Group"],
"groupName": "Talos",
"matchPackagePatterns": [
"siderolabs/talosctl",
"siderolabs/installer"
],
"matchDatasources": ["docker"],
"group": {
"commitMessageTopic": "{{{groupName}}} group"
},
@@ -199,10 +191,7 @@
{
"customType": "regex",
"description": ["Process custom dependencies"],
"fileMatch": [
"(^|/).taskfiles/.+\\.ya?ml$",
"(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"
],
"fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"],
"matchStrings": [
// # renovate: datasource=helm depName=cilium repository=https://helm.cilium.io
// version: 1.15.1
+2 -8
View File
@@ -2,9 +2,6 @@
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: "3"
vars:
SOPS_CONFIG_FILE: "{{.ROOT_DIR}}/.sops.yaml"
tasks:
age-keygen:
@@ -13,7 +10,7 @@ tasks:
status: ["test -f {{.AGE_FILE}}"]
encrypt:
desc: Encrypt all Kubernetes SOPS secrets that are not already encrypted
desc: Encrypt all Kubernetes SOPS secrets
cmds:
- for: { var: file }
task: .encrypt-file
@@ -21,10 +18,7 @@ tasks:
file: "{{.ITEM}}"
vars:
file:
sh: |
if [ -d "{{.KUBERNETES_DIR}}" ]; then
find "{{.KUBERNETES_DIR}}" -type f -name "*.sops.*" -exec grep -L "ENC\[AES256_GCM" {} \;
fi
sh: find "{{.KUBERNETES_DIR}}" -type f -name "*.sops.*" -exec grep -L "ENC\[AES256_GCM" {} \;
.encrypt-file:
internal: true
+28 -53
View File
@@ -6,6 +6,7 @@ vars:
TALOS_DIR: "{{.KUBERNETES_DIR}}/bootstrap/talos"
TALHELPER_SECRET_FILE: "{{.TALOS_DIR}}/talsecret.sops.yaml"
TALHELPER_CONFIG_FILE: "{{.TALOS_DIR}}/talconfig.yaml"
HELMFILE_FILE: "{{.TALOS_DIR}}/helmfile.yaml"
env:
TALOSCONFIG: "{{.TALOS_DIR}}/clusterconfig/talosconfig"
@@ -16,66 +17,45 @@ tasks:
desc: Bootstrap the Talos cluster
dir: "{{.TALOS_DIR}}"
cmds:
- task: bootstrap-gensecret
- task: bootstrap-genconfig
- task: bootstrap-apply
- task: bootstrap-install
- task: fetch-kubeconfig
- task: bootstrap-apps
- talosctl health --server=false
bootstrap-gensecret:
desc: Generate the Talos secrets
dir: "{{.TALOS_DIR}}"
cmds:
- talhelper gensecret > {{.TALHELPER_SECRET_FILE}}
- task: :sops:.encrypt-file
vars:
file: "{{.TALHELPER_SECRET_FILE}}"
status: ["test -f {{.TALHELPER_SECRET_FILE}}"]
preconditions:
- msg: Missing talhelper config file
sh: test -f {{.TALHELPER_CONFIG_FILE}}
bootstrap-genconfig:
desc: Generate the Talos configs
dir: "{{.TALOS_DIR}}"
cmd: talhelper genconfig --secret-file {{.TALHELPER_SECRET_FILE}}
preconditions:
- msg: Missing talhelper config file
sh: test -f {{.TALHELPER_CONFIG_FILE}}
- msg: Missing talhelper secret file
sh: test -f {{.TALHELPER_SECRET_FILE}}
bootstrap-apply:
desc: Apply the Talos configs to the nodes
dir: "{{.TALOS_DIR}}"
cmd: talhelper gencommand apply --extra-flags=--insecure | bash
preconditions:
- msg: Missing talhelper config file
sh: test -f {{.TALHELPER_CONFIG_FILE}}
bootstrap-install:
desc: Install the Talos cluster
dir: "{{.TALOS_DIR}}"
cmds:
- echo "Installing Talos... ignore the errors and be patient"
- |
if [ ! -f "{{.TALHELPER_SECRET_FILE}}" ]; then
talhelper gensecret > {{.TALHELPER_SECRET_FILE}}
sops --encrypt --in-place {{.TALHELPER_SECRET_FILE}}
fi
- talhelper genconfig --secret-file {{.TALHELPER_SECRET_FILE}}
- talhelper gencommand apply --extra-flags=--insecure | bash
- until talhelper gencommand bootstrap | bash; do sleep 10; done
- sleep 10
- task: fetch-kubeconfig
- task: install-helm-apps
- talosctl health --server=false
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 {{.AGE_FILE}}
fetch-kubeconfig:
desc: Fetch kubeconfig
dir: "{{.TALOS_DIR}}"
cmd: until talhelper gencommand kubeconfig --extra-flags "{{.ROOT_DIR}} --force" | bash; do sleep 10; done
preconditions:
- msg: Missing talhelper config file
sh: test -f {{.TALHELPER_CONFIG_FILE}}
bootstrap-apps:
install-helm-apps:
desc: Bootstrap core apps needed for Talos
dir: "{{.TALOS_DIR}}"
cmds:
- until kubectl --kubeconfig {{.KUBECONFIG_FILE}} wait --for=condition=Ready=False nodes --all --timeout=600s; do sleep 10; done
- helmfile --kubeconfig {{.KUBECONFIG_FILE}} --file helmfile.yaml apply --skip-diff-on-install --suppress-diff
- helmfile --kubeconfig {{.KUBECONFIG_FILE}} --file {{.HELMFILE_FILE}} apply --skip-diff-on-install --suppress-diff
- until kubectl --kubeconfig {{.KUBECONFIG_FILE}} wait --for=condition=Ready nodes --all --timeout=600s; do sleep 10; done
preconditions:
- msg: Missing kubeconfig
sh: test -f {{.KUBECONFIG_FILE}}
- msg: Missing helmfile
sh: test -f {{.HELMFILE_FILE}}
upgrade-talos:
desc: Upgrade talos on a node
@@ -95,13 +75,8 @@ tasks:
- msg: Node not found
sh: talosctl --nodes {{.node}} get machineconfig
fetch-kubeconfig:
desc: Generate talos kubeconfig
dir: "{{.TALOS_DIR}}"
cmd: until talhelper gencommand kubeconfig --extra-flags "{{.ROOT_DIR}} --force" | bash; do sleep 10; done
nuke:
desc: Resets nodes back to maintenance mode so you can re-deploy again straight after
desc: Resets nodes back to maintenance mode
prompt: This will destroy your cluster and reset the nodes back to maintenance mode... continue?
dir: "{{.TALOS_DIR}}"
cmd: talhelper gencommand reset --extra-flags "--reboot {{- if eq .CLI_FORCE false }}--system-labels-to-wipe STATE --system-labels-to-wipe EPHEMERAL{{ end }} --graceful=false --wait=false" | bash
+18 -16
View File
@@ -14,6 +14,7 @@ vars:
KUBECONFIG_FILE: "{{.ROOT_DIR}}/kubeconfig"
MAKEJINJA_CONFIG_FILE: "{{.ROOT_DIR}}/makejinja.toml"
PIP_REQUIREMENTS_FILE: "{{.ROOT_DIR}}/requirements.txt"
SOPS_CONFIG_FILE: "{{.ROOT_DIR}}/.sops.yaml"
# Binaries
PYTHON_BIN: python3
@@ -24,23 +25,19 @@ env:
VIRTUAL_ENV: "{{.ROOT_DIR}}/.venv"
includes:
kubernetes:
aliases: ["k8s"]
taskfile: .taskfiles/Kubernetes/Taskfile.yaml
flux: .taskfiles/Flux/Taskfile.yaml
repository:
aliases: ["repo"]
taskfile: .taskfiles/Repository/Taskfile.yaml
talos: .taskfiles/Talos/Taskfile.yaml
sops: .taskfiles/Sops/Taskfile.yaml
workstation: .taskfiles/Workstation/Taskfile.yaml
kubernetes: .taskfiles/Kubernetes
flux: .taskfiles/Flux
repository: .taskfiles/Repository
talos: .taskfiles/Talos
sops: .taskfiles/Sops
workstation: .taskfiles/Workstation
user:
taskfile: .taskfiles/User
optional: true
tasks:
default: task -l
default: task --list
init:
desc: Initialize configuration files
@@ -49,7 +46,8 @@ tasks:
- cmd: echo === Configuration file copied ===
- cmd: echo Proceed with updating the configuration files...
- cmd: echo {{.BOOTSTRAP_CONFIG_FILE}}
status: ["test -f {{.BOOTSTRAP_CONFIG_FILE}}"]
status:
- test -f {{.BOOTSTRAP_CONFIG_FILE}}
silent: true
configure:
@@ -65,10 +63,14 @@ tasks:
internal: true
cmd: "{{.VIRTUAL_ENV}}/bin/makejinja"
preconditions:
- { msg: "Missing virtual environment", sh: "test -d {{.VIRTUAL_ENV}}" }
- { msg: "Missing Makejinja config file", sh: "test -f {{.MAKEJINJA_CONFIG_FILE}}" }
- { msg: "Missing Makejinja plugin file", sh: "test -f {{.BOOTSTRAP_DIR}}/scripts/plugin.py" }
- { msg: "Missing bootstrap config file", sh: "test -f {{.BOOTSTRAP_CONFIG_FILE}}" }
- msg: Missing virtual environment
sh: test -d {{.VIRTUAL_ENV}}
- msg: Missing Makejinja config file
sh: test -f {{.MAKEJINJA_CONFIG_FILE}}
- msg: Missing Makejinja plugin file
sh: test -f {{.BOOTSTRAP_DIR}}/scripts/plugin.py
- msg: Missing bootstrap config file
sh: test -f {{.BOOTSTRAP_CONFIG_FILE}}
.validate:
internal: true