--- apiVersion: v1 kind: Namespace metadata: name: zona-exclusion --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: zona-exclusion-data namespace: zona-exclusion spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: zona-exclusion namespace: zona-exclusion labels: app: zona-exclusion spec: replicas: 1 selector: matchLabels: app: zona-exclusion template: metadata: labels: app: zona-exclusion spec: containers: - name: zona-exclusion image: ghost:5-alpine imagePullPolicy: Always env: - name: url value: "https://zonadeexclusion.com" - name: NODE_ENV value: "production" - name: mail__transport value: "SMTP" - name: mail__options__host value: "smtp.gmail.com" - name: mail__options__port value: "587" - name: mail__options__auth__user valueFrom: secretKeyRef: name: zona-exclusion-secrets key: smtp-user - name: mail__options__auth__pass valueFrom: secretKeyRef: name: zona-exclusion-secrets key: smtp-pass - name: mail__from value: "Zona de Exclusión " - name: database__client value: "sqlite3" - name: database__connection__filename value: "/var/lib/ghost/content/data/ghost.db" volumeMounts: - name: data mountPath: /var/lib/ghost/content resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "512Mi" cpu: "500m" volumes: - name: data persistentVolumeClaim: claimName: zona-exclusion-data --- apiVersion: v1 kind: Service metadata: name: zona-exclusion namespace: zona-exclusion spec: selector: app: zona-exclusion ports: - port: 80 targetPort: 2368 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: zona-exclusion namespace: zona-exclusion annotations: cert-manager.io/cluster-issuer: letsencrypt-prod traefik.ingress.kubernetes.io/router.entrypoints: websecure spec: ingressClassName: traefik rules: - host: zonadeexclusion.com http: paths: - path: / pathType: Prefix backend: service: name: zona-exclusion port: number: 80 tls: - hosts: - zonadeexclusion.com secretName: zona-exclusion-tls --- # Secret template — fill with real values and apply manually # kubectl create secret generic zona-exclusion-secrets \ # --from-literal=smtp-user=chemavx@gmail.com \ # --from-literal=smtp-pass=YOUR_APP_PASSWORD \ # -n zona-exclusion apiVersion: v1 kind: Secret metadata: name: zona-exclusion-secrets namespace: zona-exclusion type: Opaque stringData: smtp-user: "REPLACE_ME" smtp-pass: "REPLACE_ME"