exemples.yaml

master
guppy 2023-06-01 16:01:43 +02:00
parent 47c6cf891f
commit 9823945312
6 changed files with 199 additions and 0 deletions

10
exemples.yaml 100644
View File

@ -0,0 +1,10 @@
---
- hosts: worker-node
name: "HostPath"
roles:
- role: hostpath
---
- hosts: control-plane
name: "NFS"
roles:
- role: nfs

View File

@ -0,0 +1,34 @@
- name: install dep packages
become: yes
apt:
pkg:
- nfs-common
update_cache: yes
- name:
file:
path: /tmp/nfs-server
state: directory
mode: '0755'
- name: template every yaml.j2 files
template:
src: "{{item}}.j2"
dest: "/tmp/nfs-server/{{item}}"
with_items:
- nfs-pv-pvc.yaml
- nfs-server-deployment-service.yaml
- nfs-dep-sc.yaml
- name: kubectl apply
shell: |
kubectl apply -f nfs-pv-pvc.yaml
# kubectl apply -f nfs-dep-sc.yaml
# kubectl apply -f nfs-server-deployment-service.yaml
register: output
args:
chdir: /tmp/nfs-server
- name: Print return information from the previous task
debug:
var: output.stdout

View File

@ -0,0 +1,47 @@
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-client
provisioner: external-nfs
parameters:
archiveOnDelete: "false"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-client-provisioner
labels:
app: nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: default
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: nfs-client-provisioner
template:
metadata:
labels:
app: nfs-client-provisioner
spec:
serviceAccountName: nfs-client-provisioner
containers:
- name: nfs-client-provisioner
image: registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes
env:
- name: PROVISIONER_NAME
value: external-nfs
- name: NFS_SERVER
value: {{ nfsserver.ip }}
- name: NFS_PATH
value: {{ nfsserver.share }}
volumes:
- name: nfs-client-root
nfs:
server: {{ nfsserver.ip }}
path: {{ nfsserver.share }}

View File

@ -0,0 +1,26 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 100Mi
accessModes:
- ReadWriteMany
nfs:
path: "{{ nfsserver.share }}"
server: "{{ nfsserver.ip }}"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
resources:
requests:
storage: 100Mi
volumeName: nfs-pv

View File

@ -0,0 +1,76 @@
apiVersion: v1
kind: Service
metadata:
name: nfs-server
spec:
clusterIP: {{ nfsserver.ip }}
clusterIPs:
- {{ nfsserver.ip }}
ports:
- name: 111-tcp
port: 111
protocol: TCP
targetPort: 111
- name: 111-udp
port: 111
protocol: UDP
targetPort: 111
- name: 2049-tcp
port: 2049
protocol: TCP
targetPort: 2049
- name: 2049-udp
port: 2049
protocol: UDP
targetPort: 2049
- name: 32765-udp
port: 32765
protocol: UDP
targetPort: 32765
- name: 32765-tcp
port: 32765
protocol: TCP
targetPort: 32765
selector:
role: nfs-server
sessionAffinity: None
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-server
spec:
replicas: 1
selector:
matchLabels:
role: nfs-server
template:
metadata:
labels:
role: nfs-server
spec:
containers:
- name: nfs-server
image: erichough/nfs-server
env:
- name: NFS_EXPORT_0
value: '/mnt/stage *(rw,sync,no_subtree_check,fsid=100)'
- name: NFS_LOG_LEVEL
value: DEBUG # doesn't debug client connections for some reason
securityContext:
privileged: true
volumeMounts:
- mountPath: /mnt/stage
name: nfs-stage-src
- mountPath: /lib/modules # mounting modules into container
name: lib-modules
readOnly: true # make sure it's readonly
volumes:
- hostPath: # using hostpath to get modules from the host
path: /lib/modules
type: Directory
name: lib-modules
- name: nfs-stage-src
emptyDir: {}

View File

@ -0,0 +1,6 @@
---
nfsserver:
ip: 192.168.1.159
share: /share
#ip: 192.168.1.251
#share: /media/2T