--- apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: name: &app echo-server namespace: default spec: interval: 15m chart: spec: chart: app-template version: 1.2.0 sourceRef: kind: HelmRepository name: bjw-s namespace: flux-system install: createNamespace: true remediation: retries: 3 upgrade: remediation: retries: 3 values: controller: replicas: 3 strategy: RollingUpdate image: repository: docker.io/jmalloc/echo-server tag: 0.3.4 service: main: ports: http: port: &port 8080 probes: liveness: &probes enabled: true custom: true spec: httpGet: path: /health port: *port initialDelaySeconds: 0 periodSeconds: 10 timeoutSeconds: 1 failureThreshold: 3 readiness: *probes startup: enabled: false ingress: main: enabled: true ingressClassName: nginx annotations: cert-manager.io/cluster-issuer: "letsencrypt-staging" external-dns.alpha.kubernetes.io/target: "ipv4.${SECRET_DOMAIN}" external-dns/is-public: "true" hajimari.io/icon: "video-input-antenna" hosts: - host: &host "{{ .Release.Name }}.${SECRET_DOMAIN}" paths: - path: / pathType: Prefix tls: - hosts: - *host secretName: echo-server-tls topologySpreadConstraints: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: app.kubernetes.io/name: *app resources: requests: cpu: 5m memory: 10Mi limits: memory: 50Mi