Replace bjw-s app-template with SINTEF Mosquitto chart v0.1.1 #182
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Replaces the generic bjw-s/app-template deployment with the dedicated SINTEF Mosquitto Helm chart. Authentication now sources passwords from 1Password while ACL configuration remains in values.
Changes
Chart migration (
argocd/apps/platform/mqtt-broker.yml):sintef.github.io/mosquitto-helm-chartv0.1.1mqttOverWebsocket: falseusersExistingSecret: mosquitto-auth+ user ACL definitions in valuesOnePassword integration (
k8s/infra-mqtt/onepassword/mosquitto-auth.yml):passwords.confcontaining mosquitto password file format (username:hash)mosquitto_passwd -c /tmp/mosquitto_passwd <username>Cleanup (
k8s/infra-mqtt/kustomization.yml):Architecture pattern
The SINTEF chart separates concerns cleanly:
Pre-deployment requirement
Create 1Password item
mosquitto-authinHomeLabvault with fieldpasswords.conf. Seek8s/infra-mqtt/README.mdfor hash generation steps.Original prompt
This section details on the original issue you should resolve
<issue_title>Deploy Mosquitto MQTT Broker via SINTEF Helm chart (Argo CD) + OnePassword-managed auth</issue_title>
<issue_description>### Why
Copilot used
bjw-s/app-template, but we want the dedicated Mosquitto chart from SINTEF (helm repo add mosquitto https://sintef.github.io/mosquitto-helm-chart). The SINTEF chart also supports sourcing users/passwords from an existing Secret (auth.usersExistingSecret) so we don’t ship credentials in Git. ([Artifact Hub][1])Goal
Replace the current
mqtt-brokerApplication (app-template) with an Argo CD Application that deploys SINTEF Mosquitto into namespaceinfra-mqtt, using:https://sintef.github.io/mosquitto-helm-chartmosquitto0.1.1(latest release tag shown in upstream releases) ([GitHub][2])auth.usersExistingSecret) ([GitHub][3])valuesObjectWork items
1) Remove/replace the broken chart usage
bjw-s/app-templatefor MQTT.infra-mqttand Argo projectcoachlight-k3s-infra.2) Add OnePassword-backed Kubernetes Secret for Mosquitto users
In
k8s/infra-mqtt/(the path already used bymqtt-broker-secrets), add the OnePassword Operator CRDs needed to create a Secret that Mosquitto will read.Secret requirements
Secret name:
mosquitto-authData key(s): follow the chart’s expected format for
auth.usersExistingSecret(read the chart templates and confirm the expected key name and file format).auth.usersExistingSecret“holds user/password pairs”. ([Artifact Hub][1])The stored content should be a mosquitto password file (e.g., lines like
username:<sha512-pbkdf2-hash>). The upstream values show passwords are expected insha512-pbkdf2format. ([GitHub][3])1Password item fields
HomeLab) with a field for the password-file content.mosquitto_passwdadmin:<hash>)Ensure the
mqtt-broker-secretsapp (sync-wave 10) applies these CRDs before the Helm release (sync-wave 20).3) Create/update the Argo CD Application for Mosquitto chart
Create a new Application manifest (or update existing) that uses:
spec.source.repoURL: https://sintef.github.io/mosquitto-helm-chartspec.source.chart: mosquittospec.source.targetRevision: 0.1.1([GitHub][2])valuesObject rules
Suggested overrides to implement:
mqttOverWebsocket: true([GitHub][3])Set:
mqttOverWebsocket: falseimage.tag: ""(meaning “use chart appVersion”). ([GitHub][3])If you don’t need a pin, don’t set it.
If you do want to pin, set:
image.tag: "2.0.20"(or whatever version you want)resources: {}([GitHub][3])Set requests/limits appropriate for your lightweight broker:
adminuser and hash inauth.users. ([GitHub][3])We must override so we do not deploy that default user.
Set:
auth.enabled: true(ONLY if required to activate the block—if it’s already true...✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.