diff --git a/kubernetes/apps/dokuwiki/app/release.yaml b/kubernetes/apps/dokuwiki/app/release.yaml new file mode 100644 index 0000000..9c4d667 --- /dev/null +++ b/kubernetes/apps/dokuwiki/app/release.yaml @@ -0,0 +1,29 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: dokuwiki + namespace: dokuwiki +spec: + targetNamespace: dokuwiki + chart: + spec: + chart: dokuwiki + sourceRef: + kind: HelmRepository + name: bitnami + namespace: flux-system + interval: 1h + install: + remediation: + retries: 3 + values: + dokuwikiUsername: ${username} + dokuwikiPassword: ${password} + dokuwikiEmail: ${email} + dokuwikiFullName: "Edward Cheng" + dokuwikiWikiName: My Douku Wiki + persistence: + existingClaim: "dokuwiki-pvc" + service: + nodePorts: + http: 18000 \ No newline at end of file diff --git a/kubernetes/apps/dokuwiki/app/volume.yaml b/kubernetes/apps/dokuwiki/app/volume.yaml new file mode 100644 index 0000000..5cf01cb --- /dev/null +++ b/kubernetes/apps/dokuwiki/app/volume.yaml @@ -0,0 +1,46 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: dokuwiki-pv + namespace: dokuwiki + labels: + type: local +spec: + storageClassName: local-path + volumeMode: Filesystem + capacity: + storage: 12Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + local: + path: "/mnt/nfs/AppData/dokuwiki" + claimRef: + apiVersion: v1 + kind: PersistentVolumeClaim + name: dokuwiki-pvc + namespace: dokuwiki + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - rpi5-cluster-node-3 +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: dokuwiki-pvc + namespace: dokuwiki + labels: + name: dokuwiki-pvc +spec: + storageClassName: local-path + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 12Gi \ No newline at end of file diff --git a/kubernetes/apps/dokuwiki/dokuwiki.yaml b/kubernetes/apps/dokuwiki/dokuwiki.yaml new file mode 100644 index 0000000..86503ba --- /dev/null +++ b/kubernetes/apps/dokuwiki/dokuwiki.yaml @@ -0,0 +1,46 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: dokuwiki-secrets + namespace: dokuwiki +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + targetNamespace: dokuwiki + path: ./dokuwiki + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: home-cluster-ops-secrets + dependsOn: + - name: repositories + namespace: flux-system + decryption: + provider: sops + secretRef: + name: dokuwiki-sops-age +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: dokuwiki + namespace: dokuwiki +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + path: ./kubernetes/apps/dokuwiki/app + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: flux-system + dependsOn: + - name: dokuwiki-secrets + namespace: dokuwiki + postBuild: + substituteFrom: + - kind: Secret + name: dokuwiki-secrets \ No newline at end of file diff --git a/kubernetes/apps/kustomization.yaml b/kubernetes/apps/kustomization.yaml index c1f9634..a83ae19 100644 --- a/kubernetes/apps/kustomization.yaml +++ b/kubernetes/apps/kustomization.yaml @@ -5,6 +5,7 @@ resources: - ./capacitor/capacitor.yaml - ./cert-manager/cert-manager.yaml - ./code-server/code-server.yaml + - ./dokuwiki/dokuwiki.yaml - ./gitea/gitea.yaml - ./homer/homer.yaml - ./jellyfin/jellyfin.yaml diff --git a/kubernetes/infrastructure/namespaces/namespaces/dokuwiki.yaml b/kubernetes/infrastructure/namespaces/namespaces/dokuwiki.yaml new file mode 100644 index 0000000..c048431 --- /dev/null +++ b/kubernetes/infrastructure/namespaces/namespaces/dokuwiki.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: dokuwiki