apiVersion: v1 kind: Namespace metadata: name: syncer --- apiVersion: apps/v1 kind: Deployment metadata: name: syncer namespace: syncer labels: app.kubernetes.io/name: syncer spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: syncer template: metadata: labels: app.kubernetes.io/name: syncer spec: containers: - name: syncer image: registry.a2acloud.io/syncer/syncer:latest imagePullPolicy: Always ports: - name: http containerPort: 3001 readinessProbe: httpGet: path: /api/message port: http initialDelaySeconds: 2 periodSeconds: 5 livenessProbe: httpGet: path: /api/message port: http initialDelaySeconds: 10 periodSeconds: 15 resources: requests: cpu: 100m memory: 128Mi limits: cpu: "2" memory: 1Gi --- apiVersion: v1 kind: Service metadata: name: syncer namespace: syncer spec: selector: app.kubernetes.io/name: syncer ports: - name: http port: 80 targetPort: http --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: syncer namespace: syncer annotations: cert-manager.io/cluster-issuer: letsencrypt-prod traefik.ingress.kubernetes.io/router.entrypoints: web,websecure spec: ingressClassName: traefik tls: - hosts: - syncer.a2acloud.io secretName: syncer-a2acloud-io-tls rules: - host: syncer.a2acloud.io http: paths: - path: / pathType: Prefix backend: service: name: syncer port: name: http