# Default values for phpmyadmin-nginx # This is a YAML-formatted file. # Declare variables to be passed into your templates. replicaCount: 1 image: nginx: registry: docker.io repository: nginx tag: "1.29.3-alpine-perl" pullPolicy: IfNotPresent phpmyadmin: registry: docker.io repository: phpmyadmin tag: "5.2.3-fpm-alpine" pullPolicy: IfNotPresent imagePullSecrets: [] nameOverride: "" fullnameOverride: "" serviceAccount: create: true annotations: {} name: "" podAnnotations: {} podSecurityContext: fsGroup: 82 runAsNonRoot: true seccompProfile: type: RuntimeDefault securityContext: nginx: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 101 phpmyadmin: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false runAsNonRoot: true runAsUser: 82 service: type: LoadBalancer # type: ClusterIP port: 80 targetPort: 8080 annotations: {} ingress: enabled: false className: "nginx" annotations: {} # { # acme.cert-manager.io/http01-ingress-class: "nginx", # cert-manager.io/cluster-issuer: "letsencrypt-issuer", # nginx.ingress.kubernetes.io/from-to-www-redirect: "true", # nginx.ingress.kubernetes.io/proxy-body-size: "100m", # nginx.ingress.kubernetes.io/rate-limit: "10" # } hosts: - host: phpmyadmin.local paths: - path: / pathType: Prefix tls: [] # - secretName: phpmyadmin-tls # hosts: # - phpmyadmin.local resources: nginx: limits: cpu: 200m memory: 128Mi requests: cpu: 100m memory: 64Mi phpmyadmin: limits: cpu: 500m memory: 512Mi requests: cpu: 250m memory: 256Mi autoscaling: enabled: false minReplicas: 2 maxReplicas: 10 targetCPUUtilizationPercentage: 80 targetMemoryUtilizationPercentage: 80 nodeSelector: {} tolerations: [] affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - phpmyadmin-nginx topologyKey: kubernetes.io/hostname # phpMyAdmin specific configuration phpmyadmin: # MySQL/MariaDB server configuration hosts: - host: mysql.default.svc.cluster.local port: 3306 # Environment variables env: PMA_ARBITRARY: "0" PMA_ABSOLUTE_URI: "" UPLOAD_LIMIT: "128M" MEMORY_LIMIT: "512M" MAX_EXECUTION_TIME: "600" # Secret for blowfish secret (auto-generated if not provided) blowfishSecret: "" existingSecret: "" # Nginx configuration nginx: config: clientMaxBodySize: "128m" workerProcesses: "auto" workerConnections: "1024" # Persistence for sessions persistence: enabled: false storageClass: "" accessMode: ReadWriteMany size: 1Gi annotations: {} # Liveness and readiness probes livenessProbe: enabled: true initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 6 successThreshold: 1 readinessProbe: enabled: true initialDelaySeconds: 10 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 3 successThreshold: 1 # Network Policy networkPolicy: enabled: false policyTypes: - Ingress - Egress ingress: - from: - namespaceSelector: matchLabels: name: ingress-nginx ports: - protocol: TCP port: 8080 egress: - to: - namespaceSelector: {} ports: - protocol: TCP port: 3306 - to: - namespaceSelector: matchLabels: name: kube-system ports: - protocol: UDP port: 53 # Pod Disruption Budget podDisruptionBudget: enabled: true minAvailable: 1 # maxUnavailable: 1 # MySQL Backup Configuration backup: # Enable or disable backup functionality enabled: false # Cron schedule (default: daily at 2 AM) # Examples: # "0 2 * * *" - Daily at 2 AM # "0 */6 * * *" - Every 6 hours # "0 0 * * 0" - Weekly on Sunday at midnight # "0 3 * * 1-5" - Weekdays at 3 AM schedule: "0 2 * * *" # Backup job history successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 3 backoffLimit: 3 # Concurrency policy: Allow, Forbid, Replace concurrencyPolicy: Forbid # Suspend backup jobs suspend: false # Pod annotations for backup jobs podAnnotations: {} # Backup image configuration image: registry: docker.io repository: mysql tag: "8.0" pullPolicy: IfNotPresent # MySQL credentials for backup # Note: host and port are inherited from phpmyadmin.hosts[0] mysql: # MySQL backup user credentials user: "" password: "" # Or use existing secret existingSecret: "" userKey: "mysql-user" passwordKey: "mysql-password" # Databases to backup (if empty, backs up all non-system databases) databases: [] # databases: # - myapp_db # - analytics_db # Backup destination path destinationPath: "/backup" # Compression settings compression: enabled: true # Compression level 1-9 (1=fastest, 9=best compression) level: 6 # Retention policy retention: enabled: true # Delete backups older than N days days: 30 # Storage configuration # Option 1: Use PersistentVolumeClaim persistence: storageClass: "" accessMode: ReadWriteMany size: 50Gi annotations: {} # Option 2: Use existing PVC existingClaim: "" # Option 3: Use NFS nfs: enabled: false server: "nfs-server.example.com" path: "/exports/mysql-backups" readOnly: false # Resource limits resources: limits: cpu: 1000m memory: 1Gi requests: cpu: 500m memory: 512Mi # Node selector (inherits from global nodeSelector if not set) nodeSelector: {} # Tolerations (inherits from global tolerations if not set) tolerations: [] # Affinity (inherits from global affinity if not set) affinity: {}