dyndns/kube.yml

89 lines
1.7 KiB
YAML

apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
name: dns.app.keks.cloud
namespace: dyndns
spec:
secretName: dns-app-keks-cloud-tls
acme:
config:
- dns01:
provider: cf-dns
domains:
- 'dns.app.keks.cloud'
commonName: 'dns.app.keks.cloud'
dnsNames:
- dns.app.keks.cloud
issuerRef:
kind: ClusterIssuer
name: letsencrypt-prod
---
apiVersion: v1
kind: ConfigMap
metadata:
name: env-dns-web
namespace: dyndns
data:
DYNDNS_CONFIG: "file"
DYNDNS_CONFIG_FILE: "pv/config.json"
CLOUDFLARE_API_KEY: "b82e4168ec5b30b1a6cbda0679e8827af9481"
CLOUDFLARE_DOMAIN: "keks.cloud"
CLOUDFLARE_MAIL: "cloudflare@kekskurse.de"
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: webapi
namespace: dyndns
spec:
replicas: 1
template:
metadata:
labels:
app: webapi
spec:
containers:
- name: web
image: docker.keks.cloud/soeren/dyndns:latest
ports:
- containerPort: 80
envFrom:
- configMapRef:
name: env-dns-web
imagePullSecrets:
- name: docker-keks-cloud
---
apiVersion: v1
kind: Service
metadata:
annotations:
field.cattle.io/targetWorkloadIds: '["deployment:dyndns:webapi"]'
name: ingress-dyndns
namespace: dyndns
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
type: ClusterIP
status:
loadBalancer: {}
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: webapi
namespace: dyndns
spec:
rules:
- host: dns.app.keks.cloud
http:
paths:
- backend:
serviceName: ingress-dyndns
servicePort: 80
path: /
tls:
- secretName: dns-app-keks-cloud-tls