feat: archive opnsense-dns

This commit is contained in:
auricom
2025-08-21 09:21:39 +02:00
parent 5eeae9bf00
commit 83a750c0f8
6 changed files with 1 additions and 5 deletions

View File

@@ -0,0 +1,20 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/externalsecret_v1.json
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: opnsense-dns
spec:
secretStoreRef:
kind: ClusterSecretStore
name: onepassword-connect
target:
name: opnsense-dns-secret
template:
data:
OPNSENSE_API_KEY: "{{ .EXTERNAL_DNS_OPNSENSE_API_KEY }}"
OPNSENSE_API_SECRET: "{{ .EXTERNAL_DNS_OPNSENSE_API_SECRET }}"
OPNSENSE_HOST: "{{ .OPNSENSE_HOST }}"
dataFrom:
- extract:
key: opnsense

View File

@@ -0,0 +1,90 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/source.toolkit.fluxcd.io/ocirepository_v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: opnsense-dns
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 1.18.0
url: oci://ghcr.io/home-operations/charts-mirror/external-dns
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app opnsense-dns
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: opnsense-dns
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
fullnameOverride: *app
logLevel: debug
deploymentAnnotations:
reloader.stakater.com/auto: "true"
provider:
name: webhook
webhook:
image:
repository: ghcr.io/crutonjohn/external-dns-opnsense-webhook
tag: v0.1.0@sha256:72d4f5c79e515b8a70bb2e48f6472c746671a3ae3d8ad224aa686dd7192e1609
env:
- name: LOG_LEVEL
value: debug
- name: OPNSENSE_API_KEY
valueFrom:
secretKeyRef:
name: &secret opnsense-dns-secret
key: OPNSENSE_API_KEY
- name: OPNSENSE_API_SECRET
valueFrom:
secretKeyRef:
name: *secret
key: OPNSENSE_API_SECRET
- name: OPNSENSE_HOST
valueFrom:
secretKeyRef:
name: *secret
key: OPNSENSE_HOST
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /readyz
port: 8080
initialDelaySeconds: 10
timeoutSeconds: 5
resources:
requests:
memory: 20Mi
cpu: 10m
limits:
memory: 100Mi
extraArgs:
- --managed-record-types=A,AAAA
policy: upsert-only
registry: noop
sources: ["gateway-httproute", "service"]
domainFilters: ["${SECRET_EXTERNAL_DOMAIN}"]
serviceMonitor:
enabled: true
podAnnotations:
secret.reloader.stakater.com/reload: *secret

View File

@@ -0,0 +1,7 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./externalsecret.yaml
- ./helmrelease.yaml

View File

@@ -0,0 +1,24 @@
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app opnsense-dns
namespace: &namespace network
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: external-secrets-stores
namespace: external-secrets
interval: 1h
path: ./kubernetes/apps/network/opnsense-dns/app
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m