Compare commits

...

3 Commits

Author SHA1 Message Date
renovate-bot f9c52e0ea5 chore(deps): update actions/checkout action to v7.0.1
renovate/stability-days Updates have met minimum release age requirement
Validate / validate-node-lables (push) Successful in 3s
Validate / validate-coredns (push) Successful in 2s
Validate / validate-traefik (push) Successful in 4s
2026-08-09 17:36:02 +00:00
t.behrendt 9cf2056952 ci: switch to native path detection (#76)
Deploy / deploy-docker-registry-secret (push) Has been cancelled
Reviewed-on: #76
Co-authored-by: Timo Behrendt <t.behrendt@t00n.de>
Co-committed-by: Timo Behrendt <t.behrendt@t00n.de>
2026-08-09 18:34:57 +02:00
t.behrendt 2cc319c98c chore: remove deprecated nodes (#75)
Deploy / check-changes (push) Successful in 5s
Deploy / deploy-coredns (push) Successful in 3s
Deploy / deploy-traefik (push) Successful in 8s
Deploy / deploy-docker-registry-secret (push) Successful in 18s
Deploy / deploy-node-labels (push) Successful in 31s
Reviewed-on: #75
Co-authored-by: Timo Behrendt <t.behrendt@t00n.de>
Co-committed-by: Timo Behrendt <t.behrendt@t00n.de>
2026-08-09 18:29:48 +02:00
11 changed files with 104 additions and 131 deletions
+26
View File
@@ -0,0 +1,26 @@
name: Deploy
on:
push:
branches:
- main
paths:
- 'coredns/**'
workflow_dispatch:
jobs:
deploy-coredns:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBECONFIG }}
- name: Deploy
run: |
kubectl apply -n kube-system -f coredns
- name: Restart coredns
run: |
kubectl -n kube-system rollout restart deployment coredns
+23
View File
@@ -0,0 +1,23 @@
name: Deploy
on:
push:
branches:
- main
paths:
- 'node-labels/**'
workflow_dispatch:
jobs:
deploy-node-labels:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBECONFIG }}
- name: Deploy
run: |
kubectl apply --server-side --field-manager=t000-n -f node-labels
+47
View File
@@ -0,0 +1,47 @@
name: Deploy
on:
push:
branches:
- main
paths:
- 'traefik/**'
workflow_dispatch:
jobs:
deploy-traefik:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBECONFIG }}
- name: Set ionos api credentials
uses: azure/k8s-create-secret@ba774cded95cc0d795806a986fecd1205a6c2320 # v6.0.1
with:
namespace: kube-system
secret-name: ionos-api-credentials
secret-type: generic
data: |
{
"apiKey": "${{ secrets.IONOS_API_KEY }}"
}
- name: Set admin basic auth credentials
uses: azure/k8s-create-secret@ba774cded95cc0d795806a986fecd1205a6c2320 # v6.0.1
with:
namespace: kube-system
secret-name: admin-basic-auth-credentials
secret-type: Opaque
data: |
{
"auth": "${{ secrets.ADMIN_BASIC_AUTH_CREDENTIALS }}"
}
- name: Deploy
uses: azure/k8s-deploy@51ca02a8b7225fbd0924aac359c5b336a5f1e5b4 # v7.0.0
with:
action: deploy
manifests: "traefik/"
strategy: basic
namespace: kube-system
+1 -94
View File
@@ -7,104 +7,11 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
check-changes:
runs-on: ubuntu-latest
outputs:
node-labels: ${{ steps.filter.outputs.node-labels }}
coredns: ${{ steps.filter.outputs.coredns }}
traefik: ${{ steps.filter.outputs.traefik }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
node-labels:
- 'node-labels/**'
coredns:
- 'coredns/**'
traefik:
- 'traefik/**'
deploy-node-labels:
runs-on: ubuntu-latest
needs: check-changes
if: ${{ needs.check-changes.outputs.node-labels == 'true' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBECONFIG }}
- name: Deploy
run: |
kubectl apply --server-side --field-manager=t000-n -f node-labels
deploy-coredns:
runs-on: ubuntu-latest
needs: check-changes
if: ${{ needs.check-changes.outputs.coredns == 'true' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBECONFIG }}
- name: Deploy
run: |
kubectl apply -n kube-system -f coredns
- name: Restart coredns
run: |
kubectl -n kube-system rollout restart deployment coredns
deploy-traefik:
runs-on: ubuntu-latest
needs: check-changes
if: ${{ needs.check-changes.outputs.traefik == 'true' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBECONFIG }}
- name: Set ionos api credentials
uses: azure/k8s-create-secret@ba774cded95cc0d795806a986fecd1205a6c2320 # v6.0.1
with:
namespace: kube-system
secret-name: ionos-api-credentials
secret-type: generic
data: |
{
"apiKey": "${{ secrets.IONOS_API_KEY }}"
}
- name: Set admin basic auth credentials
uses: azure/k8s-create-secret@ba774cded95cc0d795806a986fecd1205a6c2320 # v6.0.1
with:
namespace: kube-system
secret-name: admin-basic-auth-credentials
secret-type: Opaque
data: |
{
"auth": "${{ secrets.ADMIN_BASIC_AUTH_CREDENTIALS }}"
}
- name: Deploy
uses: azure/k8s-deploy@51ca02a8b7225fbd0924aac359c5b336a5f1e5b4 # v7.0.0
with:
action: deploy
manifests: "traefik/"
strategy: basic
namespace: kube-system
deploy-docker-registry-secret: deploy-docker-registry-secret:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: check-changes needs: check-changes
steps: steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0 - uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1 - uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with: with:
+3 -3
View File
@@ -9,7 +9,7 @@ jobs:
validate-node-lables: validate-node-lables:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0 - uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1 - uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with: with:
@@ -22,7 +22,7 @@ jobs:
validate-coredns: validate-coredns:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0 - uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1 - uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with: with:
@@ -35,7 +35,7 @@ jobs:
validate-traefik: validate-traefik:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0 - uses: azure/setup-kubectl@829323503d1be3d00ca8346e5391ca0b07a9ab0d # v5.1.0
- uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1 - uses: azure/k8s-set-context@8698eba2499e9012f0d5085f8798077cce4bc526 # v5.0.1
with: with:
+1 -2
View File
@@ -43,5 +43,4 @@ data:
import /etc/coredns/custom/*.server import /etc/coredns/custom/*.server
NodeHosts: | NodeHosts: |
192.168.0.50 k3sh0 192.168.0.50 k3sh0
192.168.0.51 k3sh1 192.168.0.53 k3sh3
192.168.0.52 k3sh2
+3
View File
@@ -5,3 +5,6 @@ metadata:
labels: labels:
de.t000-n.net.class: "fast" de.t000-n.net.class: "fast"
de.t000-n.net.bw: "10g" de.t000-n.net.bw: "10g"
de.t000-n.drive.mnt-syncthing: ""
de.t000-n.drive.mnt-torrent: ""
de.t000-n.sysctl.net.ipv4.conf.all.src_valid_mark: "1"
-7
View File
@@ -1,7 +0,0 @@
apiVersion: v1
kind: Node
metadata:
name: k3sh1
labels:
de.t000-n.net.class: "fast"
de.t000-n.net.bw: "10g"
-10
View File
@@ -1,10 +0,0 @@
apiVersion: v1
kind: Node
metadata:
name: k3sh2
labels:
de.t000-n.net.class: "fast"
de.t000-n.net.bw: "10g"
de.t000-n.drive.mnt-syncthing: ""
de.t000-n.drive.mnt-torrent: ""
de.t000-n.sysctl.net.ipv4.conf.all.src_valid_mark: "1"
-13
View File
@@ -1,13 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: crowdsec-bouncer
namespace: kube-system
spec:
plugin:
crowdsec-bouncer-traefik-plugin:
Enabled: true
CrowdsecMode: live
CrowdsecLapiUrl: "http://crowdsec-service.kube-system.svc.cluster.local:8080"
CrowdsecLapiKey: "${CROWDSEC_BOUNCER_API_KEY}"
UpdateIntervalSeconds: 10
-2
View File
@@ -54,8 +54,6 @@ spec:
externalTrafficPolicy: Local externalTrafficPolicy: Local
externalIPs: externalIPs:
- 192.168.0.50 - 192.168.0.50
- 192.168.0.51
- 192.168.0.52
- 192.168.0.53 - 192.168.0.53
persistence: persistence:
enabled: true enabled: true