Release v0.4.2
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 thenats-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)