diff --git a/bootstrap/helmrepositories/helmrepository-nfs-subdir-external-provisioner.yaml b/bootstrap/helmrepositories/helmrepository-nfs-subdir-external-provisioner.yaml new file mode 100644 index 0000000..8d78978 --- /dev/null +++ b/bootstrap/helmrepositories/helmrepository-nfs-subdir-external-provisioner.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: nfs-subdir-external-provisioner + namespace: flux-system +spec: + interval: 15m + url: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner diff --git a/bootstrap/kustomizations/kustomization-nfs-subdir-external-provisioner.yaml b/bootstrap/kustomizations/kustomization-nfs-subdir-external-provisioner.yaml new file mode 100644 index 0000000..7266457 --- /dev/null +++ b/bootstrap/kustomizations/kustomization-nfs-subdir-external-provisioner.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: nfs-subdir-external-provisioner + namespace: flux-system +spec: + interval: 15m + path: ./nfs-subdir-external-provisioner + prune: true # remove any elements later removed from the above path + timeout: 2m # if not set, this defaults to interval duration, which is 1h + sourceRef: + kind: GitRepository + name: flux-system + healthChecks: + - apiVersion: helm.toolkit.fluxcd.io/v2beta1 + kind: HelmRelease + name: nfs-subdir-external-provisioner + namespace: nfs-subdir-external-provisioner diff --git a/bootstrap/namespaces/namespace-nfs-subdir-external-provisioner.yaml b/bootstrap/namespaces/namespace-nfs-subdir-external-provisioner.yaml new file mode 100644 index 0000000..cb6386d --- /dev/null +++ b/bootstrap/namespaces/namespace-nfs-subdir-external-provisioner.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: nfs-subdir-external-provisioner diff --git a/nfs-subdir-external-provisioner/helmrelease-nfs-subdir-external-provisioner.yaml b/nfs-subdir-external-provisioner/helmrelease-nfs-subdir-external-provisioner.yaml new file mode 100644 index 0000000..74fe753 --- /dev/null +++ b/nfs-subdir-external-provisioner/helmrelease-nfs-subdir-external-provisioner.yaml @@ -0,0 +1,132 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: nfs-subdir-external-provisioner + namespace: nfs-subdir-external-provisioner +spec: + chart: + spec: + chart: nfs-subdir-external-provisioner + version: 4.x.x + sourceRef: + kind: HelmRepository + name: nfs-subdir-external-provisioner + namespace: flux-system + interval: 15m + timeout: 5m + releaseName: nfs-subdir-external-provisioner + values: + replicaCount: 1 + strategyType: Recreate + + image: + repository: registry.k8s.io/sig-storage/nfs-subdir-external-provisioner + tag: v4.0.2 + pullPolicy: IfNotPresent + imagePullSecrets: [] + + nfs: + server: 192.168.2.50 + path: /volume1/k8sdata + mountOptions: + volumeName: nfs-subdir-external-provisioner-root + # Reclaim policy for the main nfs volume + reclaimPolicy: Retain + + # For creating the StorageClass automatically: + storageClass: + create: true + + # Set a provisioner name. If unset, a name will be generated. + # provisionerName: + + # Set StorageClass as the default StorageClass + # Ignored if storageClass.create is false + defaultClass: false + + # Set a StorageClass name + # Ignored if storageClass.create is false + name: nfs-client + + # Allow volume to be expanded dynamically + allowVolumeExpansion: true + + # Method used to reclaim an obsoleted volume + reclaimPolicy: Delete + + # When set to false your PVs will not be archived by the provisioner upon deletion of the PVC. + archiveOnDelete: true + + # If it exists and has 'delete' value, delete the directory. If it exists and has 'retain' value, save the directory. + # Overrides archiveOnDelete. + # Ignored if value not set. + onDelete: + + # Specifies a template for creating a directory path via PVC metadata's such as labels, annotations, name or namespace. + # Ignored if value not set. + pathPattern: + + # Set access mode - ReadWriteOnce, ReadOnlyMany or ReadWriteMany + accessModes: ReadWriteOnce + + # Set volume bindinng mode - Immediate or WaitForFirstConsumer + volumeBindingMode: Immediate + + # Storage class annotations + annotations: {} + + leaderElection: + # When set to false leader election will be disabled + enabled: true + + ## For RBAC support: + rbac: + # Specifies whether RBAC resources should be created + create: true + + # If true, create & use Pod Security Policy resources + # https://kubernetes.io/docs/concepts/policy/pod-security-policy/ + podSecurityPolicy: + enabled: false + + # Deployment pod annotations + podAnnotations: {} + + ## Set pod priorityClassName + # priorityClassName: "" + + podSecurityContext: {} + + securityContext: {} + + serviceAccount: + # Specifies whether a ServiceAccount should be created + create: true + + # Annotations to add to the service account + annotations: {} + + # The name of the ServiceAccount to use. + # If not set and create is true, a name is generated using the fullname template + name: + + resources: {} + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + + nodeSelector: {} + + tolerations: [] + + affinity: {} + + # Additional labels for any resource created + labels: {} + + podDisruptionBudget: + enabled: false + maxUnavailable: 1