local base = import "k8s/configs/base.libsonnet"; local nfs = import "k8s/configs/templates/core/storage/nfs-client-provisioner.libsonnet"; local consul = import "k8s/configs/templates/core/network/consul.libsonnet"; local namespace = "storage"; local ctx = base.NewContext(base.helm); { namespace: { apiVersion: "v1", kind: "Namespace", metadata: { name: namespace, }, }, clusterRoles: { nfsProvisioner: nfs.ClusterRole("storage-nfs-provisioner"), }, clusterRoleBindings: { nfsClusterRoleBinding: nfs.ClusterRoleBinding("storage-nfs-provisioners", nfs.ClusterRoleBindingParams { clusterRoleName: "storage-nfs-provisioner", subjects: [ { kind: "ServiceAccount", name: "nfs-client-provisioner", namespace: namespace, }, { kind: "ServiceAccount", name: "nfs-bulk-provisioner", namespace: namespace, }, ], }), }, storageClasses: { nfsClientStorageClass: nfs.StorageClass("nfs-client", nfs.StorageClassParams{ provisionerName: "cluster.local/nfs-client-provisioner", }), nfsBulkStorageClass: nfs.StorageClass("nfs-bulk", nfs.StorageClassParams{ provisionerName: "cluster.local/nfs-bulk-provisioner-nfs-client-provisioner", }), }, apps: { nfsClientProvisioner: nfs.App(nfs.Params { namespace: namespace, name: "nfs-client-provisioner", storageClassName: "nfs-client", provisionerName: "cluster.local/nfs-client-provisioner", nfsServerAddr: "apollo1.dominion.lan", nfsServerPath: "/volume3/fs", }), nfsBulkProvisioner: nfs.App(nfs.Params { namespace: namespace, name: "nfs-bulk-provisioner", storageClassName: "nfs-bulk", provisionerName: "cluster.local/nfs-bulk-provisioner-nfs-client-provisioner", nfsServerAddr: "apollo2.dominion.lan", nfsServerPath: "/volume4/fs-bulk", }), }, }