diff --git a/_apps/linkding.yaml b/_apps/linkding.yaml new file mode 100644 index 0000000..4cb68e9 --- /dev/null +++ b/_apps/linkding.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: linkding + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + destination: + namespace: linkding + server: https://kubernetes.default.svc + project: system + source: + path: linkding + repoURL: https://git.tbrnt.ch/tobru/gitops-tbrnt.git + targetRevision: HEAD +--- +apiVersion: v1 +kind: Namespace +metadata: + name: linkding diff --git a/linkding/Makefile b/linkding/Makefile new file mode 100644 index 0000000..47590e8 --- /dev/null +++ b/linkding/Makefile @@ -0,0 +1,10 @@ +build: + helm template linkding --namespace=linkding pascaliske/linkding \ + -f helm-values.yaml \ + > linkding.yaml +.PHONY: build + +update: + helm repo update + helm search repo linkding +.PHONY: update diff --git a/linkding/helm-values.yaml b/linkding/helm-values.yaml new file mode 100644 index 0000000..4847624 --- /dev/null +++ b/linkding/helm-values.yaml @@ -0,0 +1,2 @@ +image: + tag: 1.9.0 diff --git a/linkding/ingress.yaml b/linkding/ingress.yaml new file mode 100644 index 0000000..4750f28 --- /dev/null +++ b/linkding/ingress.yaml @@ -0,0 +1,27 @@ +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + ingress.kubernetes.io/ssl-redirect: "true" + ingress.kubernetes.io/force-hsts: "true" + ingress.kubernetes.io/hsts-max-age: "315360000" + ingress.kubernetes.io/hsts-preload: "true" + name: linkding +spec: + rules: + - host: links.tobru.ch + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: linkding + port: + number: 9090 + tls: + - hosts: + - links.tobru.ch + secretName: ingress-cert diff --git a/linkding/linkding.yaml b/linkding/linkding.yaml new file mode 100644 index 0000000..962a8a4 --- /dev/null +++ b/linkding/linkding.yaml @@ -0,0 +1,94 @@ +--- +# Source: linkding/templates/persistantvolumeclaim.yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: linkding-storage + labels: + helm.sh/chart: linkding-0.0.2 + app.kubernetes.io/name: linkding + app.kubernetes.io/instance: linkding + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + volumeMode: Filesystem + storageClassName: local-path +--- +# Source: linkding/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: linkding + labels: + helm.sh/chart: linkding-0.0.2 + app.kubernetes.io/name: linkding + app.kubernetes.io/instance: linkding + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - name: "http" + port: 9090 + targetPort: "http" + protocol: "TCP" + selector: + app.kubernetes.io/name: linkding + app.kubernetes.io/instance: linkding +--- +# Source: linkding/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: linkding + labels: + helm.sh/chart: linkding-0.0.2 + app.kubernetes.io/name: linkding + app.kubernetes.io/instance: linkding + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: linkding + app.kubernetes.io/instance: linkding + template: + metadata: + labels: + app.kubernetes.io/name: linkding + app.kubernetes.io/instance: linkding + spec: + serviceAccountName: default + containers: + - name: linkding + image: "sissbruecker/linkding:1.9.0" + imagePullPolicy: IfNotPresent + ports: + - name: "http" + containerPort: 9090 + protocol: "TCP" + env: + - name: "TZ" + value: "UTC" + volumeMounts: + - name: storage-volume + mountPath: /etc/linkding/data + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: {} + volumes: + - name: storage-volume + persistentVolumeClaim: + claimName: linkding-storage