Save all
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
---
|
||||
# tasks file for mediawiki
|
||||
- name: Create MediaWiki namespace
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: mediawiki
|
||||
|
||||
- name: Deploy MariaDB
|
||||
kubernetes.core.helm:
|
||||
name: mariadb
|
||||
chart_ref: bitnami/mariadb
|
||||
release_namespace: mediawiki
|
||||
values:
|
||||
auth:
|
||||
rootPassword: "{{ mediawiki_admin_password }}"
|
||||
username: mediawiki
|
||||
password: "{{ mediawiki_admin_password }}"
|
||||
database: mediawiki
|
||||
primary:
|
||||
persistence:
|
||||
size: 4Ti
|
||||
|
||||
- name: Create a persistent volume claim for MediaWiki
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 32Gi
|
||||
|
||||
- name: Create Deployment for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mediawiki
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mediawiki
|
||||
spec:
|
||||
containers:
|
||||
- name: mediawiki
|
||||
image: mediawiki
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
requests:
|
||||
memory: 2Gi
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumemounts:
|
||||
- name: mediawiki
|
||||
mountpath: /var/www/html
|
||||
volumes:
|
||||
- name: mediawiki
|
||||
persistentVolumeClaim:
|
||||
claimName: mediawiki
|
||||
|
||||
- name: Create Service for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
selector:
|
||||
app: mediawiki
|
||||
ports:
|
||||
- port: 80
|
||||
name: http
|
||||
type: ClusterIP
|
||||
|
||||
- name: Create OnionService
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 80
|
||||
backend:
|
||||
service:
|
||||
name: mediawiki
|
||||
port:
|
||||
number: 80
|
||||
|
||||
#- name: Create Ingress
|
||||
# k8s:
|
||||
# state: present
|
||||
# definition:
|
||||
# apiVersion: networking.k8s.io/v1
|
||||
# kind: Ingress
|
||||
# metadata:
|
||||
# annotations:
|
||||
# cert-manager.io/cluster-issuer: ca-issuer
|
||||
# name: mediawiki
|
||||
# namespace: mediawiki
|
||||
# spec:
|
||||
# ingressClassName: nginx
|
||||
# rules:
|
||||
# - host: mediawiki.eom.dev
|
||||
# http:
|
||||
# paths:
|
||||
# - pathType: Prefix
|
||||
# path: /
|
||||
# backend:
|
||||
# service:
|
||||
# name: mediawiki
|
||||
# port:
|
||||
# number: 80
|
||||
# tls:
|
||||
# - hosts:
|
||||
# - mediawiki.eom.dev
|
||||
# secretName: mediawiki
|
||||
@@ -0,0 +1,147 @@
|
||||
---
|
||||
# tasks file for mediawiki
|
||||
- name: Create MediaWiki namespace
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: mediawiki
|
||||
|
||||
- name: Deploy MariaDB
|
||||
kubernetes.core.helm:
|
||||
name: mariadb
|
||||
chart_ref: bitnami/mariadb
|
||||
release_namespace: mediawiki
|
||||
values:
|
||||
auth:
|
||||
rootPassword: "{{ mediawiki_admin_password }}"
|
||||
username: mediawiki
|
||||
password: "{{ mediawiki_admin_password }}"
|
||||
database: mediawiki
|
||||
primary:
|
||||
persistence:
|
||||
size: 4Ti
|
||||
|
||||
- name: Create Deployment for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mediawiki
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mediawiki
|
||||
spec:
|
||||
containers:
|
||||
- name: mediawiki
|
||||
image: ericomeehan/mediawiki-extended
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
requests:
|
||||
memory: 2Gi
|
||||
env:
|
||||
- name: WIKI_NAME
|
||||
value: MediaWiki
|
||||
- name: WIKI_ADMIN
|
||||
value: mediawiki_admin
|
||||
- name: WIKI_ADMIN_PASS
|
||||
value: "{{ mediawiki_admin_password }}"
|
||||
- name: WIKI_LANG
|
||||
value: en
|
||||
- name: WIKI_URL
|
||||
value: https://mediawiki.eom.dev/
|
||||
- name: DB_HOST
|
||||
value: mariadb
|
||||
- name: DB_PORT
|
||||
value: "3306"
|
||||
- name: DB_NAME
|
||||
value: mediawiki
|
||||
- name: DB_USER
|
||||
value: mediawiki
|
||||
- name: DB_PASS
|
||||
value: "{{ mediawiki_admin_password }}"
|
||||
- name: LDAP_BASE
|
||||
value: dc=eom,dc=dev
|
||||
- name: LDAP_SERVER_NAME
|
||||
value: openldap.openldap.svc.cluster.local
|
||||
- name: LDAP_SERVER_PORT
|
||||
value: "389"
|
||||
- name: LDAP_DOMAINNAME
|
||||
value: openldap.openldap.svc.cluster.local
|
||||
- name: LDAP_ENCTYPE
|
||||
value: clear
|
||||
- name: LDAP_USER_ATTR
|
||||
value: uid
|
||||
- name: LDAP_REAL_NAME_ATTR
|
||||
value: cn
|
||||
- name: LDAP_MAIL_ATTR
|
||||
value: mail
|
||||
- name: LDAP_BIND_USER
|
||||
value: cn=readonly,dc=eom,dc=dev
|
||||
- name: LDAP_BIND_PASS
|
||||
value: "{{ openldap_readonly_password }}"
|
||||
- name: LDAP_BUREAUCRAT_GROUP
|
||||
value: cn=Mediawiki Bureaucrats,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_INTERFACE_ADMIN_GROUP
|
||||
value: cn=Mediawiki Interface Administrators,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_SYSOP_GROUP
|
||||
value: cn=Mediawiki Sysops,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_SEARCH_FILTER
|
||||
value: (&(objectClass=posixAccount)(uid=%1$s)(memberOf=cn=Mediawiki Users,ou=MediaWiki,ou=Services,dc=eom,dc=dev))
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
||||
- name: Create Service for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
selector:
|
||||
app: mediawiki
|
||||
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: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: mediawiki.eom.dev
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: /
|
||||
backend:
|
||||
service:
|
||||
name: mediawiki
|
||||
port:
|
||||
number: 80
|
||||
tls:
|
||||
- hosts:
|
||||
- mediawiki.eom.dev
|
||||
secretName: mediawiki
|
||||
@@ -0,0 +1,97 @@
|
||||
---
|
||||
# tasks file for discourse-onionservice
|
||||
- name: onionservice for discourse
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: discourse
|
||||
namespace: discourse
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 80
|
||||
backend:
|
||||
service:
|
||||
name: discourse
|
||||
port:
|
||||
number: 80
|
||||
|
||||
- name: onionservice for gitea http
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: http
|
||||
namespace: gitea
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 80
|
||||
backend:
|
||||
service:
|
||||
name: gitea-http
|
||||
port:
|
||||
number: 3000
|
||||
|
||||
- name: onionservice for minio
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: minio
|
||||
namespace: minio
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 80
|
||||
backend:
|
||||
service:
|
||||
name: minio
|
||||
port:
|
||||
number: 9000
|
||||
|
||||
- name: onionservice for mastodon
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: mastodon
|
||||
namespace: mastodon
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 80
|
||||
backend:
|
||||
service:
|
||||
name: mastodon-apache
|
||||
port:
|
||||
number: 80
|
||||
|
||||
- name: onionservice for owncast
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: http
|
||||
namespace: owncast
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 80
|
||||
backend:
|
||||
service:
|
||||
name: owncast
|
||||
port:
|
||||
number: 8080
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
---
|
||||
# tasks file for mediawiki
|
||||
- name: Create MediaWiki namespace
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: fictwiki
|
||||
|
||||
- name: Deploy MariaDB
|
||||
kubernetes.core.helm:
|
||||
name: mariadb
|
||||
chart_ref: bitnami/mariadb
|
||||
release_namespace: fictwiki
|
||||
values:
|
||||
auth:
|
||||
rootPassword: "{{ mediawiki_admin_password }}"
|
||||
username: mediawiki
|
||||
password: "{{ mediawiki_admin_password }}"
|
||||
database: mediawiki
|
||||
primary:
|
||||
persistence:
|
||||
size: 4Ti
|
||||
|
||||
- name: Create Deployment for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: fictwiki
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mediawiki
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mediawiki
|
||||
spec:
|
||||
containers:
|
||||
- name: mediawiki
|
||||
image: mediawiki
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
requests:
|
||||
memory: 2Gi
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
||||
- name: Create Service for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: fictwiki
|
||||
spec:
|
||||
selector:
|
||||
app: mediawiki
|
||||
ports:
|
||||
- port: 80
|
||||
name: http
|
||||
type: ClusterIP
|
||||
|
||||
- name: Create OnionService
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: fictwiki
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 80
|
||||
backend:
|
||||
service:
|
||||
name: mediawiki
|
||||
port:
|
||||
number: 80
|
||||
|
||||
+3
-17
@@ -38,23 +38,6 @@
|
||||
secretName: gitea-tls
|
||||
persistence:
|
||||
size: 2Ti
|
||||
actions:
|
||||
enabled: true
|
||||
provisioning:
|
||||
enabled: true
|
||||
statefulset:
|
||||
actRunner:
|
||||
config: |
|
||||
log:
|
||||
level: debug
|
||||
cache:
|
||||
enabled: false
|
||||
runner:
|
||||
labels:
|
||||
- "ubuntu-latest:docker://node:16-bullseye"
|
||||
- "ubuntu-22.04:docker://node:16-bullseye"
|
||||
- "ubuntu-20.04:docker://node:16-bullseye"
|
||||
- "ubuntu-18.04:docker://node:16-buster"
|
||||
gitea:
|
||||
metrics:
|
||||
enabled: true
|
||||
@@ -82,6 +65,7 @@
|
||||
SHOW_REGISTRATION_BUTTON: true
|
||||
DEFAULT_ALLOW_CREATE_ORGANIZATION: false
|
||||
ALLOW_ONLY_EXTERNAL_REGISTRATION: false
|
||||
ENABLE_NOTIFY_MAIL: true
|
||||
oauth2_client:
|
||||
ENABLE_AUTO_REGISTRATION: true
|
||||
UPDATE_AVATAR: true
|
||||
@@ -105,6 +89,8 @@
|
||||
enabled: false
|
||||
postgresql:
|
||||
enabled: true
|
||||
image:
|
||||
tag: 16.4.0-debian-12-r9
|
||||
global:
|
||||
postgresql:
|
||||
auth:
|
||||
|
||||
+34
-8
@@ -188,6 +188,8 @@
|
||||
mountPath: /tmp/docker-mailserver/opendkim
|
||||
ports:
|
||||
- containerPort: 25
|
||||
- containerPort: 110
|
||||
- containerPort: 143
|
||||
- containerPort: 465
|
||||
- containerPort: 587
|
||||
- containerPort: 993
|
||||
@@ -276,14 +278,38 @@
|
||||
app: mail
|
||||
ports:
|
||||
- port: 25
|
||||
name: smtp-a
|
||||
- port: 465
|
||||
name: smtp-b
|
||||
- port: 587
|
||||
name: smtps
|
||||
- port: 993
|
||||
name: imap
|
||||
- port: 995
|
||||
name: smtp
|
||||
- port: 110
|
||||
name: pop3
|
||||
- port: 143
|
||||
name: imap
|
||||
- port: 465
|
||||
name: esmtps
|
||||
- port: 587
|
||||
name: esmtp
|
||||
- port: 993
|
||||
name: imaps
|
||||
- port: 995
|
||||
name: pop3s
|
||||
type: LoadBalancer
|
||||
externalTrafficPolicy: Local
|
||||
|
||||
- name: onionservice for smtp
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: smtp
|
||||
namespace: mail
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 25
|
||||
backend:
|
||||
service:
|
||||
name: mail
|
||||
port:
|
||||
number: 25
|
||||
|
||||
|
||||
+1
-1
@@ -3,4 +3,4 @@
|
||||
- name: Deploy
|
||||
include_tasks: "{{ item }}"
|
||||
loop:
|
||||
- gitea.yaml
|
||||
- monero.yaml
|
||||
|
||||
+64
-71
@@ -24,6 +24,22 @@
|
||||
persistence:
|
||||
size: 4Ti
|
||||
|
||||
- name: Create a persistent volume claim for MediaWiki
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 32Gi
|
||||
|
||||
- name: Create Deployment for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
@@ -44,62 +60,20 @@
|
||||
spec:
|
||||
containers:
|
||||
- name: mediawiki
|
||||
image: ericomeehan/mediawiki-extended
|
||||
image: mediawiki
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
requests:
|
||||
memory: 2Gi
|
||||
env:
|
||||
- name: WIKI_NAME
|
||||
value: MediaWiki
|
||||
- name: WIKI_ADMIN
|
||||
value: mediawiki_admin
|
||||
- name: WIKI_ADMIN_PASS
|
||||
value: "{{ mediawiki_admin_password }}"
|
||||
- name: WIKI_LANG
|
||||
value: en
|
||||
- name: WIKI_URL
|
||||
value: https://mediawiki.eom.dev/
|
||||
- name: DB_HOST
|
||||
value: mariadb
|
||||
- name: DB_PORT
|
||||
value: "3306"
|
||||
- name: DB_NAME
|
||||
value: mediawiki
|
||||
- name: DB_USER
|
||||
value: mediawiki
|
||||
- name: DB_PASS
|
||||
value: "{{ mediawiki_admin_password }}"
|
||||
- name: LDAP_BASE
|
||||
value: dc=eom,dc=dev
|
||||
- name: LDAP_SERVER_NAME
|
||||
value: openldap.openldap.svc.cluster.local
|
||||
- name: LDAP_SERVER_PORT
|
||||
value: "389"
|
||||
- name: LDAP_DOMAINNAME
|
||||
value: openldap.openldap.svc.cluster.local
|
||||
- name: LDAP_ENCTYPE
|
||||
value: clear
|
||||
- name: LDAP_USER_ATTR
|
||||
value: uid
|
||||
- name: LDAP_REAL_NAME_ATTR
|
||||
value: cn
|
||||
- name: LDAP_MAIL_ATTR
|
||||
value: mail
|
||||
- name: LDAP_BIND_USER
|
||||
value: cn=readonly,dc=eom,dc=dev
|
||||
- name: LDAP_BIND_PASS
|
||||
value: "{{ openldap_readonly_password }}"
|
||||
- name: LDAP_BUREAUCRAT_GROUP
|
||||
value: cn=Mediawiki Bureaucrats,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_INTERFACE_ADMIN_GROUP
|
||||
value: cn=Mediawiki Interface Administrators,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_SYSOP_GROUP
|
||||
value: cn=Mediawiki Sysops,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_SEARCH_FILTER
|
||||
value: (&(objectClass=posixAccount)(uid=%1$s)(memberOf=cn=Mediawiki Users,ou=MediaWiki,ou=Services,dc=eom,dc=dev))
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumemounts:
|
||||
- name: mediawiki
|
||||
mountpath: /var/www/html
|
||||
volumes:
|
||||
- name: mediawiki
|
||||
persistentVolumeClaim:
|
||||
claimName: mediawiki
|
||||
|
||||
- name: Create Service for MediaWiki
|
||||
k8s:
|
||||
@@ -117,31 +91,50 @@
|
||||
name: http
|
||||
type: ClusterIP
|
||||
|
||||
- name: Create Ingress
|
||||
- name: Create OnionService
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: ca-issuer
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
version: 3
|
||||
rules:
|
||||
- host: mediawiki.eom.dev
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: /
|
||||
backend:
|
||||
service:
|
||||
name: mediawiki
|
||||
port:
|
||||
number: 80
|
||||
tls:
|
||||
- hosts:
|
||||
- mediawiki.eom.dev
|
||||
secretName: mediawiki
|
||||
- port:
|
||||
number: 80
|
||||
backend:
|
||||
service:
|
||||
name: mediawiki
|
||||
port:
|
||||
number: 80
|
||||
|
||||
#- name: Create Ingress
|
||||
# k8s:
|
||||
# state: present
|
||||
# definition:
|
||||
# apiVersion: networking.k8s.io/v1
|
||||
# kind: Ingress
|
||||
# metadata:
|
||||
# annotations:
|
||||
# cert-manager.io/cluster-issuer: ca-issuer
|
||||
# name: mediawiki
|
||||
# namespace: mediawiki
|
||||
# spec:
|
||||
# ingressClassName: nginx
|
||||
# rules:
|
||||
# - host: mediawiki.eom.dev
|
||||
# http:
|
||||
# paths:
|
||||
# - pathType: Prefix
|
||||
# path: /
|
||||
# backend:
|
||||
# service:
|
||||
# name: mediawiki
|
||||
# port:
|
||||
# number: 80
|
||||
# tls:
|
||||
# - hosts:
|
||||
# - mediawiki.eom.dev
|
||||
# secretName: mediawiki
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
---
|
||||
# tasks file for mediawiki
|
||||
- name: Create MediaWiki namespace
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: mediawiki
|
||||
|
||||
- name: Deploy MariaDB
|
||||
kubernetes.core.helm:
|
||||
name: mariadb
|
||||
chart_ref: bitnami/mariadb
|
||||
release_namespace: mediawiki
|
||||
values:
|
||||
auth:
|
||||
rootPassword: "{{ mediawiki_admin_password }}"
|
||||
username: mediawiki
|
||||
password: "{{ mediawiki_admin_password }}"
|
||||
database: mediawiki
|
||||
primary:
|
||||
persistence:
|
||||
size: 4Ti
|
||||
|
||||
- name: Create Deployment for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: mediawiki
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: mediawiki
|
||||
spec:
|
||||
containers:
|
||||
- name: mediawiki
|
||||
image: ericomeehan/mediawiki-extended
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
requests:
|
||||
memory: 2Gi
|
||||
env:
|
||||
- name: WIKI_NAME
|
||||
value: MediaWiki
|
||||
- name: WIKI_ADMIN
|
||||
value: mediawiki_admin
|
||||
- name: WIKI_ADMIN_PASS
|
||||
value: "{{ mediawiki_admin_password }}"
|
||||
- name: WIKI_LANG
|
||||
value: en
|
||||
- name: WIKI_URL
|
||||
value: https://mediawiki.eom.dev/
|
||||
- name: DB_HOST
|
||||
value: mariadb
|
||||
- name: DB_PORT
|
||||
value: "3306"
|
||||
- name: DB_NAME
|
||||
value: mediawiki
|
||||
- name: DB_USER
|
||||
value: mediawiki
|
||||
- name: DB_PASS
|
||||
value: "{{ mediawiki_admin_password }}"
|
||||
- name: LDAP_BASE
|
||||
value: dc=eom,dc=dev
|
||||
- name: LDAP_SERVER_NAME
|
||||
value: openldap.openldap.svc.cluster.local
|
||||
- name: LDAP_SERVER_PORT
|
||||
value: "389"
|
||||
- name: LDAP_DOMAINNAME
|
||||
value: openldap.openldap.svc.cluster.local
|
||||
- name: LDAP_ENCTYPE
|
||||
value: clear
|
||||
- name: LDAP_USER_ATTR
|
||||
value: uid
|
||||
- name: LDAP_REAL_NAME_ATTR
|
||||
value: cn
|
||||
- name: LDAP_MAIL_ATTR
|
||||
value: mail
|
||||
- name: LDAP_BIND_USER
|
||||
value: cn=readonly,dc=eom,dc=dev
|
||||
- name: LDAP_BIND_PASS
|
||||
value: "{{ openldap_readonly_password }}"
|
||||
- name: LDAP_BUREAUCRAT_GROUP
|
||||
value: cn=Mediawiki Bureaucrats,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_INTERFACE_ADMIN_GROUP
|
||||
value: cn=Mediawiki Interface Administrators,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_SYSOP_GROUP
|
||||
value: cn=Mediawiki Sysops,ou=MediaWiki,ou=Services,dc=eom,dc=dev
|
||||
- name: LDAP_SEARCH_FILTER
|
||||
value: (&(objectClass=posixAccount)(uid=%1$s)(memberOf=cn=Mediawiki Users,ou=MediaWiki,ou=Services,dc=eom,dc=dev))
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
||||
- name: Create Service for MediaWiki
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
selector:
|
||||
app: mediawiki
|
||||
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: mediawiki
|
||||
namespace: mediawiki
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- host: mediawiki.eom.dev
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: /
|
||||
backend:
|
||||
service:
|
||||
name: mediawiki
|
||||
port:
|
||||
number: 80
|
||||
tls:
|
||||
- hosts:
|
||||
- mediawiki.eom.dev
|
||||
secretName: mediawiki
|
||||
@@ -0,0 +1,328 @@
|
||||
---
|
||||
# tasks file for monero
|
||||
- name: Create Monero namespace
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: monero
|
||||
|
||||
- name: Create PVC for Monero
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: data
|
||||
namespace: monero
|
||||
spec:
|
||||
storageClassName: r720-nfs-client
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 512Gi
|
||||
|
||||
- name: Create PVC for P2Pool
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: p2pool
|
||||
namespace: monero
|
||||
spec:
|
||||
storageClassName: r720-nfs-client
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 64Gi
|
||||
|
||||
- name: Create a Tor instance for Monerod
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: Tor
|
||||
metadata:
|
||||
name: tor
|
||||
namespace: monero
|
||||
|
||||
- name: Create Deployment for Monerod
|
||||
when: setup
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: monerod
|
||||
namespace: monero
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: monerod
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: monerod
|
||||
spec:
|
||||
containers:
|
||||
- name: monerod
|
||||
image: nginx
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
requests:
|
||||
memory: 2Gi
|
||||
ports:
|
||||
- containerPort: 18080
|
||||
- containerPort: 18081
|
||||
- containerPort: 18083
|
||||
- containerPort: 18084
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /data
|
||||
- name: p2pool
|
||||
image: nginx
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 3333
|
||||
- containerPort: 37889
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: data
|
||||
|
||||
- name: Create Service for Monero
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: monerod
|
||||
namespace: monero
|
||||
spec:
|
||||
selector:
|
||||
app: monerod
|
||||
ports:
|
||||
- port: 18080
|
||||
name: p2p
|
||||
- port: 18081
|
||||
name: rpc
|
||||
- port: 18083
|
||||
name: zmq
|
||||
- port: 18084
|
||||
name: anonp2p
|
||||
type: ClusterIP
|
||||
|
||||
- name: Create Service for P2Pool
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: p2pool
|
||||
namespace: monero
|
||||
spec:
|
||||
selector:
|
||||
app: p2pool
|
||||
ports:
|
||||
- port: 3333
|
||||
name: mine
|
||||
- port: 37889
|
||||
name: p2p
|
||||
type: LoadBalancer
|
||||
|
||||
- name: Create OnionService
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: rpc
|
||||
namespace: monero
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 18081
|
||||
backend:
|
||||
service:
|
||||
name: monerod
|
||||
port:
|
||||
number: 18081
|
||||
|
||||
- name: Create OnionService
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: p2p
|
||||
namespace: monero
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 18084
|
||||
backend:
|
||||
service:
|
||||
name: monerod
|
||||
port:
|
||||
number: 18084
|
||||
|
||||
- name: Create OnionService
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: mining
|
||||
namespace: monero
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 3333
|
||||
backend:
|
||||
service:
|
||||
name: p2pool
|
||||
port:
|
||||
number: 3333
|
||||
|
||||
- name: Create OnionService
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: p2poolp2p
|
||||
namespace: monero
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 37889
|
||||
backend:
|
||||
service:
|
||||
name: p2pool
|
||||
port:
|
||||
number: 37889
|
||||
|
||||
- name: Get p2p OnionService info
|
||||
kubernetes.core.k8s_info:
|
||||
api_version: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
namespace: monero
|
||||
field_selectors:
|
||||
- metadata.name=p2p
|
||||
register: p2p_onionservice
|
||||
|
||||
- name: Get p2pool OnionService info
|
||||
kubernetes.core.k8s_info:
|
||||
api_version: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
namespace: monero
|
||||
field_selectors:
|
||||
- metadata.name=p2poolp2p
|
||||
register: p2pool_onionservice
|
||||
|
||||
- name: Get Tor Service info
|
||||
kubernetes.core.k8s_info:
|
||||
api_version: v1
|
||||
kind: Service
|
||||
namespace: monero
|
||||
field_selectors:
|
||||
- metadata.name=tor-tor-svc
|
||||
register: tor_svc
|
||||
|
||||
- name: Edit Deployment for Monerod
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: monerod
|
||||
namespace: monero
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: monerod
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: monerod
|
||||
spec:
|
||||
containers:
|
||||
- name: monerod
|
||||
image: ericomeehan/monerod:latest
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- monerod
|
||||
args:
|
||||
- "--proxy={{ tor_svc.resources[0].spec.clusterIP }}:9050"
|
||||
- "--p2p-bind-ip=0.0.0.0"
|
||||
- "--p2p-bind-port=18080"
|
||||
- "--rpc-bind-ip=0.0.0.0"
|
||||
- "--rpc-bind-port=18081"
|
||||
- "--tx-proxy=tor,{{ tor_svc.resources[0].spec.clusterIP }}:9050"
|
||||
- "--anonymous-inbound={{ p2p_onionservice.resources[0].status.hostname }}:18084,0.0.0.0:18084"
|
||||
- "--data-dir=/data"
|
||||
- "--zmq-pub=tcp://127.0.0.1:18083"
|
||||
- "--non-interactive"
|
||||
- "--no-igd"
|
||||
- "--confirm-external-bind"
|
||||
resources:
|
||||
requests:
|
||||
memory: 2Gi
|
||||
ports:
|
||||
- containerPort: 18080
|
||||
- containerPort: 18081
|
||||
- containerPort: 18083
|
||||
- containerPort: 18084
|
||||
volumeMounts:
|
||||
- name: monerod
|
||||
mountPath: /data
|
||||
- name: p2pool
|
||||
image: ericomeehan/p2pool:latest
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- p2pool
|
||||
args:
|
||||
- "--host"
|
||||
- "127.0.0.1"
|
||||
- "--rpc-port"
|
||||
- "18081"
|
||||
- "--wallet"
|
||||
- "{{ monero_p2pool_wallet_address }}"
|
||||
- "--stratum"
|
||||
- "0.0.0.0:3333"
|
||||
- "--p2p"
|
||||
- "0.0.0.0:37889"
|
||||
- "--addpeers"
|
||||
- "65.21.227.114:37889"
|
||||
- "--socks5"
|
||||
- "{{ tor_svc.resources[0].spec.clusterIP }}:9050"
|
||||
- "--no-dns"
|
||||
- "--no-upnp"
|
||||
- "--onion-address"
|
||||
- "{{ p2pool_onionservice.resources[0].status.hostname }}"
|
||||
ports:
|
||||
- containerPort: 3333
|
||||
- containerPort: 37889
|
||||
volumeMounts:
|
||||
- name: p2pool
|
||||
mountPath: /home/p2pool
|
||||
volumes:
|
||||
- name: monerod
|
||||
persistentVolumeClaim:
|
||||
claimName: data
|
||||
- name: p2pool
|
||||
persistentVolumeClaim:
|
||||
claimName: p2pool
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
---
|
||||
# tasks file for monero
|
||||
- name: Create Monero namespace
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: monero
|
||||
|
||||
- name: Create PVC for Monero
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: data
|
||||
namespace: monero
|
||||
spec:
|
||||
storageClassName: r720-nfs-client
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 512Gi
|
||||
|
||||
- name: Create PVC for P2Pool
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: p2pool
|
||||
namespace: monero
|
||||
spec:
|
||||
storageClassName: r720-nfs-client
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 64Gi
|
||||
|
||||
- name: Request a certificate for Monero
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: monerotls
|
||||
namespace: monero
|
||||
spec:
|
||||
secretName: monerotls
|
||||
privateKey:
|
||||
algorithm: RSA
|
||||
encoding: PKCS1
|
||||
size: 2048
|
||||
duration: 2160h # 90d
|
||||
renewBefore: 360h # 15d
|
||||
isCA: false
|
||||
usages:
|
||||
- server auth
|
||||
- client auth
|
||||
subject:
|
||||
organizations:
|
||||
- EOM
|
||||
commonName: monerod.eom.dev
|
||||
dnsNames:
|
||||
- monerod.eom.dev
|
||||
issuerRef:
|
||||
name: ca-issuer
|
||||
kind: ClusterIssuer
|
||||
|
||||
- name: Request a certificate for p2pool
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: tls
|
||||
namespace: monero
|
||||
spec:
|
||||
secretName: tls
|
||||
privateKey:
|
||||
algorithm: RSA
|
||||
encoding: PKCS1
|
||||
size: 2048
|
||||
duration: 2160h # 90d
|
||||
renewBefore: 360h # 15d
|
||||
isCA: false
|
||||
usages:
|
||||
- server auth
|
||||
- client auth
|
||||
subject:
|
||||
organizations:
|
||||
- EOM
|
||||
commonName: p2pool.eom.dev
|
||||
dnsNames:
|
||||
- p2pool.eom.dev
|
||||
issuerRef:
|
||||
name: ca-issuer
|
||||
kind: ClusterIssuer
|
||||
|
||||
- name: Edit Deployment for Monerod
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: monerod
|
||||
namespace: monero
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: monerod
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: monerod
|
||||
spec:
|
||||
containers:
|
||||
- name: monerod
|
||||
image: ericomeehan/monerod:latest
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- monerod
|
||||
args:
|
||||
- "--p2p-bind-ip=0.0.0.0"
|
||||
- "--p2p-bind-port=18080"
|
||||
- "--rpc-bind-ip=0.0.0.0"
|
||||
- "--rpc-bind-port=18081"
|
||||
- "--restricted-rpc"
|
||||
- "--rpc-login={{ monerod_user }}:{{ monerod_password }}"
|
||||
- "--data-dir=/data"
|
||||
- "--zmq-pub=tcp://127.0.0.1:18083"
|
||||
- "--rpc-ssl=enabled"
|
||||
- "--rpc-ssl-private-key=/etc/letsencrypt/tls.key"
|
||||
- "--rpc-ssl-certificate=/etc/letsencrypt/tls.crt"
|
||||
- "--non-interactive"
|
||||
- "--no-igd"
|
||||
- "--confirm-external-bind"
|
||||
- "--bootstrap-daemon-address=auto"
|
||||
resources:
|
||||
requests:
|
||||
memory: 2Gi
|
||||
ports:
|
||||
- containerPort: 18080
|
||||
- containerPort: 18081
|
||||
- containerPort: 18083
|
||||
volumeMounts:
|
||||
- name: monerod
|
||||
mountPath: /data
|
||||
- name: monerotls
|
||||
mountPath: /etc/letsencrypt
|
||||
volumes:
|
||||
- name: monerod
|
||||
persistentVolumeClaim:
|
||||
claimName: data
|
||||
- name: monerotls
|
||||
secret:
|
||||
secretName: monerotls
|
||||
|
||||
- name: deploy p2pool
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: p2pool
|
||||
namespace: monero
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: p2pool
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: p2pool
|
||||
spec:
|
||||
containers:
|
||||
- name: p2pool
|
||||
image: ericomeehan/p2pool:latest
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- p2pool
|
||||
args:
|
||||
- "--host"
|
||||
- "monerod"
|
||||
- "--rpc-port"
|
||||
- "18081"
|
||||
- "--wallet"
|
||||
- "{{ monero_p2pool_wallet_address }}"
|
||||
- "--stratum"
|
||||
- "0.0.0.0:3333"
|
||||
- "--p2p"
|
||||
- "0.0.0.0:37889"
|
||||
- "--addpeers"
|
||||
- "65.21.227.114:37889"
|
||||
- "--tls-cert"
|
||||
- "/etc/letsencrypt/tls.crt"
|
||||
- "--tls-cert-key"
|
||||
- "/etc/letsencrypt/tls.key"
|
||||
- "--rpc-ssl"
|
||||
- "--rpc-login={{ monerod_user }}:{{ monerod_password }}"
|
||||
ports:
|
||||
- containerPort: 3333
|
||||
- containerPort: 37889
|
||||
volumeMounts:
|
||||
- name: p2pool
|
||||
mountPath: /home/p2pool
|
||||
- name: tls
|
||||
mountPath: /etc/letsencrypt
|
||||
volumes:
|
||||
- name: p2pool
|
||||
persistentVolumeClaim:
|
||||
claimName: p2pool
|
||||
- name: tls
|
||||
secret:
|
||||
secretName: tls
|
||||
|
||||
- name: monero service
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: monerod
|
||||
namespace: monero
|
||||
spec:
|
||||
selector:
|
||||
app: monerod
|
||||
ports:
|
||||
- port: 18080
|
||||
name: p2p
|
||||
- port: 18081
|
||||
name: rpc
|
||||
- port: 18083
|
||||
name: zmq
|
||||
type: LoadBalancer
|
||||
|
||||
- name: p2pool service
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: p2pool
|
||||
namespace: monero
|
||||
spec:
|
||||
selector:
|
||||
app: p2pool
|
||||
ports:
|
||||
- port: 3333
|
||||
name: mine
|
||||
- port: 37889
|
||||
name: p2poolp2p
|
||||
type: LoadBalancer
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@
|
||||
spec:
|
||||
containers:
|
||||
- name: owncast
|
||||
image: owncast/owncast:0.2.0
|
||||
image: owncast/owncast:0.3.0
|
||||
resources:
|
||||
requests:
|
||||
cpu: 1.5
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
---
|
||||
# tasks file for monero
|
||||
- name: Create P2Pool namespace
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: p2pool
|
||||
|
||||
- name: Create PVC for P2Pool
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: data
|
||||
namespace: p2pool
|
||||
spec:
|
||||
storageClassName: r720-nfs-client
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 64Gi
|
||||
|
||||
- name: Create a Tor instance for P2Poold
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: Tor
|
||||
metadata:
|
||||
name: tor
|
||||
namespace: p2pool
|
||||
|
||||
- name: Create Deployment for P2Poold
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: p2pool
|
||||
namespace: p2pool
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: p2pool
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: p2pool
|
||||
spec:
|
||||
containers:
|
||||
- name: p2pool
|
||||
image: nginx
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 3333
|
||||
- containerPort: 37889
|
||||
|
||||
- name: Create Service for P2Pool
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: p2pool
|
||||
namespace: p2pool
|
||||
spec:
|
||||
selector:
|
||||
app: p2pool
|
||||
ports:
|
||||
- port: 3333
|
||||
name: mine
|
||||
- port: 37889
|
||||
name: p2p
|
||||
type: ClusterIP
|
||||
|
||||
- name: Create OnionService for mining
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: mining
|
||||
namespace: p2pool
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 3333
|
||||
backend:
|
||||
service:
|
||||
name: p2pool
|
||||
port:
|
||||
number: 3333
|
||||
|
||||
- name: Create OnionService for P2P
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
metadata:
|
||||
name: p2p
|
||||
namespace: p2pool
|
||||
spec:
|
||||
version: 3
|
||||
rules:
|
||||
- port:
|
||||
number: 28722
|
||||
backend:
|
||||
service:
|
||||
name: p2pool
|
||||
port:
|
||||
number: 37889
|
||||
|
||||
- name: Get Tor Service info
|
||||
kubernetes.core.k8s_info:
|
||||
api_version: v1
|
||||
kind: Service
|
||||
namespace: p2pool
|
||||
field_selectors:
|
||||
- metadata.name=tor-tor-svc
|
||||
register: tor_svc
|
||||
|
||||
- name: Get p2pool OnionService info
|
||||
kubernetes.core.k8s_info:
|
||||
api_version: tor.k8s.torproject.org/v1alpha2
|
||||
kind: OnionService
|
||||
namespace: p2pool
|
||||
field_selectors:
|
||||
- metadata.name=p2p
|
||||
register: p2pool_onionservice
|
||||
|
||||
- name: Edit Deployment for P2Poold
|
||||
k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: p2pool
|
||||
namespace: p2pool
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: p2pool
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: p2pool
|
||||
spec:
|
||||
containers:
|
||||
- name: p2pool
|
||||
image: ericomeehan/p2pool:latest
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- p2pool
|
||||
args:
|
||||
- "--host"
|
||||
- "{{ monero_p2pool_hostname }}"
|
||||
- "--rpc-port"
|
||||
- "18081"
|
||||
- "--wallet"
|
||||
- "{{ monero_p2pool_wallet_address }}"
|
||||
- "--stratum"
|
||||
- "0.0.0.0:3333"
|
||||
- "--p2p"
|
||||
- "0.0.0.0:37889"
|
||||
- "--addpeers"
|
||||
- "65.21.227.114:37889"
|
||||
- "--socks5"
|
||||
- "{{ tor_svc.resources[0].spec.clusterIP }}:9050"
|
||||
- "--no-dns"
|
||||
- "--no-upnp"
|
||||
- "--onion-address"
|
||||
- "{{ p2pool_onionservice.resources[0].status.hostname }}"
|
||||
ports:
|
||||
- containerPort: 3333
|
||||
- containerPort: 37889
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /home/p2pool
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: data
|
||||
|
||||
+45
-52
@@ -7,37 +7,17 @@
|
||||
release_namespace: prometheus
|
||||
create_namespace: true
|
||||
values:
|
||||
alertmanager:
|
||||
image:
|
||||
repository: bitnamilegacy/alertmanager
|
||||
tag: 0.28.1-debian-12-r15
|
||||
server:
|
||||
image:
|
||||
repository: bitnamilegacy/prometheus
|
||||
tag: 3.5.0-debian-12-r3
|
||||
persistence:
|
||||
size: 256Gi
|
||||
extraScrapeConfigs:
|
||||
- job_name: apps
|
||||
static_configs:
|
||||
- targets:
|
||||
- discourse.eom.dev
|
||||
labels:
|
||||
instance: discourse
|
||||
- targets:
|
||||
- gitea.eom.dev
|
||||
labels:
|
||||
instance: gitea
|
||||
- targets:
|
||||
- grafana.eom.dev
|
||||
labels:
|
||||
instance: grafana
|
||||
metrics_path: /metrics
|
||||
|
||||
- job_name: owncast
|
||||
scrape_interval: 1m
|
||||
metrics_path: /api/admin/prometheus
|
||||
scheme: https
|
||||
basic_auth:
|
||||
username: admin
|
||||
password: "{{ owncast_admin_password }}"
|
||||
static_config:
|
||||
- targets:
|
||||
- owncast.eom.dev
|
||||
|
||||
- job_name: local
|
||||
static_configs:
|
||||
- targets:
|
||||
@@ -45,103 +25,116 @@
|
||||
labels:
|
||||
instance: nextcloud
|
||||
- targets:
|
||||
- matrix-synapse.matrix.svc.cluster.local:9092
|
||||
- ingress-nginx-controller-metrics.ingress-nginx.svc.cluster.local:10254
|
||||
|
||||
- job_name: www
|
||||
static_configs:
|
||||
- targets:
|
||||
- prometheus.www.svc.cluster.local:9117
|
||||
labels:
|
||||
instance: matrix
|
||||
metrics_path: /
|
||||
instance: www
|
||||
metrics_path: /metrics
|
||||
|
||||
- job_name: libvirt_exporter
|
||||
static_configs:
|
||||
- targets:
|
||||
- 192.168.1.48:9177
|
||||
- poweredge-t640:9177
|
||||
labels:
|
||||
instance: poweredge-t640
|
||||
- targets:
|
||||
- poweredge-r720:9177
|
||||
labels:
|
||||
instance: poweredge-r720
|
||||
metrics_path: /metrics
|
||||
|
||||
- job_name: node_exporter
|
||||
static_configs:
|
||||
- targets:
|
||||
- 192.168.1.95:9100
|
||||
- poweredge-r350:9100
|
||||
labels:
|
||||
instance: poweredge-r350
|
||||
- targets:
|
||||
- 192.168.1.48:9100
|
||||
- poweredge-t640:9100
|
||||
labels:
|
||||
instance: poweredge-t640
|
||||
- targets:
|
||||
- 192.168.1.59:9100
|
||||
- poweredge-r720:9100
|
||||
labels:
|
||||
instance: poweredge-r720
|
||||
- targets:
|
||||
- alpha-control-plane:9100
|
||||
labels:
|
||||
instance: alpha-control-plane
|
||||
- targets:
|
||||
- 192.168.1.91:9100
|
||||
- alpha-worker-0:9100
|
||||
labels:
|
||||
instance: alpha-worker-0
|
||||
- targets:
|
||||
- 192.168.1.70:9100
|
||||
- alpha-worker-1:9100
|
||||
labels:
|
||||
instance: alpha-worker-1
|
||||
- targets:
|
||||
- 192.168.1.74:9100
|
||||
- alpha-worker-2:9100
|
||||
labels:
|
||||
instance: alpha-worker-2
|
||||
- targets:
|
||||
- 192.168.1.75:9100
|
||||
- alpha-worker-3:9100
|
||||
labels:
|
||||
instance: alpha-worker-3
|
||||
- targets:
|
||||
- 192.168.1.61:9100
|
||||
- alpha-worker-4:9100
|
||||
labels:
|
||||
instance: alpha-worker-4
|
||||
- targets:
|
||||
- 192.168.1.66:9100
|
||||
- alpha-worker-5:9100
|
||||
labels:
|
||||
instance: alpha-worker-5
|
||||
- targets:
|
||||
- 192.168.1.38:9100
|
||||
- alpha-worker-6:9100
|
||||
labels:
|
||||
instance: alpha-worker-6
|
||||
- targets:
|
||||
- 192.168.1.92:9100
|
||||
- alpha-worker-7:9100
|
||||
labels:
|
||||
instance: alpha-worker-7
|
||||
- targets:
|
||||
- 192.168.1.67:9100
|
||||
- alpha-worker-8:9100
|
||||
labels:
|
||||
instance: alpha-worker-8
|
||||
- targets:
|
||||
- 192.168.1.63:9100
|
||||
- alpha-worker-9:9100
|
||||
labels:
|
||||
instance: alpha-worker-9
|
||||
- targets:
|
||||
- 192.168.1.86:9100
|
||||
- alpha-worker-10:9100
|
||||
labels:
|
||||
instance: alpha-worker-10
|
||||
- targets:
|
||||
- 192.168.1.65:9100
|
||||
- alpha-worker-11:9100
|
||||
labels:
|
||||
instance: alpha-worker-11
|
||||
- targets:
|
||||
- 192.168.1.72:9100
|
||||
- alpha-worker-12:9100
|
||||
labels:
|
||||
instance: alpha-worker-12
|
||||
- targets:
|
||||
- 192.168.1.95:9100
|
||||
- alpha-worker-13:9100
|
||||
labels:
|
||||
instance: alpha-worker-13
|
||||
- targets:
|
||||
- 192.168.1.70:9100
|
||||
- alpha-worker-14:9100
|
||||
labels:
|
||||
instance: alpha-worker-14
|
||||
- targets:
|
||||
- 192.168.1.46:9100
|
||||
- alpha-worker-15:9100
|
||||
labels:
|
||||
instance: alpha-worker-15
|
||||
- targets:
|
||||
- 192.168.1.74:9100
|
||||
- alpha-worker-16:9100
|
||||
labels:
|
||||
instance: alpha-worker-16
|
||||
- targets:
|
||||
- 192.168.1.88:9100
|
||||
- alpha-worker-17:9100
|
||||
labels:
|
||||
instance: alpha-worker-17
|
||||
metrics_path: /metrics
|
||||
|
||||
+27
-4
@@ -16,7 +16,7 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: config
|
||||
name: data
|
||||
namespace: tes3mp
|
||||
spec:
|
||||
accessModes:
|
||||
@@ -25,6 +25,18 @@
|
||||
requests:
|
||||
storage: 16Gi
|
||||
|
||||
- name: Create a config map
|
||||
k8s:
|
||||
state: present
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: config
|
||||
namespace: tes3mp
|
||||
data:
|
||||
tes3mp-server-default.cfg: "{{ lookup('template', 'tes3mp-server-default.cfg.j2') }}"
|
||||
|
||||
- name: Create a deployment
|
||||
k8s:
|
||||
definition:
|
||||
@@ -45,21 +57,32 @@
|
||||
spec:
|
||||
containers:
|
||||
- name: tes3mp
|
||||
image: tes3mp/server
|
||||
image: tes3mp/server:0.7.0
|
||||
imagePullPolicy: Always
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /server/data
|
||||
- name: config
|
||||
mountPath: /server/tes3mp-server-default.cfg
|
||||
subPath: tes3mp-server-default.cfg
|
||||
ports:
|
||||
- containerPort: 25565
|
||||
env:
|
||||
- name: TES3MP_SERVER_GENERAL_HOSTNAME
|
||||
value: tes3.eom.dev
|
||||
- name: TES3MP_SERVER_GENERAL_PASSWORD
|
||||
value: "{{ tes3mp_password }}"
|
||||
value: "{{ tes3mp_server_general_password }}"
|
||||
command:
|
||||
- "./tes3mp-server"
|
||||
args:
|
||||
- "$@"
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: data
|
||||
- name: config
|
||||
configMap:
|
||||
name: config
|
||||
|
||||
- name: Expose deployment as a service
|
||||
k8s:
|
||||
@@ -73,7 +96,7 @@
|
||||
selector:
|
||||
app: tes3mp
|
||||
ports:
|
||||
- port: 25566
|
||||
- port: 25565
|
||||
targetPort: 25565
|
||||
name: tes3mp
|
||||
protocol: UDP
|
||||
|
||||
Reference in New Issue
Block a user