apiVersion: apps/v1 kind: Deployment metadata: name: esm labels: app: esm spec: replicas: 1 selector: matchLabels: app: esm template: metadata: labels: app: esm spec: containers: - name: esm image: ghcr.io/esm-dev/esm.sh:v136_1 ports: - containerPort: 12000 protocol: TCP command: ["esmd", "--config", "/esmd/config.json"] volumeMounts: - name: esm-data mountPath: /esmd volumes: - name: esm-data hostPath: path: /opt/docker/esm/data type: Directory nodeSelector: machine: "kevisual" --- apiVersion: v1 kind: Service metadata: name: esm labels: app: esm spec: type: ClusterIP ports: - port: 12000 targetPort: 12000 protocol: TCP name: http selector: app: esm --- apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: esm-https spec: entryPoints: - websecure routes: - match: Host(`esm.kevisual.cn`) kind: Rule services: - name: esm port: 12000 tls: certResolver: letsencrypt