Compare commits

...

7 commits

5 changed files with 32 additions and 157 deletions

11
Chart.yaml Normal file
View file

@ -0,0 +1,11 @@
apiVersion: v2
name: home-server
description: A Helm chart for deploying the home-server application
type: application
version: 0.1.0
appVersion: "1.0.0"
dependencies:
- name: dns
version: 0.1.0
repository: "file://charts/dns"

View file

@ -1,138 +0,0 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: bind-slave-config
data:
named.conf: |
include "/etc/bind/externaldns-key.conf";
options {
directory "/var/cache/bind";
recursion yes;
allow-query { any; };
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
forwarders {
10.40.0.254;
};
dnssec-validation auto;
};
zone "." IN {
type hint;
file "/usr/share/dns/root.hints";
};
zone "hxme.net." IN {
type master;
file "/etc/bind/db.hxme.net";
allow-update { key "externaldns-key"; };
};
db.hxme.net: |
$TTL 3600
@ IN SOA ns1.hxme.net. admin.hxme.net. (
1 ; Serial
7200 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.hxme.net.
ns1 IN A 10.40.0.110
@ IN A 10.40.0.110
www IN A 10.40.0.110
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: bind-slave
spec:
selector:
matchLabels:
app: bind-slave
template:
metadata:
labels:
app: bind-slave
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
securityContext:
fsGroup: 999
initContainers:
- name: fetch-root-hints
image: debian:12
command:
- sh
- -c
- |
apt update && apt -y install curl
curl -sfSL https://www.internic.net/domain/named.cache -o /usr/share/dns/root.hints
volumeMounts:
- mountPath: /usr/share/dns
name: root-hints
containers:
- name: bind-slave
image: internetsystemsconsortium/bind9:9.18
command: ["named", "-g", "-c", "/etc/bind/named.conf"]
ports:
- containerPort: 53
protocol: UDP
- containerPort: 53
protocol: TCP
volumeMounts:
- name: config
mountPath: /etc/bind/named.conf
subPath: named.conf
- name: config
mountPath: /etc/bind/db.hxme.net
subPath: db.hxme.net
- name: dns-secrets
mountPath: /etc/bind/externaldns-key.conf
subPath: externaldns-key.conf
- name: bind-cache
mountPath: /var/cache/bind
- name: bind-rundir
mountPath: /var/run/named
- name: root-hints
mountPath: /usr/share/dns
volumes:
- name: dns-secrets
secret:
secretName: dns-secrets
- name: config
configMap:
name: bind-slave-config
- name: bind-cache
emptyDir: {}
- name: bind-rundir
emptyDir: {}
- name: root-hints
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: bind-master
namespace: default
spec:
type: LoadBalancer
externalTrafficPolicy: Local
selector:
app: bind-master
ports:
- name: dns-udp
port: 53
protocol: UDP
targetPort: 53
- name: dns-tcp
port: 53
protocol: TCP
targetPort: 53

View file

@ -2,7 +2,7 @@
apiVersion: v1
kind: Namespace
metadata:
name: home-server
name: home-server-prod
---
apiVersion: v1
kind: Namespace

View file

@ -1,14 +1,15 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: home-server-dev
namespace: flux-system
namespace: home-server-dev
spec:
interval: 1m
path: ./deployments
prune: true
sourceRef:
kind: GitRepository
name: home-server-dev
targetNamespace: home-server-dev
chart:
spec:
chart: ./
sourceRef:
kind: GitRepository
name: home-server-dev
namespace: flux-system

View file

@ -1,14 +1,15 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: home-server-prod
namespace: flux-system
namespace: home-server-prod
spec:
interval: 1m
path: ./deployments
prune: true
sourceRef:
kind: GitRepository
name: home-server-prod
targetNamespace: home-server
chart:
spec:
chart: ./
sourceRef:
kind: GitRepository
name: home-server-prod
namespace: flux-system