diff --git a/apps/hydra/linkding/deployment.yaml b/apps/hydra/linkding/deployment.yaml index f9c30f8..856fd9c 100644 --- a/apps/hydra/linkding/deployment.yaml +++ b/apps/hydra/linkding/deployment.yaml @@ -21,4 +21,11 @@ spec: ports: - containerPort: 9090 resources: {} + volumeMounts: + - mountPath: /etc/linkding/data + name: data + volumes: + - name: data + persistentVolumeClaim: + claimName: linking-pvc status: {} diff --git a/apps/hydra/linkding/pvc.yaml b/apps/hydra/linkding/pvc.yaml new file mode 100644 index 0000000..59f272d --- /dev/null +++ b/apps/hydra/linkding/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: linking-pvc + namespace: linkding +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +status: {} diff --git a/pkg/linkding/linkding.go b/pkg/linkding/linkding.go index 6fc9cf9..952e7cf 100644 --- a/pkg/linkding/linkding.go +++ b/pkg/linkding/linkding.go @@ -11,22 +11,26 @@ import ( var meta kube.Metadata var Namespace = kube.Namespace("linkding") var srv core.Service +var pvc core.PersistentVolumeClaim func init() { meta = kube.NewMetadata("linking", Namespace) srv = meta.Service(root.Linkding.Port) + pvc = meta.PVC() } func Stack() stack.Stack { s := stack.NewStack("linkding", map[string]any{ "namespace": Namespace, "srv": srv, + "pvc": pvc, "deployment": deployment(), }) return s } func deployment() apps.Deployment { + storage := kube.NewVolumeFrom(kube.VolumeSourcePVC, "data", pvc.Name) pod_spec := core.PodSpec{ Containers: []core.Container{ { @@ -35,8 +39,17 @@ func deployment() apps.Deployment { Ports: []core.ContainerPort{{ ContainerPort: root.Linkding.Port, }}, + VolumeMounts: []core.VolumeMount{ + { + Name: storage.Name, + MountPath: "/etc/linkding/data", + }, + }, }, }, + Volumes: []core.Volume{ + storage, + }, } return kube.NewDeployment(meta, pod_spec) }