diff --git a/kubernetes/apps/default/kustomization.yaml b/kubernetes/apps/default/kustomization.yaml index e25e3b6ed..50bfc3d11 100644 --- a/kubernetes/apps/default/kustomization.yaml +++ b/kubernetes/apps/default/kustomization.yaml @@ -28,6 +28,7 @@ resources: - ./komga/ks.yaml - ./kresus/ks.yaml - ./kubernetes-schemas/ks.yaml + - ./libmedium/ks.yaml - ./lidarr/ks.yaml - ./linkding/ks.yaml - ./libreddit/ks.yaml diff --git a/kubernetes/apps/default/libmedium/app/config/config.toml b/kubernetes/apps/default/libmedium/app/config/config.toml new file mode 100644 index 000000000..1c796ae2d --- /dev/null +++ b/kubernetes/apps/default/libmedium/app/config/config.toml @@ -0,0 +1,15 @@ +debug = false +source_code = "https://github.com/realaravinth/libmedium" +#cache = "/var/lib/libmedium" + +[server] +# The port at which you want authentication to listen to +# takes a number, choose from 1000-10000 if you dont know what you are doing +port = 7000 +#IP address. Enter 0.0.0.0 to listen on all availale addresses +ip= "0.0.0.0" +# enter your hostname, eg: example.com +domain = "${SECRET_CLUSTER_DOMAIN}" +allow_registration = false +proxy_has_tls = false +#workers = 2 diff --git a/kubernetes/apps/default/libmedium/app/gatus.yaml b/kubernetes/apps/default/libmedium/app/gatus.yaml new file mode 100644 index 000000000..df56a9ed4 --- /dev/null +++ b/kubernetes/apps/default/libmedium/app/gatus.yaml @@ -0,0 +1,22 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: libmedium-gatus-ep + namespace: default + labels: + gatus.io/enabled: "true" +data: + config.yaml: | + endpoints: + - name: libmedium + group: external + url: https://libmedium.${SECRET_CLUSTER_DOMAIN} + interval: 1m + client: + dns-resolver: tcp://1.1.1.1:53 + insecure: true + conditions: + - "[STATUS] == 200" + alerts: + - type: pushover diff --git a/kubernetes/apps/default/libmedium/app/helmrelease.yaml b/kubernetes/apps/default/libmedium/app/helmrelease.yaml new file mode 100644 index 000000000..3c819d409 --- /dev/null +++ b/kubernetes/apps/default/libmedium/app/helmrelease.yaml @@ -0,0 +1,75 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta1.json +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: &app libmedium + namespace: default +spec: + interval: 30m + chart: + spec: + chart: app-template + version: 2.2.0 + sourceRef: + kind: HelmRepository + name: bjw-s + namespace: flux-system + maxHistory: 2 + install: + createNamespace: true + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + retries: 3 + uninstall: + keepHistory: false + values: + controllers: + main: + strategy: RollingUpdate + annotations: + reloader.stakater.com/auto: "true" + containers: + main: + image: + repository: realaravinth/libmedium + tag: master@sha256:168c8aa99a9fe790c5270f983d77c9ffc36eb38b08a1d5dee307cde87549d9a7 + resources: + requests: + cpu: 50m + memory: 256Mi + service: + main: + ports: + http: + port: 7000 + ingress: + main: + enabled: true + className: "nginx" + annotations: + auth.home.arpa/enabled: "true" + external-dns.home.arpa/enabled: "true" + hajimari.io/icon: mdi:file-document-arrow-right-outline + hosts: + - host: &host "libmedium.${SECRET_CLUSTER_DOMAIN}" + paths: + - path: / + service: + name: main + port: http + tls: + - hosts: + - *host + persistence: + config: + enabled: true + type: configMap + name: libmedium-configmap + globalMounts: + - path: /etc/libmedium/config.toml + subPath: config.toml + readOnly: true diff --git a/kubernetes/apps/default/libmedium/app/kustomization.yaml b/kubernetes/apps/default/libmedium/app/kustomization.yaml new file mode 100644 index 000000000..b5202b76b --- /dev/null +++ b/kubernetes/apps/default/libmedium/app/kustomization.yaml @@ -0,0 +1,15 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/kustomization.json +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: default +resources: + - ./gatus.yaml + - ./helmrelease.yaml +configMapGenerator: + - name: libmedium-configmap + files: + - config.toml=./config/config.toml +generatorOptions: + disableNameSuffixHash: true + diff --git a/kubernetes/apps/default/libmedium/ks.yaml b/kubernetes/apps/default/libmedium/ks.yaml new file mode 100644 index 000000000..3168f31eb --- /dev/null +++ b/kubernetes/apps/default/libmedium/ks.yaml @@ -0,0 +1,21 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: cluster-apps-libmedium + namespace: flux-system + labels: + substitution.flux.home.arpa/enabled: "true" +spec: + path: ./kubernetes/apps/default/libmedium/app + prune: true + sourceRef: + kind: GitRepository + name: home-ops-kubernetes + dependsOn: + - name: cluster-apps-cloudnative-pg-cluster + - name: cluster-apps-external-secrets-stores + interval: 30m + retryInterval: 1m + timeout: 3m