apiVersion: container.mom/v1alpha1 kind: Template metadata: name: wordpress namespace: container-mom-system labels: argocd.argoproj.io/instance: operator spec: description: WordPress deployment with MariaDB database parameters: - name: SITE_NAME displayName: Site Name description: Name of your WordPress site defaultValue: My WordPress Site required: true - name: ADMIN_EMAIL displayName: Admin Email description: WordPress admin email required: true - name: ADMIN_PASSWORD displayName: Admin Password description: WordPress admin password generate: expression required: true - name: MYSQL_ROOT_PASSWORD displayName: Database Root Password description: MySQL root password generate: expression required: true - name: MYSQL_DATABASE displayName: Database Name description: MySQL database name defaultValue: wordpress required: true - name: MYSQL_USER displayName: Database User description: MySQL user name defaultValue: wordpress required: true - name: MYSQL_PASSWORD displayName: Database Password description: MySQL user password generate: expression required: true - name: DOMAIN_NAME displayName: Domain Name description: Domain name for WordPress required: false - name: name displayName: Deployment Name description: Name of the deployment (auto-generated if not provided) required: false defaultValue: wordpress-app components: - name: wordpress-credentials type: secret properties: secretData: wordpress-admin-password: ${ADMIN_PASSWORD} wordpress-database-password: ${MYSQL_PASSWORD} - name: mariadb-credentials type: secret properties: secretData: mariadb-root-password: ${MYSQL_ROOT_PASSWORD} mariadb-password: ${MYSQL_PASSWORD} - name: ${name}-dynamic-secret type: secret properties: secretData: example-key: "Example dynamic secret value" - name: wordpress type: deployment properties: image: bitnami/wordpress:latest securityContext: runAsUser: 1001 fsGroup: 1001 resources: cpu: 500m memory: 512Mi env: - name: WORDPRESS_DATABASE_HOST value: mariadb:3306 - name: WORDPRESS_DATABASE_PORT_NUMBER value: "3306" - name: WORDPRESS_DATABASE_NAME value: ${MYSQL_DATABASE} - name: WORDPRESS_DATABASE_USER value: ${MYSQL_USER} - name: WORDPRESS_DATABASE_PASSWORD valueFrom: secretKeyRef: name: wordpress-credentials key: wordpress-database-password - name: WORDPRESS_USERNAME value: admin - name: WORDPRESS_PASSWORD valueFrom: secretKeyRef: name: wordpress-credentials key: wordpress-admin-password - name: EXAMPLE_DYNAMIC_SECRET valueFrom: secretKeyRef: name: ${name}-dynamic-secret key: example-key - name: WORDPRESS_EMAIL value: ${ADMIN_EMAIL} - name: WORDPRESS_BLOG_NAME value: ${SITE_NAME} - name: ALLOW_EMPTY_PASSWORD value: "yes" - name: WORDPRESS_SKIP_BOOTSTRAP value: "no" - name: WORDPRESS_TABLE_PREFIX value: wp_ - name: WORDPRESS_CONFIG_EXTRA value: define('WP_HOME','https://${DOMAIN_NAME}'); define('WP_SITEURL','https://${DOMAIN_NAME}'); volumes: - name: wordpress-data type: persistentVolumeClaim size: 10Gi storageClass: standard mountPath: /bitnami/wordpress - name: mariadb type: deployment properties: image: bitnami/mariadb:latest securityContext: runAsUser: 1001 fsGroup: 1001 resources: cpu: 500m memory: 1Gi env: - name: MARIADB_ROOT_PASSWORD valueFrom: secretKeyRef: name: mariadb-credentials key: mariadb-root-password - name: MARIADB_DATABASE value: ${MYSQL_DATABASE} - name: MARIADB_USER value: ${MYSQL_USER} - name: MARIADB_PASSWORD valueFrom: secretKeyRef: name: mariadb-credentials key: mariadb-password - name: ALLOW_EMPTY_PASSWORD value: "no" volumes: - name: mariadb-data type: persistentVolumeClaim size: 5Gi storageClass: standard mountPath: /bitnami/mariadb - name: wordpress type: service properties: ports: - name: http port: 80 protocol: TCP targetPort: 8080 - name: mariadb type: service properties: ports: - name: mysql port: 3306 protocol: TCP targetPort: 3306 - name: wordpress-config type: configmap properties: configData: admin_email: ${ADMIN_EMAIL} site_name: ${SITE_NAME} networkConfig: domain: domainName: ${DOMAIN_NAME} useWildcard: false tls: autoCert: true email: ${ADMIN_EMAIL} ingressRules: - host: ${DOMAIN_NAME} path: / serviceName: wordpress servicePort: 80