--- # CMS Uploads PersistentVolumeClaim (Production) apiVersion: v1 kind: PersistentVolumeClaim metadata: name: cms-uploads-pvc namespace: foursat labels: app: cms spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- # CMS Microservice Deployment (Production) apiVersion: apps/v1 kind: Deployment metadata: name: cms namespace: foursat labels: app: cms spec: replicas: 1 selector: matchLabels: app: cms template: metadata: labels: app: cms spec: containers: - name: cms image: 194.5.195.53:30080/admin/cms:prod imagePullPolicy: Always ports: - containerPort: 8080 name: http env: - name: ASPNETCORE_ENVIRONMENT value: "Production" - name: ASPNETCORE_URLS value: "http://+:8080" - name: Kestrel__EndpointDefaults__Protocols value: "Http1AndHttp2" - name: FileStorage__UploadPath value: "/app/Uploads" - name: ConnectionStrings__DefaultConnection valueFrom: secretKeyRef: name: postgres-secret key: connection-string - name: Email__Host valueFrom: secretKeyRef: name: email-secret key: smtp-host - name: Email__Port valueFrom: secretKeyRef: name: email-secret key: smtp-port - name: Email__Username valueFrom: secretKeyRef: name: email-secret key: smtp-username - name: Email__Password valueFrom: secretKeyRef: name: email-secret key: smtp-password - name: Kavenegar__ApiKey valueFrom: secretKeyRef: name: sms-secret key: api-key volumeMounts: - name: cms-uploads mountPath: /app/Uploads resources: requests: memory: "512Mi" cpu: "500m" limits: memory: "1Gi" cpu: "1000m" livenessProbe: httpGet: path: /health/live port: 8080 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: httpGet: path: /health/ready port: 8080 initialDelaySeconds: 10 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 3 volumes: - name: cms-uploads persistentVolumeClaim: claimName: cms-uploads-pvc --- # CMS Service (Production) apiVersion: v1 kind: Service metadata: name: cms-svc namespace: foursat spec: selector: app: cms ports: - name: http port: 8080 targetPort: 8080 type: ClusterIP --- # CMS Ingress (Production) apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cms-ingress namespace: foursat annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" nginx.ingress.kubernetes.io/ssl-redirect: "true" spec: ingressClassName: nginx tls: - hosts: - cms.kbs1.ir - cms.kbs2.ir secretName: cms-tls rules: - host: cms.kbs2.ir http: paths: - path: / pathType: Prefix backend: service: name: cms-svc port: number: 8080 - host: cms.kbs1.ir http: paths: - path: / pathType: Prefix backend: service: name: cms-svc port: number: 8080