nats-io / k8s

NATS on Kubernetes with Helm Charts
Apache License 2.0
444 stars 300 forks source link

Can't expose gateway service #907

Closed boskiv closed 2 months ago

boskiv commented 2 months ago

What version were you using?

2.10.16 helm 1.1.12

What environment was the server running in?

k8s

Is this defect reproducible?

yes

Given the capability you are leveraging, describe your expectation?

-

Given the expectation, what is the defect you are observing?

gateway port exposed in nats service

boskiv commented 2 months ago
config:
  merge:
    accounts:
      $SYS:
        users:
        - {user: admin, password: password}
      CRYPTO:
        jetstream: true
        users:
        - {user: crypto, password: password}
  promExporter:
    enabled: true
  cluster:
    enabled: true
    merge:
      name: EU
  gateway:
    enabled: true
    merge:
      name: EU
      gateways: [
        {name: US, urls: ["nats://nats-us.nats-us:7222"]},
        {name: EU, urls: ["nats://nats-eu.nats-eu:7222"]},
        {name: RU, urls: ["nats://nats-ru.nats-ru:7222"]},
      ]
  websocket:
    enabled: true
    ingress:
      enabled: true
      className: nginx
      tlsSecretName: nats-eu-ws-tls
      hosts:
      - nats-eu-ws.fra1.dev.do.spreadfighter.cloud
      merge:
        metadata:
          annotations:
            cert-manager.io/cluster-issuer: letsencrypt-nginx
  jetstream:
    enabled: true
    memoryStore:
      enabled: true
      maxSize: 4Gi
    fileStore:
      enabled: true
      pvc:
        enabled: true
        size: 100Gi
  service:
    ports:
      gateway:
        enabled: true
boskiv commented 2 months ago
❯ kubectl describe service nats-eu -n nats-eu
Name:              nats-eu
Namespace:         nats-eu
Labels:            app.kubernetes.io/component=nats
                   app.kubernetes.io/instance=nats-eu
                   app.kubernetes.io/managed-by=Helm
                   app.kubernetes.io/name=nats
                   app.kubernetes.io/version=2.10.16
                   helm.sh/chart=nats-1.1.12
Annotations:       meta.helm.sh/release-name: nats-eu
                   meta.helm.sh/release-namespace: nats-eu
Selector:          app.kubernetes.io/component=nats,app.kubernetes.io/instance=nats-eu,app.kubernetes.io/name=nats
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.245.16.243
IPs:               10.245.16.243
Port:              nats  4222/TCP
TargetPort:        nats/TCP
Endpoints:         10.244.0.113:4222,10.244.2.1:4222,10.244.2.212:4222
Port:              websocket  8080/TCP
TargetPort:        websocket/TCP
Endpoints:         10.244.0.113:8080,10.244.2.1:8080,10.244.2.212:8080
Session Affinity:  None
Events:            <none>
caleblloyd commented 2 months ago

service should be at top level, not under config

config:
  gateway:
    enabled: true

service:
  ports:
    gateway:
      enabled: true
$ helm template -f values.yaml nats nats/nats -s templates/service.yaml
---
# Source: nats/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: nats
    app.kubernetes.io/instance: nats
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: nats
    app.kubernetes.io/version: 2.10.16
    helm.sh/chart: nats-1.1.12
  name: nats
spec:
  ports:
  - appProtocol: tcp
    name: nats
    port: 4222
    targetPort: nats
  - appProtocol: tcp
    name: gateway
    port: 7222
    targetPort: gateway
  selector:
    app.kubernetes.io/component: nats
    app.kubernetes.io/instance: nats
    app.kubernetes.io/name: nats