diff --git a/k8s/apps/lan-play/app.yaml b/k8s/apps/lan-play/app.yaml new file mode 100644 index 0000000..8007fcd --- /dev/null +++ b/k8s/apps/lan-play/app.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: lan-play + namespace: argocd +spec: + project: apps + destination: + namespace: lan-play + server: https://kubernetes.default.svc + source: + repoURL: ssh://git@gt.hexor.cy:30022/ab/homelab.git + targetRevision: HEAD + path: k8s/apps/lan-play + syncPolicy: + automated: + selfHeal: true + prune: true + syncOptions: + - CreateNamespace=true diff --git a/k8s/apps/lan-play/deployment.yaml b/k8s/apps/lan-play/deployment.yaml new file mode 100644 index 0000000..56949a8 --- /dev/null +++ b/k8s/apps/lan-play/deployment.yaml @@ -0,0 +1,63 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: lan-play + labels: + app.kubernetes.io/name: lan-play +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: lan-play + template: + metadata: + labels: + app.kubernetes.io/name: lan-play + spec: + nodeSelector: + kubernetes.io/hostname: ai.tail2fe2d.ts.net + tolerations: + - key: workload + operator: Equal + value: ai + effect: NoSchedule + containers: + - name: lan-play + image: ultradesu/lan-play:latest + imagePullPolicy: Always + ports: + - name: http + containerPort: 8080 + protocol: TCP + volumeMounts: + - name: media + mountPath: /media + readinessProbe: + tcpSocket: + port: http + initialDelaySeconds: 5 + periodSeconds: 10 + livenessProbe: + tcpSocket: + port: http + initialDelaySeconds: 20 + periodSeconds: 30 + resources: + requests: + cpu: "2" + memory: 2Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + volumes: + - name: media + hostPath: + path: /k8s/lan-play + type: DirectoryOrCreate + securityContext: + seccompProfile: + type: RuntimeDefault diff --git a/k8s/apps/lan-play/ingress.yaml b/k8s/apps/lan-play/ingress.yaml new file mode 100644 index 0000000..b163bb9 --- /dev/null +++ b/k8s/apps/lan-play/ingress.yaml @@ -0,0 +1,60 @@ +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: lan-play-auth +spec: + forwardAuth: + address: http://auth-proxy.auth-proxy.svc:80/auth + trustForwardHeader: true + authResponseHeaders: + - X-Auth-Request-User + - X-Auth-Request-Email + - X-Auth-Request-Groups +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: lan-play-public +spec: + entryPoints: + - websecure + routes: + - match: Host(`lp.hexor.cy`) + kind: Rule + middlewares: + - name: lan-play-auth + services: + - name: lan-play + port: 80 + tls: + secretName: lan-play-tls +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: lan-play-tls +spec: + secretName: lan-play-tls + issuerRef: + name: letsencrypt + kind: ClusterIssuer + dnsNames: + - lp.hexor.cy +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: lan-play-local +spec: + ingressClassName: traefik + rules: + - host: video.lan + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: lan-play + port: + number: 80 diff --git a/k8s/apps/lan-play/kustomization.yaml b/k8s/apps/lan-play/kustomization.yaml new file mode 100644 index 0000000..c531d15 --- /dev/null +++ b/k8s/apps/lan-play/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - app.yaml + - deployment.yaml + - service.yaml + - ingress.yaml diff --git a/k8s/apps/lan-play/service.yaml b/k8s/apps/lan-play/service.yaml new file mode 100644 index 0000000..d70a0b8 --- /dev/null +++ b/k8s/apps/lan-play/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: lan-play + labels: + app.kubernetes.io/name: lan-play +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: lan-play + ports: + - name: http + port: 80 + targetPort: http + protocol: TCP diff --git a/terraform/keycloak/terraform.tfvars b/terraform/keycloak/terraform.tfvars index 3246625..2f850c5 100644 --- a/terraform/keycloak/terraform.tfvars +++ b/terraform/keycloak/terraform.tfvars @@ -24,6 +24,10 @@ proxy_applications = { domain = "import.hexor.cy" allowed_groups = ["hexor-admin"] } + LanPlay = { + domain = "lp.hexor.cy" + allowed_groups = ["hexor-admin"] + } } oauth2_applications = {