Skip to content

Releases: nats-io/nats-operator

Release v0.4.2

26 Feb 18:17
Compare
Choose a tag to compare

Installing

Docker Image: connecteverything/nats-operator:0.4.2-v1alpha2

kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.4.2/00-prereqs.yaml
kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.4.2/10-deployment.yaml

Added

  • Added extraRoutes field to extend a cluster mesh with other NATS clusters (#130)
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "nats-dev-v2"
spec:
  size: 3
  version: "1.4.1"

  extraRoutes:
    # Explicit route endpoint
    - route: "nats://example.com:6222"

    # Discover implicit routes from nats-dev-v1 cluster
    - cluster: "nats-dev-v1"
  • Added support for annotations (#111)
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "nats-dev-v1"
spec:
  pod:
    # Disable istio on nats pods
    annotations:
      sidecar.istio.io/inject: "false" 
  • Added support to allow a single operator to manage clusters in the whole cluster.
    Currently the operator has to be deployed on the nats-io namespace to work cluster wide,
    and it can be enabled by setting the flag --feature-gates=ClusterScoped=true when starting the operator (#118)
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nats-operator
  namespace: nats-io
spec:
  replicas: 1
  selector:
    matchLabels:
      name: nats-operator
  template:
    metadata:
      labels:
        name: nats-operator
    spec:
      serviceAccountName: nats-operator
      containers:
      - name: nats-operator
        image: connecteverything/nats-operator:0.4.2-v1alpha2
        imagePullPolicy: IfNotPresent
        args:
        - nats-operator
        # Perform a cluster-scoped deployment.
        - --feature-gates=ClusterScoped=true
        ports:
        - name: readyz
          containerPort: 8080
        env:
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        readinessProbe:
          httpGet:
            path: /readyz
            port: readyz
          initialDelaySeconds: 15
          timeoutSeconds: 3
  • Lame duck mode also now supported, when using edge versions of the NATS server (#105)
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "example-nats-1"
spec:
  size: 3
  serverImage: "synadia/nats-server"
  version: "edge-2.0.0-RC5"
  lameDuckDurationSeconds: 30 # seconds
  • Added support to enable monitoring using https (#131)
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "nats-cluster"
spec:
  size: 3
  version: "1.4.1"

  tls:
    enableHttps: true
    serverSecret: "nats-clients-tls"
  • Added verify and map toggle to enable TLS certs based authorization (#132)
    (Only available in edge version of the NATS server)
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "nats-cluster"
spec:
  size: 3
  serverImage: "synadia/nats-server"
  version: "edge-2.0.0-RC5"

  tls:
    serverSecret: "nats-clients-tls"

  auth:
    tlsVerifyAndMap: true
    clientsAuthSecret: "nats-clients-auth"
  • Added pod.enableClientsHostPort parameter to make the NATS servers bind the port 4222 from the host (#123)
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "nats-dev"
spec:
  size: 3
  version: "1.4.0"

  pod:
    enableClientsHostPort: true
  • Added noAdvertise field to disable gossiping routes to clients (#123)
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "example-nats-1"
spec:
  size: 3
  version: "1.4.0"
  noAdvertise: true
  • Added support to advertise the external ip addresses by inspecting the K8S API using an initializer container
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "nats-dev"
spec:
  size: 3
  version: "1.4.0"

  pod:
    # Must use host port to be able to connect to external ip
    enableClientsHostPort: true
    advertiseExternalIP: true
    bootconfigImage: "connecteverything/nats-boot-config"
    bootconfigImageTag: "0.5.0"

  # Required to be able to lookup public ip address from a server
  template:
    spec:
      serviceAccountName: "nats-server"

Changed

  • Default NATS Server image is changed to v1.4.0

  • Add metrics port to mgmt service so that prometheus operator can discover it (#112)

  • NATS Server pods that have reached the terminal state (#108)

Fixed

  • Setting advertise for clusters now enabled by default (#73)

  • Fix operator reporting readiness only after becoming leader (#107)

Release v0.3.0

19 Nov 18:44
898932a
Compare
Choose a tag to compare
kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.3.0/deployment.yaml

Added

  • Prometheus support added to the operator (#40)
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "nats-cluster-metrics"
spec:
  size: 3
  version: "1.3.0"
  serverImage: "nats"
  pod:
    enableMetrics: true
    metricsImage: "synadia/prometheus-nats-exporter"
    metricsImageTag: "0.1.0"
  • Image can now be customized
apiVersion: "nats.io/v1alpha2"
kind: "NatsCluster"
metadata:
  name: "nats-cluster-custom"
spec:
  size: 3
  version: "1.3.0"
  serverImage: "my-org/nats"

v0.2.3 (v1alpha2)

14 Jul 05:20
Compare
Choose a tag to compare
# RBAC
kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.2.3/deployment-rbac.yaml

# Non RBAC
kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.2.3/deployment.yaml

Added

  • Alpha support for Service Accounts integration using new NatsServiceRole CRD (#58)

Fixed

  • Check CRD existence before attempting to create (#55)

  • Recover from unexpected EOF with API Server (#54)

v0.2.2 (v1alpha2)

08 Jun 16:57
ab2774b
Compare
Choose a tag to compare
# RBAC
kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.2.2/deployment-rbac.yaml

# Non RBAC
kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.2.2/deployment.yaml

Added

  • Server configuration reload when PID namespace sharing is enabled in Kubernetes +v1.10 (#48)
  • Authorization support (#38)

Changed

  • Names from a cluster are now stable a la StatefulSet (#45)
  • ConfigMap for the cluster is replaced now with a Secret (#50)

Fixed

  • Fix for when enabling TLS in the cluster routes (#44)
  • Fix for when configmap/secret remains after cluster deletion (#42)

v0.2.0 (v1alpha2)

12 Mar 16:42
4ce55d4
Compare
Choose a tag to compare
# RBAC
kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.2.0/deployment-rbac.yaml

# Non RBAC
kubectl apply -f https://github.com/nats-io/nats-operator/releases/download/v0.2.0/deployment.yaml

Added

  • ConfigMap based cluster formation with explicit routes (#26)
    • Pods from a NATS cluster now each get an A record under management service
  • TLS support is enabled by using wildcard certificates which can be mounted with secrets (#27)
  • Minikube based build (#25)

Changed

Fixed

  • Included Dev section added to readme, codegen tooling updates (#24)

Removed

  • Readiness check checking cluster formation via custom image has been removed (f54b89a)

Deprecated

  • Static field from tls block from v1alpha1 API has been deprecated