diff --git a/Sources/longhorn/ingress.yaml b/Sources/longhorn/ingress.yaml new file mode 100644 index 0000000..6f8d305 --- /dev/null +++ b/Sources/longhorn/ingress.yaml @@ -0,0 +1,22 @@ +--- +apiVersion: networking.k8s.io/v1beta1 +kind: Ingress +metadata: + name: longhorn-ingress + namespace: longhorn-system + annotations: + cert-manager.io/cluster-issuer: "ingress" + kubernetes.io/ingress.class: nginx +spec: + rules: + - host: longhorn.vejlupek.org + http: + paths: + - backend: + serviceName: longhorn-frontend + servicePort: 80 + path: / + tls: + - hosts: + - longhorn.vejlupek.org + secretName: tls-secret-le-longhorn diff --git a/Sources/longhorn/kustomization.yaml b/Sources/longhorn/kustomization.yaml new file mode 100644 index 0000000..1fb16ba --- /dev/null +++ b/Sources/longhorn/kustomization.yaml @@ -0,0 +1,31 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml +- ingress.yaml +namespace: longhorn +images: +- name: longhornio/longhorn-manager + newName: vsellier/longhorn-manager + newTag: v1.0.1 +- name: longhornio/longhorn-ui + newName: vsellier/longhorn-ui + newTag: v1.0.1 +patches: +- path: patch_csi.yaml + target: + group: apps + version: v1 + kind: Deployment + name: longhorn-driver-deployer +- path: patch_daemonset.yaml + target: + group: apps + version: v1 + kind: DaemonSet + name: longhorn-manager +- path: patch-default-settings-configmap.yaml + target: + version: v1 + kind: ConfigMap + name: longhorn-default-setting diff --git a/Sources/longhorn/patch-default-settings-configmap.yaml b/Sources/longhorn/patch-default-settings-configmap.yaml new file mode 100644 index 0000000..01ba7f5 --- /dev/null +++ b/Sources/longhorn/patch-default-settings-configmap.yaml @@ -0,0 +1,24 @@ +--- +- op: replace + path: /data/default-setting.yaml + value: |- + backup-target: + backup-target-credential-secret: + create-default-disk-labeled-nodes: true + default-data-path: /media/disk0 + replica-soft-anti-affinity: + storage-over-provisioning-percentage: + storage-minimal-available-percentage: + upgrade-checker: + default-replica-count: 3 + guaranteed-engine-cpu: 0.125 + default-longhorn-static-storage-class: + backupstore-poll-interval: + taint-toleration: + priority-class: + registry-secret: + auto-salvage: + disable-scheduling-on-cordoned-node: + replica-zone-soft-anti-affinity: + volume-attachment-recovery-policy: + mkfs-ext4-parameters: diff --git a/Sources/longhorn/patch_csi.yaml b/Sources/longhorn/patch_csi.yaml new file mode 100644 index 0000000..e91f2b7 --- /dev/null +++ b/Sources/longhorn/patch_csi.yaml @@ -0,0 +1,28 @@ +--- +- op: replace + path: /spec/template/spec/containers/0/command/4 + value: vsellier/longhorn-manager:v1.0.1 + +- op: add + path: /spec/template/spec/containers/0/env/- + value: + name: CSI_ATTACHER_IMAGE + value: vsellier/csi-attacher:v2.0.0 + +- op: add + path: /spec/template/spec/containers/0/env/- + value: + name: CSI_PROVISIONER_IMAGE + value: vsellier/csi-provisioner:v1.4.0 + +- op: add + path: /spec/template/spec/containers/0/env/- + value: + name: CSI_NODE_DRIVER_REGISTRAR_IMAGE + value: vsellier/csi-node-driver-registrar:v1.2.0 + +- op: add + path: /spec/template/spec/containers/0/env/- + value: + name: CSI_RESIZER_IMAGE + value: vsellier/csi-resizer:v0.3.0 diff --git a/Sources/longhorn/patch_daemonset.yaml b/Sources/longhorn/patch_daemonset.yaml new file mode 100644 index 0000000..6a63b0d --- /dev/null +++ b/Sources/longhorn/patch_daemonset.yaml @@ -0,0 +1,12 @@ +--- +- op: replace + path: /spec/template/spec/containers/0/command/4 + value: vsellier/longhorn-engine:v1.0.1 + +- op: replace + path: /spec/template/spec/containers/0/command/6 + value: vsellier/longhorn-instance-manager:v1_20200514_1 + +- op: replace + path: /spec/template/spec/containers/0/command/8 + value: vsellier/longhorn-manager:v1.0.1 diff --git a/manifests.sh b/manifests.sh index 581fe3c..914cde4 100755 --- a/manifests.sh +++ b/manifests.sh @@ -14,7 +14,7 @@ fi echo "Cleanup manifests folder" rm -rf manifests && mkdir manifests -manifests="cert-manager ingress-nginx metallb-system monitoring-system" +manifests="cert-manager ingress-nginx metallb-system monitoring-system longhorn" for service_namespace in ${manifests} do @@ -25,3 +25,9 @@ do docker run -it --rm -e KUBECONFIG=/workdir/tmp/kube_config.yml -v ${PWD}:/workdir bitnami/kubectl:1.18.8 apply --wait --record=false -f /workdir/manifests/${service_namespace}.yml done +for cluster_node in $(docker run -it --rm -e KUBECONFIG=/workdir/tmp/kube_config.yml -v ${PWD}:/workdir bitnami/kubectl:1.18.8 get no -o name) +do + + docker run -it --rm -e KUBECONFIG=/workdir/tmp/kube_config.yml -v ${PWD}:/workdir bitnami/kubectl:1.18.8 label $(echo $cluster_node | tr -d '[:space:]') node.longhorn.io/create-default-disk=true --overwrite + +done