ansible-role-wikideck/tasks/main.yml
2025-06-04 12:50:23 -04:00

192 lines
4.5 KiB
YAML

---
# tasks file for ansible-role-wikideck
- name: Create WikiDeck namespace
k8s:
state: present
definition:
apiVersion: v1
kind: Namespace
metadata:
name: wikideck
- name: Create PVC for MariaDB
k8s:
state: present
definition:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mariadb
namespace: wikideck
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Ti
- name: Create Deployment for MariaDB
k8s:
state: present
definition:
apiVersion: v1
kind: Deployment
metadata:
name: mariadb
namespace: wikideck
labels:
app: mariadb
spec:
replicas: 1
selector:
matchLabels:
app: mariadb
template:
metadata:
labels:
app: mariadb
spec:
containers:
- name: mariadb
image: mariadb
volumeMounts:
- name: data
mountPath: /var/lib/mysql
ports:
- containerPort: 3306
env:
- name: MARIADB_ROOT_PASSWORD
value: "{{ mariadb_root_password }}"
- name: MARIADB_DATABASE
value: nextcloud
- name: MARIADB_USER
value: nextcloud
- name: MARIADB_PASSWORD
value: "{{ wikideck_mariadb_password }}"
volumes:
- name: data
persistentVolumeClaim:
claimName: mariadb
- name: Create Service for MariaDB
k8s:
state: present
definition:
apiVersion: v1
kind: Service
metadata:
name: mariadb
namespace: wikideck
spec:
selector:
app: mariadb
ports:
- port: 3306
name: mariadb
type: ClusterIP
- name: Create PVC for WikiDeck Mine
k8s:
state: present
definition:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wikideck-mine
namespace: wikideck
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Ti
- name: Create Deployment for WikiDeck Mine
k8s:
state: present
definition:
apiVersion: v1
kind: Deployment
metadata:
name: wikideck-mine
namespace: wikideck
labels:
app: wikideck-mine
spec:
replicas: 1
selector:
matchLabels:
app: wikideck-mine
template:
metadata:
labels:
app: wikideck-mine
spec:
containers:
- name: wikideck-mine
image: ericomeehan/wikideck-mine
volumeMounts:
- name: data
mountPath: /data
ports:
- containerPort: 80
env:
- name: MARIADB_HOST
value: mariadb
- name: MARIADB_DATABASE
value: mine
- name: MARIADB_USER
value: mine
- name: MARIADB_PASSWORD
value: "{{ wikideck_mine_mariadb_password }}"
volumes:
- name: data
persistentVolumeClaim:
claimName: wikideck-mine
- name: Create Service for WikiDeck Mine
k8s:
state: present
definition:
apiVersion: v1
kind: Service
metadata:
name: wikideck-mine
namespace: wikideck
spec:
selector:
app: wikideck-mine
ports:
- port: 80
name: http
type: ClusterIP
- name: Create Ingress
k8s:
state: present
definition:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/cluster-issuer: ca-issuer
name: wikideck-mine
namespace: wikideck
spec:
ingressClassName: nginx
rules:
- host: wikideck.eom.dev
http:
paths:
- pathType: Prefix
path: /mine
backend:
service:
name: wikideck-mine
port:
number: 80
tls:
- hosts:
- wikideck.eom.dev
secretName: nextcloud