From 88566d2ae5cfc609769d1644eeefac833a589896 Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Mon, 15 Jul 2024 01:56:46 +1000 Subject: [PATCH] add res local-path-provisioner --- .../base/cluster-role-binding.yaml | 12 +++++ .../base/cluster-role.yaml | 9 ++++ .../base/deployment.yaml | 40 ++++++++++++++++ .../base/kustomization.yaml | 10 ++++ .../base/role-binding.yaml | 13 +++++ .../local-path-provisioner/base/role.yaml | 17 +++++++ .../base/service-account.yaml | 5 ++ .../base/storage-class.yaml | 47 +++++++++++++++++++ .../env/k3s-cluster/config.json | 11 +++++ .../env/k3s-cluster/kustomization.yaml | 4 ++ 10 files changed, 168 insertions(+) create mode 100644 resources/local-path-provisioner/base/cluster-role-binding.yaml create mode 100644 resources/local-path-provisioner/base/cluster-role.yaml create mode 100644 resources/local-path-provisioner/base/deployment.yaml create mode 100644 resources/local-path-provisioner/base/kustomization.yaml create mode 100644 resources/local-path-provisioner/base/role-binding.yaml create mode 100644 resources/local-path-provisioner/base/role.yaml create mode 100644 resources/local-path-provisioner/base/service-account.yaml create mode 100644 resources/local-path-provisioner/base/storage-class.yaml create mode 100644 resources/local-path-provisioner/env/k3s-cluster/config.json create mode 100644 resources/local-path-provisioner/env/k3s-cluster/kustomization.yaml diff --git a/resources/local-path-provisioner/base/cluster-role-binding.yaml b/resources/local-path-provisioner/base/cluster-role-binding.yaml new file mode 100644 index 0000000..6fd3d2c --- /dev/null +++ b/resources/local-path-provisioner/base/cluster-role-binding.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: local-path-provisioner-bind +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: local-path-provisioner-role +subjects: + - kind: ServiceAccount + name: local-path-provisioner-service-account + namespace: local-path-storage \ No newline at end of file diff --git a/resources/local-path-provisioner/base/cluster-role.yaml b/resources/local-path-provisioner/base/cluster-role.yaml new file mode 100644 index 0000000..c2e21a8 --- /dev/null +++ b/resources/local-path-provisioner/base/cluster-role.yaml @@ -0,0 +1,9 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: local-path-provisioner-role + namespace: local-path-storage +rules: + - apiGroups: [ "" ] + resources: [ "pods" ] + verbs: [ "get", "list", "watch", "create", "patch", "update", "delete" ] \ No newline at end of file diff --git a/resources/local-path-provisioner/base/deployment.yaml b/resources/local-path-provisioner/base/deployment.yaml new file mode 100644 index 0000000..fa53455 --- /dev/null +++ b/resources/local-path-provisioner/base/deployment.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: local-path-provisioner + namespace: local-path-storage +spec: + replicas: 1 + selector: + matchLabels: + app: local-path-provisioner + template: + metadata: + labels: + app: local-path-provisioner + spec: + serviceAccountName: local-path-provisioner-service-account + containers: + - name: local-path-provisioner + image: rancher/local-path-provisioner:v0.0.28 + imagePullPolicy: IfNotPresent + command: + - local-path-provisioner + - --debug + - start + - --config + - /etc/config/config.json + volumeMounts: + - name: config-volume + mountPath: /etc/config/ + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: CONFIG_MOUNT_PATH + value: /etc/config/ + volumes: + - name: config-volume + configMap: + name: local-path-config \ No newline at end of file diff --git a/resources/local-path-provisioner/base/kustomization.yaml b/resources/local-path-provisioner/base/kustomization.yaml new file mode 100644 index 0000000..ac927b5 --- /dev/null +++ b/resources/local-path-provisioner/base/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./service-account.yaml + - ./role.yaml + - ./cluster-role.yaml + - ./role-binding.yaml + - ./cluster-role-binding.yaml + - ./deployment.yaml + - ./storage-class.yaml \ No newline at end of file diff --git a/resources/local-path-provisioner/base/role-binding.yaml b/resources/local-path-provisioner/base/role-binding.yaml new file mode 100644 index 0000000..b44a459 --- /dev/null +++ b/resources/local-path-provisioner/base/role-binding.yaml @@ -0,0 +1,13 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: local-path-provisioner-bind + namespace: local-path-storage +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: local-path-provisioner-role +subjects: + - kind: ServiceAccount + name: local-path-provisioner-service-account + namespace: local-path-storage \ No newline at end of file diff --git a/resources/local-path-provisioner/base/role.yaml b/resources/local-path-provisioner/base/role.yaml new file mode 100644 index 0000000..12faeda --- /dev/null +++ b/resources/local-path-provisioner/base/role.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: local-path-provisioner-role +rules: + - apiGroups: [ "" ] + resources: [ "nodes", "persistentvolumeclaims", "configmaps", "pods", "pods/log" ] + verbs: [ "get", "list", "watch" ] + - apiGroups: [ "" ] + resources: [ "persistentvolumes" ] + verbs: [ "get", "list", "watch", "create", "patch", "update", "delete" ] + - apiGroups: [ "" ] + resources: [ "events" ] + verbs: [ "create", "patch" ] + - apiGroups: [ "storage.k8s.io" ] + resources: [ "storageclasses" ] + verbs: [ "get", "list", "watch" ] \ No newline at end of file diff --git a/resources/local-path-provisioner/base/service-account.yaml b/resources/local-path-provisioner/base/service-account.yaml new file mode 100644 index 0000000..6e9eb8e --- /dev/null +++ b/resources/local-path-provisioner/base/service-account.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: local-path-provisioner-service-account + namespace: local-path-storage \ No newline at end of file diff --git a/resources/local-path-provisioner/base/storage-class.yaml b/resources/local-path-provisioner/base/storage-class.yaml new file mode 100644 index 0000000..3e6289b --- /dev/null +++ b/resources/local-path-provisioner/base/storage-class.yaml @@ -0,0 +1,47 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: local-path +provisioner: rancher.io/local-path +volumeBindingMode: WaitForFirstConsumer +reclaimPolicy: Retain +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: local-path-config + namespace: local-path-storage +data: + config.json: |- + { + "nodePathMap": [ + { + "node": "DEFAULT_PATH_FOR_NON_LISTED_NODES", + "paths": [ + "/opt/local-path-provisioner"] + } + ] + } + setup: |- + #!/bin/sh + set -eu + mkdir -m 0777 -p "$VOL_DIR" + teardown: |- + #!/bin/sh + set -eu + rm -rf "$VOL_DIR" + helperPod.yaml: |- + apiVersion: v1 + kind: Pod + metadata: + name: helper-pod + spec: + priorityClassName: system-node-critical + tolerations: + - key: node.kubernetes.io/disk-pressure + operator: Exists + effect: NoSchedule + containers: + - name: helper-pod + image: busybox + imagePullPolicy: IfNotPresent \ No newline at end of file diff --git a/resources/local-path-provisioner/env/k3s-cluster/config.json b/resources/local-path-provisioner/env/k3s-cluster/config.json new file mode 100644 index 0000000..44bfa62 --- /dev/null +++ b/resources/local-path-provisioner/env/k3s-cluster/config.json @@ -0,0 +1,11 @@ +{ + "appName": "local-path-provisioner", + "userGivenName": "local-path-provisioner", + "destNamespace": "local-path-provisioner", + "destServer": "https://kubernetes.default.svc", + "srcPath": "resources/local-path-provisioner/env/k3s-cluster", + "srcRepoURL": "https://github.com/3dwardch3ng/home-cluster-ops.git", + "srcTargetRevision": "", + "labels": null, + "annotations": null +} \ No newline at end of file diff --git a/resources/local-path-provisioner/env/k3s-cluster/kustomization.yaml b/resources/local-path-provisioner/env/k3s-cluster/kustomization.yaml new file mode 100644 index 0000000..564a122 --- /dev/null +++ b/resources/local-path-provisioner/env/k3s-cluster/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../base/kustomization.yaml \ No newline at end of file