chore: add current provisioning state before migration
This commit is contained in:
parent
a9703b4748
commit
50745b0f22
660 changed files with 88126 additions and 0 deletions
113
taskservs/external-nfs/default/core-nfs.yaml
Normal file
113
taskservs/external-nfs/default/core-nfs.yaml
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: nfs-provisioner
|
||||
---
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: nfs-client
|
||||
parameters:
|
||||
archiveOnDelete: "false"
|
||||
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
|
||||
reclaimPolicy: Retain
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: nfs-client-provisioner
|
||||
namespace: nfs-provisioner
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: leader-locking-nfs-client-provisioner
|
||||
namespace: nfs-provisioner
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- endpoints
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: nfs-client-provisioner-runner
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
- apiGroups:
|
||||
- storage.k8s.io
|
||||
resources:
|
||||
- storageclasses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: leader-locking-nfs-client-provisioner
|
||||
namespace: nfs-provisioner
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: leader-locking-nfs-client-provisioner
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: nfs-client-provisioner
|
||||
namespace: nfs-provisioner
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: run-nfs-client-provisioner
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: nfs-client-provisioner-runner
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: nfs-client-provisioner
|
||||
namespace: nfs-provisioner
|
||||
47
taskservs/external-nfs/default/deploy-external-nfs.yaml.j2
Normal file
47
taskservs/external-nfs/default/deploy-external-nfs.yaml.j2
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: nfs-client-provisioner
|
||||
name: nfs-client-provisioner
|
||||
namespace: nfs-provisioner
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nfs-client-provisioner
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nfs-client-provisioner
|
||||
spec:
|
||||
containers:
|
||||
- env:
|
||||
- name: NFS_SERVER
|
||||
{%- if taskserv.ip == "$network_private_ip" %}
|
||||
value: "{{server.network_private_ip}}"
|
||||
{%- else -%}
|
||||
value: "{{server.tasks[task_pos].ip}}"
|
||||
{%- endif %}
|
||||
- name: NFS_PATH
|
||||
value: {{taskserv.shared}}
|
||||
- name: PROVISIONER_NAME
|
||||
value: k8s-sigs.io/nfs-subdir-external-provisioner
|
||||
image: registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
|
||||
name: nfs-client-provisioner
|
||||
volumeMounts:
|
||||
- mountPath: /persistentvolumes
|
||||
name: nfs-client-root
|
||||
serviceAccountName: nfs-client-provisioner
|
||||
volumes:
|
||||
- name: nfs-client-root
|
||||
nfs:
|
||||
path: {{taskserv.shared}}
|
||||
{%- if taskserv.ip == "$network_private_ip" %}
|
||||
server: "{{server.network_private_ip}}"
|
||||
{%- else -%}
|
||||
server: "{{server.tasks[task_pos].ip}}"
|
||||
{%- endif %}
|
||||
15
taskservs/external-nfs/default/env-external-nfs.j2
Normal file
15
taskservs/external-nfs/default/env-external-nfs.j2
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{%- if taskserv.ip == "$network_private_ip" %}
|
||||
NFS_IP="{{server.network_private_ip}}"
|
||||
{%- else %}
|
||||
NFS_IP="{{taskserv.ip}}"
|
||||
{%- endif %}
|
||||
NFS_SHARE_PATH="{{taskserv.shared}}"
|
||||
{%- if taskserv.net == "$priv_cidr_block" %}
|
||||
{%- if "server.priv_cidr_block" %}
|
||||
NFS_NET="{{server.priv_cidr_block}}"
|
||||
{%- else %}
|
||||
NFS_NET="{{server.priv_cidr_block}}"
|
||||
{%- endif %}
|
||||
{%- else %}
|
||||
NFS_NET="{{taskserv.net}}"
|
||||
{%- endif %}
|
||||
5
taskservs/external-nfs/default/exports.j2
Normal file
5
taskservs/external-nfs/default/exports.j2
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{%- if taskserv.net == "$priv_cidr_block" %}
|
||||
{{taskserv.shared}} {{server.priv_cidr_block}}(rw,sync,no_subtree_check,no_root_squash)
|
||||
{%- else %}
|
||||
{{taskserv.shared}} {{taskserv.net}}(rw,sync,no_subtree_check,no_root_squash)
|
||||
{%- endif %}
|
||||
45
taskservs/external-nfs/default/install-external-nfs.sh
Executable file
45
taskservs/external-nfs/default/install-external-nfs.sh
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
# Info: Script to install nfs packages
|
||||
# Author: JesusPerezLorenzo
|
||||
# Release: 1.1
|
||||
# Date: 8-07-2024
|
||||
|
||||
USAGE="install.sh "
|
||||
[ "$1" == "-h" ] && echo "$USAGE" && exit 1
|
||||
|
||||
_add_nfs_server() {
|
||||
chmod 1777 /tmp
|
||||
echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
|
||||
DEBIAN_FRONTEND=noninteractive sudo apt-get -y -qq install sudo nfs-server
|
||||
}
|
||||
|
||||
# Update and add packages to installation
|
||||
[ -z "$(type -P exporfs)" ] && _add_nfs_server
|
||||
|
||||
[ -r "env-external-nfs" ] && . env-external-nfs
|
||||
|
||||
WORK_PATH=${WORK_PATH:-/tmp}
|
||||
|
||||
if [ -z "$NFS_IP" ] || [ -z "$NFS_NET" ] || [ -z "$NFS_SHARE_PATH" ] ; then
|
||||
echo "Error: IP NET SHARE_PATH not all set for NFS"
|
||||
exit 1
|
||||
fi
|
||||
[ ! -d "$NFS_SHARE_PATH" ] && mkdir -p "$NFS_SHARE_PATH" && chmod 777 "$NFS_SHARE_PATH"
|
||||
if ! grep -q "$NFS_NET" /etc/exports ; then
|
||||
[ -r "exports" ] && cat exports | sudo tee -a /etc/exports && exportfs -a
|
||||
fi
|
||||
if [ -r "/etc/kubernetes/manifests/kube-apiserver.yaml" ] ; then
|
||||
has_kubectl=$(type -P kubectl 2>/dev/null)
|
||||
[ -z "$has_kubectl" ] && echo "kubectl command not found" && exit 0
|
||||
if kubectl apply -f core-nfs.yaml && kubectl apply -f storage-class.yaml ; then
|
||||
[ -r "deploy-external-nfs.yaml" ] && kubectl apply -f deploy-external-nfs.yaml
|
||||
[ "$WORK_PATH" != "/tmp" ] && {
|
||||
sudo mkdir -p "$WORK_PATH/external-nfs"
|
||||
sudo mv core-nfs.yaml stroge-class.yaml deploy-external-nfs.yaml "$WORK_PATH/external-nfs"
|
||||
}
|
||||
exit 0
|
||||
else
|
||||
echo "Error kubectl install errors " && exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
8
taskservs/external-nfs/default/storage-class.yaml
Normal file
8
taskservs/external-nfs/default/storage-class.yaml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: nfs-client
|
||||
parameters:
|
||||
archiveOnDelete: "false"
|
||||
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
|
||||
reclaimPolicy: Retain
|
||||
Loading…
Add table
Add a link
Reference in a new issue