diff --git a/services/Kutt/_namespace-kutt.yaml b/services/Kutt/_namespace-kutt.yaml new file mode 100644 index 0000000..639a36d --- /dev/null +++ b/services/Kutt/_namespace-kutt.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: kutt diff --git a/services/Kutt/application-kutt.yaml b/services/Kutt/application-kutt.yaml new file mode 100644 index 0000000..6217b8b --- /dev/null +++ b/services/Kutt/application-kutt.yaml @@ -0,0 +1,18 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: kutt + namespace: argo-cd +spec: + destination: + namespace: kutt + server: https://kubernetes.default.svc + project: default + syncPolicy: + automated: {} + syncOptions: + - CreateNamespace=true + sources: + - repoURL: https://code.spamasaurus.com/djpbessems/Kubernetes.K3s.installLog + path: services/Kutt + targetRevision: HEAD diff --git a/services/Kutt/deployment-kutt.yaml b/services/Kutt/deployment-kutt.yaml new file mode 100644 index 0000000..047f41f --- /dev/null +++ b/services/Kutt/deployment-kutt.yaml @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kutt + namespace: kutt + labels: + app: kutt +spec: + replicas: 1 + selector: + matchLabels: + app: kutt + template: + metadata: + labels: + app: kutt + spec: + containers: + - name: kutt + image: kutt/kutt:v3.2.6 + ports: + - containerPort: 3000 + name: http + env: + - name: JWT_SECRET + value: Gfn2rJaiAPqRQyauxdIVKj6kWcyt2MSj + - name: DEFAULT_DOMAIN + value: renewal.bessems.com + - name: DB_FILENAME + value: /var/lib/kutt/data.sqlite + volumeMounts: + - mountPath: /var/lib/kutt + name: csismb-kutt-db + volumes: + - name: csismb-kutt-db + persistentVolumeClaim: + claimName: csismb-kutt-db diff --git a/services/Kutt/ingressroute-kutt.yaml b/services/Kutt/ingressroute-kutt.yaml new file mode 100644 index 0000000..0c3353f --- /dev/null +++ b/services/Kutt/ingressroute-kutt.yaml @@ -0,0 +1,16 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: kutt + namespace: kutt +spec: + entryPoints: + - websecure + routes: + - match: Host(`renewal.bessems.com`) || Host(`p.itch.fyi`) + kind: Rule + services: + - name: kutt + port: 3000 + middlewares: + - name: security-headers@file diff --git a/services/Kutt/persistentvolume-csismb-kutt-db.yaml b/services/Kutt/persistentvolume-csismb-kutt-db.yaml new file mode 100644 index 0000000..795260f --- /dev/null +++ b/services/Kutt/persistentvolume-csismb-kutt-db.yaml @@ -0,0 +1,31 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + annotations: + pv.kubernetes.io/provisioned-by: smb.csi.k8s.io + name: csismb-kutt-db +spec: + capacity: + storage: 1Gi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + storageClassName: csismb-kutt-db + mountOptions: + - dir_mode=0777 + - file_mode=0777 + - nobrl + - cache=strict + - mfsymlinks + - noserverino # required to prevent data corruption + csi: + driver: smb.csi.k8s.io + # volumeHandle format: {smb-server-address}#{sub-dir-name}#{share-name} + # make sure this value is unique for every share in the cluster + volumeHandle: 192.168.154.195#kutt#db + volumeAttributes: + source: //192.168.154.195/K3s.Volumes + subDir: kutt/db + nodeStageSecretRef: + name: smb-credentials + namespace: kutt diff --git a/services/Kutt/persistentvolumeclaim-csismb-kutt-db.yaml b/services/Kutt/persistentvolumeclaim-csismb-kutt-db.yaml new file mode 100644 index 0000000..de1ebb3 --- /dev/null +++ b/services/Kutt/persistentvolumeclaim-csismb-kutt-db.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: csismb-kutt-db + namespace: kutt +spec: + accessModes: + - ReadWriteMany + storageClassName: csismb-kutt-db + resources: + requests: + storage: 1Gi diff --git a/services/Kutt/sealedsecret-smb-credentials.yaml b/services/Kutt/sealedsecret-smb-credentials.yaml new file mode 100644 index 0000000..4331258 --- /dev/null +++ b/services/Kutt/sealedsecret-smb-credentials.yaml @@ -0,0 +1,14 @@ +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: smb-credentials + namespace: kutt +spec: + encryptedData: + password: AgCRyItWRmD4KN9z0PupawuTVVhwvUovcgOC7HThLDiP56uI7WLo45ZmZYDdMZ0PeLv9KH5eWhimSch8+M9gH3dZXwarbXJ5VrSmNUF5fodP3LrL3Tgoq3rijppfLRpYL00mHclldCkCjsBfJpO5YKzPHo5ovmWx/i7p7BzegeokKyOe8l/2Rsn6qeU2UDFarqaUAjYvOWAGmjxwlZwtE3VGy52qujsSEKOcH0whk+GTcqWb8/tdIrT8yiW6OWQaUjI9LS3uBt3ZPKc65AQld4Jk0bS+Kxb3JDletbbo1qBuDTw1IGGziGDHZ1cCYamaywYmgqFs/NvGZ94tiXV66vZaPDRJH7w+2aaGTHAZPU1pCS08Nmd6kgECXm31TbyO4asFZ2bY+wR3Hpo369rjmh0btH829FzKC8xLoqkb9r9HnYX7AGb5hBkKGzboKBsx/RuzNBwdGJKFTGaYX7pVgqFDdtdyjlbppkBNN1WfGwS/Zuyam1ZryjMfgRdg97ihVCQBOoLXgqIKxgqettc1bOzFIGp1qsDyzG530EhCP3c6NE3AQabXTJ6LNTwM9DZROwCcHhekdnlarHif7sjng/jdVlmgxX0VY6L+4hUhDeX8IJ2QBqIwk9voO7QFz4c2CMLupho+EIz9TxF+CHrdsnRa5xKP2gjaggRLtYrD/3O7A3I1uefN7P6sn2Im2KWgXiV4PXQvW50iZmcooQMYTbT1 + username: AgAF7+KE/BWxojaQNtIkAGiz4++Eb/Dlu6631vzrYX8T9oFwcnL3X0dUJ3ImmRX11Kn0Xba7U99kinv16RrcYkdBqWSrjSY0V4RvvHZ9Y4B5F5rSHXUavdr9CqHQRa7wvTVBRw2eH44kypnxH+WMR5derLINCKojXPbwWndY+iGQ+I/RhIsCOoY9E0L2YCGLWYJmQFnWLTv1q08w1UJwdo/uOmtrtrneNzkHhtHcg/DNsAZ6oNYpWqspLR0hfwiO2FxHOq0J3Hmf1DIsH/m9BIaIcRX3k0ZlIlIQaxnkHPUT++vSCy1Nrsa0le9K5lsoS53A7F68gRqv/Yj0qawYhcI4CfHndW5IpE7COld4Ko4J6PqBilOtPN1Lzv67grUbi9yOaYCjknZOoUdXJGAaWY8+7n4ajEM5DqOltbarQtZNjYW7U12DNwqDZeJl4gWzKUqHSLyPxLwwXP/MQJCupU4aLBL6U3pheUNfYWe8EHzFRmDB40Gin1YxRshuC+PHndzFuXSi8jvlvwPWpSDDC9/J23NWJENi68iDL6xKnGpgHXwucUZ+WyJj9ItrLSA3AQfbhZCXYQ0fA3TlRRcbtC09L8XVo4O6CO+p7Efu5XWWey24BGx+HphtuDUZDcdiRBTtAKmJZm3v9nyuthrH4xQZoEPh7zZfBsY6b0bubhj7xdoy7tA4l01NJ/eQ9PZyz4Zi2fyVmu8= + template: + metadata: + name: smb-credentials + namespace: kutt + type: Opaque diff --git a/services/Kutt/service-kutt.yaml b/services/Kutt/service-kutt.yaml new file mode 100644 index 0000000..4354d4a --- /dev/null +++ b/services/Kutt/service-kutt.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: kutt + namespace: kutt +spec: + type: ClusterIP + selector: + app: kutt + ports: + - port: 3000 + targetPort: 3000 + name: http