Skip to content

Commit

Permalink
add password for nats (#477)
Browse files Browse the repository at this point in the history
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced username and password parameters for NATS authentication,
enhancing security options.
- Added a new configuration for specifying the Kubernetes cluster domain
for routing.
- Implemented a new Role in Kubernetes RBAC for managing secrets related
to the NATS dashboard.

- **Bug Fixes**
- Updated versioning information for the NATS application to reflect the
latest changes.

- **Documentation**
- Enhanced the README with details on new authentication parameters and
configuration options.
- Updated the JSON schema to include new properties for user
configuration.

- **Chores**
	- Incremented the NATS application version from 0.2.0 to 0.3.0.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
  • Loading branch information
klinch0 authored Nov 21, 2024
1 parent 47bd46c commit 78366f1
Show file tree
Hide file tree
Showing 8 changed files with 92 additions and 17 deletions.
2 changes: 1 addition & 1 deletion packages/apps/nats/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.2.0
version: 0.3.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
Expand Down
5 changes: 5 additions & 0 deletions packages/apps/nats/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,8 @@
| `replicas` | Persistent Volume size for NATS | `2` |
| `storageClass` | StorageClass used to store the data | `""` |

### Configuration parameters

| Name | Description | Value |
| ----------- | ----------------------- | ----- |
| `users` | Users configuration | `{}` |
32 changes: 32 additions & 0 deletions packages/apps/nats/templates/nats.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
{{- $passwords := dict }}
{{- range $user, $u := .Values.users }}
{{- if $u.password }}
{{- $_ := set $passwords $user $u.password }}
{{- else if not (index $passwords $user) }}
{{- $_ := set $passwords $user (randAlphaNum 16) }}
{{- end }}
{{- end }}

{{- if .Values.users }}
apiVersion: v1
kind: Secret
metadata:
name: {{ .Release.Name }}-credentials
stringData:
{{- range $user, $u := .Values.users }}
{{ quote $user }}: {{ quote (index $passwords $user) }}
{{- end }}
{{- end }}

---

apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
Expand All @@ -18,6 +40,16 @@ spec:
nats:
fullnameOverride: {{ .Release.Name }}
config:
{{- if gt (len .Values.passwords) 0 }}
merge:
accounts:
A:
users:
{{- range $username, $password := $passwords }}
- user: "{{ $username }}"
password: "{{ $password }}"
{{- end }}
{{- end }}
cluster:
enabled: true
replicas: {{ .Values.replicas }}
Expand Down
12 changes: 12 additions & 0 deletions packages/apps/nats/templates/resourcemap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ .Release.Name }}-dashboard-resources
rules:
- apiGroups:
- ""
resources:
- secrets
resourceNames:
- {{ .Release.Name }}-credentials
verbs: ["get", "list", "watch"]
44 changes: 29 additions & 15 deletions packages/apps/nats/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,34 @@
"title": "Chart Values",
"type": "object",
"properties": {
"external": {
"type": "boolean",
"description": "Enable external access from outside the cluster",
"default": false
"external": {
"type": "boolean",
"description": "Enable external access from outside the cluster",
"default": false
},
"replicas": {
"type": "number",
"description": "Persistent Volume size for NATS",
"default": 2
},
"storageClass": {
"type": "string",
"description": "StorageClass used to store the data",
"default": ""
},
"users": {
"type": "object",
"description": "Users configuration",
"additionalProperties": {
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "Password for the user"
}
}
},
"replicas": {
"type": "number",
"description": "Persistent Volume size for NATS",
"default": 2
},
"storageClass": {
"type": "string",
"description": "StorageClass used to store the data",
"default": ""
}
"default": {}
}
}
}
}
7 changes: 7 additions & 0 deletions packages/apps/nats/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,10 @@
external: false
replicas: 2
storageClass: ""
## @param users [object] Users configuration
## Example:
## users:
## user1:
## password: strongpassword
## user2: {}
users: {}
3 changes: 2 additions & 1 deletion packages/apps/versions_map
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ mysql 0.5.0 4b84798
mysql 0.5.1 fab5940b
mysql 0.5.2 HEAD
nats 0.1.0 5ca8823
nats 0.2.0 HEAD
nats 0.2.0 c07c4bbd
nats 0.3.0 HEAD
postgres 0.1.0 f642698
postgres 0.2.0 7cd7de73
postgres 0.2.1 4a97e297
Expand Down
4 changes: 4 additions & 0 deletions packages/system/nats/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@ nats:
persistentVolumeClaimRetentionPolicy:
whenDeleted: Delete
whenScaled: Delete
config:
cluster:
routeURLs:
k8sClusterDomain: cozy.local

0 comments on commit 78366f1

Please sign in to comment.