Compare commits

..
1 Commits
Author SHA1 Message Date
eric fb24a6c4a3 Update 2026-10-23 11:16:16 -04:00
3 changed files with 133 additions and 529 deletions
+5
View File
@@ -1,3 +1,8 @@
#SPDX-License-Identifier: MIT-0 #SPDX-License-Identifier: MIT-0
--- ---
# defaults file for ansible-role-ejabberd # defaults file for ansible-role-ejabberd
ejabberd_macro_admin: "admin@example.net"
ejabberd_macro_password: "changeme"
ejabberd_namespace: "ejabberd"
ejabberd_pvc_size_data: 8Gi
ejabberd_pvc_size_db: 8Gi
Binary file not shown.
+128 -529
View File
@@ -8,68 +8,19 @@
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
name: "{{ ejabberd_namespace }}" name: ejabberd
- name: certificate - name: repo
k8s: kubernetes.core.helm_repository:
state: present name: ejabberd
definition: repo_url: https://sando38.github.io/helm-ejabberd
apiVersion: cert-manager.io/v1 register: repo_update
kind: Certificate
metadata:
name: ssl
namespace: "{{ ejabberd_namespace }}"
spec:
secretName: ssl
privateKey:
algorithm: RSA
encoding: PKCS1
size: 2048
duration: 2160h # 90d
renewBefore: 360h # 15d
isCA: false
usages:
- server auth
- client auth
subject:
organizations:
- EOM
commonName: eom.dev
dnsNames:
- ejabberd.eom.dev
issuerRef:
name: ca-issuer
kind: ClusterIssuer
- name: configmap - name: update
k8s: command: helm repo update
state: present when: repo_update.changed
definition:
apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: "{{ ejabberd_namespace }}"
data:
ejabberd.yml: "{{ lookup('template', 'ejabberd.yml.j2') }}"
- name: pvc for data - name: pvc for mariadb
k8s:
state: present
definition:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
namespace: "{{ ejabberd_namespace }}"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "{{ ejabberd_pvc_size_data }}"
- name: pvc for db
k8s: k8s:
state: present state: present
definition: definition:
@@ -85,485 +36,157 @@
requests: requests:
storage: "{{ ejabberd_pvc_size_db }}" storage: "{{ ejabberd_pvc_size_db }}"
- name: deployment for ejabberd - name: deployment for mariadb
k8s: k8s:
definition: definition:
apiVersion: v1 apiVersion: v1
kind: Deployment kind: Deployment
metadata: metadata:
name: ejabberd name: mariadb
namespace: "{{ ejabberd_namespace }}" namespace: "{{ ejabberd_namespace }}"
spec: spec:
replicas: 1 replicas: 1
selector: selector:
matchLabels: matchLabels:
app: ejabberd app: mariadb
template: template:
metadata: metadata:
labels: labels:
app: ejabberd app: mariadb
spec: spec:
containers: containers:
- name: ejabberd - name: mariadb
image: ejabberd/ecs image: mariadb
env: env:
- name: EJABBERD_MACRO_ADMIN - name: MYSQL_ROOT_PASSWORD
value: "{{ ejabberd_macro_admin }}" value: "{{ ejabberd_mariadb_root_password }}"
- name: EJABBERD_MACRO_PASSWORD - name: MYSQL_USER
value: "{{ ejabberd_macro_password }}" value: "ejabberd"
- name: MYSQL_PASSWORD
value: "{{ ejabberd_mariadb_password }}"
- name: MYSQL_DATABASE
value: "ejabberd"
volumeMounts: volumeMounts:
- name: certs
mountPath: /etc/letsencrypt
- name: config
mountPath: /opt/ejabberd/conf/ejabberd.yml
subPath: ejabberd.yml
- name: data - name: data
mountPath: /opt/ejabberd/upload mountPath: /var/lib/mysql
- name: db
mountPath: /opt/ejabberd/database
ports: ports:
- containerPort: 5222 - containerPort: 3306
- containerPort: 5269
- containerPort: 5280
- containerPort: 5443
- containerPort: 1880
- containerPort: 1883
- containerPort: 50000
- containerPort: 50001
- containerPort: 50002
- containerPort: 50003
- containerPort: 50004
- containerPort: 50005
- containerPort: 50006
- containerPort: 50007
- containerPort: 50008
- containerPort: 50009
- containerPort: 50010
- containerPort: 50011
- containerPort: 50012
- containerPort: 50013
- containerPort: 50014
- containerPort: 50015
- containerPort: 50016
- containerPort: 50017
- containerPort: 50018
- containerPort: 50019
- containerPort: 50020
- containerPort: 50021
- containerPort: 50022
- containerPort: 50023
- containerPort: 50024
- containerPort: 50025
- containerPort: 50026
- containerPort: 50027
- containerPort: 50028
- containerPort: 50029
- containerPort: 50030
- containerPort: 50031
- containerPort: 50032
- containerPort: 50033
- containerPort: 50034
- containerPort: 50035
- containerPort: 50036
- containerPort: 50037
- containerPort: 50038
- containerPort: 50039
- containerPort: 50040
- containerPort: 50041
- containerPort: 50042
- containerPort: 50043
- containerPort: 50044
- containerPort: 50045
- containerPort: 50046
- containerPort: 50047
- containerPort: 50048
- containerPort: 50049
- containerPort: 50050
- containerPort: 50051
- containerPort: 50052
- containerPort: 50053
- containerPort: 50054
- containerPort: 50055
- containerPort: 50056
- containerPort: 50057
- containerPort: 50058
- containerPort: 50059
- containerPort: 50060
- containerPort: 50061
- containerPort: 50062
- containerPort: 50063
- containerPort: 50064
- containerPort: 50065
- containerPort: 50066
- containerPort: 50067
- containerPort: 50068
- containerPort: 50069
- containerPort: 50070
- containerPort: 50071
- containerPort: 50072
- containerPort: 50073
- containerPort: 50074
- containerPort: 50075
- containerPort: 50076
- containerPort: 50077
- containerPort: 50078
- containerPort: 50079
- containerPort: 50080
- containerPort: 50081
- containerPort: 50082
- containerPort: 50083
- containerPort: 50084
- containerPort: 50085
- containerPort: 50086
- containerPort: 50087
- containerPort: 50088
- containerPort: 50089
- containerPort: 50090
- containerPort: 50091
- containerPort: 50092
- containerPort: 50093
- containerPort: 50094
- containerPort: 50095
- containerPort: 50096
- containerPort: 50097
- containerPort: 50098
- containerPort: 50099
- containerPort: 5210
- containerPort: 4369
- containerPort: 4370
- containerPort: 4371
- containerPort: 4372
- containerPort: 4373
- containerPort: 4374
- containerPort: 4375
- containerPort: 4376
- containerPort: 4377
- containerPort: 4378
- containerPort: 4379
- containerPort: 4380
- containerPort: 4381
- containerPort: 4382
- containerPort: 4383
- containerPort: 4384
- containerPort: 4385
- containerPort: 4386
- containerPort: 4387
- containerPort: 4388
- containerPort: 4389
- containerPort: 4390
- containerPort: 4391
- containerPort: 4392
- containerPort: 4393
- containerPort: 4394
- containerPort: 4395
- containerPort: 4396
- containerPort: 4397
- containerPort: 4398
- containerPort: 4399
volumes: volumes:
- name: data - name: data
persistentVolumeClaim:
claimName: data
- name: config
configMap:
name: config
- name: db
persistentVolumeClaim: persistentVolumeClaim:
claimName: db claimName: db
- name: service for ejabberd - name: service for mariadb
k8s: k8s:
definition: definition:
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: ejabberd name: mariadb
namespace: "{{ ejabberd_namespace }}" namespace: "{{ ejabberd_namespace }}"
spec: spec:
selector: selector:
app: ejabberd app: mariadb
ports: ports:
- port: 5222 - port: 3306
name: xmpp name: mariadb
- port: 5269 type: ClusterIP
name: federation
- port: 5280 - name: certificate
name: admin k8s:
- port: 5443 state: present
name: http definition:
- port: 1880 apiVersion: cert-manager.io/v1
name: admin2 kind: Certificate
- port: 1883 metadata:
name: mqtt name: le-cert-eomdev
- port: 5478 namespace: ejabberd
name: stun spec:
- port: 50000 secretName: le-cert-eomdev
name: turn50000 privateKey:
- port: 50001 rotationPolicy: Always
name: turn50001 commonName: "eom.dev"
- port: 50002 dnsNames:
name: turn50002 - "eom.dev"
- port: 50003 - "conference.eom.dev"
name: turn50003 - "proxy.eom.dev"
- port: 50004 - "upload.eom.dev"
name: turn50004 - "vjud.eom.dev"
- port: 50005 additionalOutputFormats:
name: turn50005 - type: CombinedPEM
- port: 50006 - type: DER
name: turn50006 secretTemplate:
- port: 50007 annotations:
name: turn50007 k8s-sidecar-target-directory: "certs/le-cert-eomdev"
- port: 50008 labels:
name: turn50008 helm-ejabberd/watcher: "true"
- port: 50009 issuerRef:
name: turn50009 name: ca-issuer
- port: 50010 kind: ClusterIssuer
name: turn50010
- port: 50011 - name: deploy
name: turn50011 kubernetes.core.helm:
- port: 50012 name: ejabberd
name: turn50012 chart_ref: ejabberd/ejabberd
- port: 50013 release_namespace: ejabberd
name: turn50013 create_namespace: true
- port: 50014 values:
name: turn50014 hosts:
- port: 50015 - eom.dev
name: turn50015 certFiles:
- port: 50016 secretName:
name: turn50016 - le-cert-eomdev
- port: 50017 sideCar:
name: turn50017 enabled: true
- port: 50018 listen:
name: turn50018 c2s:
- port: 50019 options:
name: turn50019 tls: true
- port: 50020 modules:
name: turn50020 mod_vcard:
- port: 50021 db_type: ldap
name: turn50021 ldap_rootdn: "cn=readonly,dc=eom,dc=dev"
- port: 50022 ldap_password: "{{ openldap_readonly_password }}"
name: turn50022 ldap_base: "ou=People,dc=eom,dc=dev"
- port: 50023 ldap_uids:
name: turn50023 uid: "%u@eom.dev"
- port: 50024 ldap_filter: "(&(objectClass=posixAccount)(memberOf=cn=ejabberd users,ou=ejabberd,ou=Services,dc=eom,dc=dev))"
name: turn50024 ldap_vcard_map:
- port: 50025 NICKNAME: {"%u": [uid]}
name: turn50025 GIVEN: {"%s": [givenName]}
- port: 50026 FAMILY: {"%s": [sn]}
name: turn50026 FN: {"%s, %s": [sn, givenName]}
- port: 50027 EMAIL: {"%s": [mail]}
name: turn50027 BDAY: {"%s": [birthDay]}
- port: 50028 ldap_search_fields:
name: turn50028 User: "%u"
- port: 50029 Name: givenName
name: turn50029 "Family Name": sn
- port: 50030 Email: mail
name: turn50030 Birthday: birthDay
- port: 50031 ldap_search_reported:
name: turn50031 "Full Name": FN
- port: 50032 Nickname: NICKNAME
name: turn50032 Birthday: BDAY
- port: 50033 authentification:
name: turn50033 - ldap
- port: 50034 ldap:
name: turn50034 ldap_servers:
- port: 50035 - openldap.openldap.svc.cluster.local
name: turn50035 ldap_port: 389
- port: 50036 ldap_rootdn: "cn=readonly,dc=eom,dc=dev"
name: turn50036 ldap_base: "dc=eom,dc=dev"
- port: 50037 ldap_password: "{{ openldap_readonly_password }}"
name: turn50037 ldap_filter: "(&(objectClass=posixAccount)(memberOf=cn=ejabberd Users,ou=ejabberd,ou=Services,dc=eom,dc=dev))"
- port: 50038 ldap_uids:
name: turn50038 uid: "%u@eom.dev"
- port: 50039 sqlDatabase:
name: turn50039 enabled: false
- port: 50040 redis:
name: turn50040 enabled: false
- port: 50041 persistence:
name: turn50041 enabled: true
- port: 50042 size: 2Ti
name: turn50042
- port: 50043
name: turn50043
- port: 50044
name: turn50044
- port: 50045
name: turn50045
- port: 50046
name: turn50046
- port: 50047
name: turn50047
- port: 50048
name: turn50048
- port: 50049
name: turn50049
- port: 50050
name: turn50050
- port: 50051
name: turn50051
- port: 50052
name: turn50052
- port: 50053
name: turn50053
- port: 50054
name: turn50054
- port: 50055
name: turn50055
- port: 50056
name: turn50056
- port: 50057
name: turn50057
- port: 50058
name: turn50058
- port: 50059
name: turn50059
- port: 50060
name: turn50060
- port: 50061
name: turn50061
- port: 50062
name: turn50062
- port: 50063
name: turn50063
- port: 50064
name: turn50064
- port: 50065
name: turn50065
- port: 50066
name: turn50066
- port: 50067
name: turn50067
- port: 50068
name: turn50068
- port: 50069
name: turn50069
- port: 50070
name: turn50070
- port: 50071
name: turn50071
- port: 50072
name: turn50072
- port: 50073
name: turn50073
- port: 50074
name: turn50074
- port: 50075
name: turn50075
- port: 50076
name: turn50076
- port: 50077
name: turn50077
- port: 50078
name: turn50078
- port: 50079
name: turn50079
- port: 50080
name: turn50080
- port: 50081
name: turn50081
- port: 50082
name: turn50082
- port: 50083
name: turn50083
- port: 50084
name: turn50084
- port: 50085
name: turn50085
- port: 50086
name: turn50086
- port: 50087
name: turn50087
- port: 50088
name: turn50088
- port: 50089
name: turn50089
- port: 50090
name: turn50090
- port: 50091
name: turn50091
- port: 50092
name: turn50092
- port: 50093
name: turn50093
- port: 50094
name: turn50094
- port: 50095
name: turn50095
- port: 50096
name: turn50096
- port: 50097
name: turn50097
- port: 50098
name: turn50098
- port: 50099
name: turn50099
- port: 7777
name: socks5
- port: 5210
name: erlang
- port: 4369
name: epmd4369
- port: 4370
name: epmd4370
- port: 4371
name: epmd4371
- port: 4372
name: epmd4372
- port: 4373
name: epmd4373
- port: 4374
name: epmd4374
- port: 4375
name: epmd4375
- port: 4376
name: epmd4376
- port: 4377
name: epmd4377
- port: 4378
name: epmd4378
- port: 4379
name: epmd4379
- port: 4380
name: epmd4380
- port: 4381
name: epmd4381
- port: 4382
name: epmd4382
- port: 4383
name: epmd4383
- port: 4384
name: epmd4384
- port: 4385
name: epmd4385
- port: 4386
name: epmd4386
- port: 4387
name: epmd4387
- port: 4388
name: epmd4388
- port: 4389
name: epmd4389
- port: 4390
name: epmd4390
- port: 4391
name: epmd4391
- port: 4392
name: epmd4392
- port: 4393
name: epmd4393
- port: 4394
name: epmd4394
- port: 4395
name: epmd4395
- port: 4396
name: epmd4396
- port: 4397
name: epmd4397
- port: 4398
name: epmd4398
- port: 4399
name: epmd4399
type: LoadBalancer
- name: onionservice - name: onionservice
k8s: k8s:
@@ -584,27 +207,3 @@
port: port:
number: 5222 number: 5222
- name: ingress
k8s:
state: present
definition:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/cluster-issuer: ca-issuer
name: ejabberd
namespace: "{{ ejabberd_namespace }}"
spec:
ingressClassName: nginx
rules:
- host: ejabberd.eom.dev
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: ejabberd
port:
number: 5280