Helm chart for Mozilla's Rust based Sync server for Firefox data synchronization.
# add the chart repo
helm repo add fx-syncstorage https://holysoles.github.io/fx-syncstorage-chart/
# Customize the values file. Particularly make sure you update syncstorage.domain!
helm show values fx-syncstorage/fx-syncstorage > values.yaml
# install the chart
helm install --namespace fx-syncstorage --create-namespace fx-syncstorage/fx-syncstorage --values values.yamlBy default, this chart deploys 2 mysql instances with persistence for the Syncserver Tokenserver DBs. Credentials are automatically configured and stored in secrets.
If you'd like to try this chart out, you might want to run it without any persistence:
helm install fx-syncstorage holysoles/fx-syncstorage --set syncserverdb.primary.persistence.enabled=false --set tokenserverdb.primary.persistence.enabled=false --set syncstorage.domain=https://sync.example.comThis chart currently uses a community image maintained by @porelli. This is due to two reasons:
- Mozilla explicity says their Docker image is not recommended for use in a production system.
- The official image has not been compatible with mysql since
0.13.6. (See issues: one, two).- If you plan to use a Spanner DB, then you can probably use the official image.
This chart defaults to deploying mysql instances with automatically configured credentials for the 2 required databases (though there was a discussion somewhere about if 2 separate databases are truly necessary..). This helps reduce the amount of values you need to customize in your values file. To perform that automatic credential provisioning, due to limitations of Helm's lookup function, a service account is provisioned with the ability to create secrets in the namespace where you deploy this chart to create the DB connection URLs secret during install, so it is recommended to deploy this chart to its own namespace.
The fxaMetricsHashSecret value is likely not necessary for this chart to maintain, as this is meant to obscure personal information when reported to Sentry, the metrics analytics tool used by Mozilla, but that reporting isn't meant to occur on self-hosted instances. If you are concerned about this possibility anyway, check this blog post out for how to patch that code out, and you can bring your own Docker image.
The Mozilla syncstorage-rs project uses the Mozilla Public License v2.0.
Please refer to any bundled charts for their respective licenses.
- Mozilla's repo for the syncstorage-rs project
- @kyz wrote a guide for manually deploying an instance which provides good insights
- @jeena has a Docker compose example
- Some other, older guides:
- Great documentation here by SynoCommunity on how to configure clients with a custom server.