Add mobile push APNs configuration (mobile_push.apns)
What does this MR do?
Adds chart support for the mobile_push.apns application setting introduced in
gitlab-org/gitlab!248026 (merged) (APNs push notifications for GitLab mobile clients,
dispatched on to-do creation — see also gitlab-org/gitlab!248022 (merged) and
gitlab-org/gitlab!248023 (merged) for the subscription registry and REST API).
- New
global.appConfig.mobilePush.apnsvalues: anauthKeysecret reference (the.p8APNs provider token signing key),keyId,teamId, and an optionaltopic. The renderedgitlab.ymlkeys keep the snake_case names the Rails settings contract expects. - The key file is delivered through the standard configure-secrets init flow
(a projected source on the
init-*-secretsvolume plus amobile_pushentry in thegitlab.scripts.configure.secretslist), landing read-only at/etc/gitlab/mobile_push/apns_auth_key.p8in the Webservice, Sidekiq, and Toolbox pods;gitlab.ymlgets the matchingmobile_push.apnssection (auth_key_path,key_id,team_id, optionaltopic). A direct subPath mount is not possible there —/etc/gitlabis the read-only init-secrets volume in CNG pods, which a cluster E2E run caught (containers failed to start withmkdirat …/etc/gitlab/mobile_push: read-only file system). Only Sidekiq sends pushes; the section and key delivery are kept consistent across Rails pods like other appConfig file secrets. - Inert by default: when
auth_key.secretis unset, nothing renders, and the Rails side no-ops (Gitlab::MobilePush::ApnsClient#configured?is false). - Guarded by
checkConfig(gitlab.checkConfig.mobilePush.apns): rendering fails with an actionable message whenauthKey.secretis set withoutkeyIdorteamId, mirroring the reconfigure-time validation in the omnibus counterpart. The Rails runtime backstop for an unreadable key file is gitlab-org/gitlab!250320 (merged). - Secret creation is documented in
doc/installation/secrets.md(linked from theglobals.mdsettings section), including a note on Geo: pushes dispatch from the primary site's Sidekiq, so configure all sites for promotion readiness.
Rails settings counterpart: Settings.mobile_push.apns defaults in
config/initializers/1_settings.rb (gitlab-org/gitlab!248026 (merged)).
Omnibus counterpart: gitlab-org/omnibus-gitlab!9676 (merged).
Related issues
Related to gitlab-org/gitlab#607602 and gitlab-org/gitlab#607603 (feature rollout issues).
Author checklist
For general guidance, please follow our Contributing guide.
Required
For anything in this list which will not be completed, please provide a reason in the MR discussion.
- Merge Request Title and Description are up to date, accurate, and descriptive.
- MR targeting the appropriate branch.
- MR has a green pipeline.
- Documentation created/updated (
doc/charts/globals.md). - Tests added/updated (
spec/configuration/mobile_push_spec.rb,spec/integration/check_config_spec.rb). - Have you validated that your change works end-to-end on a real cluster deployment?
- Describe how you did it in a comment.
- Equivalent MR/issue for omnibus-gitlab opened (gitlab-org/omnibus-gitlab!9676 (merged)).
Reviewers checklist
- MR has a green pipeline on https://gitlab.com/gitlab-org/charts/gitlab.
- Consider downstream impact to the Operator, as per evaluating impact from changes to GitLab chart.