nextcloud / nextcloud/helm

Towards declarative deployment

Open
#532 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go Template
Stars
534
Forks
314
Avg merge
42m
Merged PRs (30d)
1

Description

Describe your Issue

The current setup effectively requires several writable and persistent directories, both for writing configs via entrypoints as well as for managing nextcloud itself. Furthermore, by using the entrypoint dockerism, secret values are unnecessarily exposed to env (apps exposing env via debug endpoints is a favorite ;D ).
Furthermore, apps can be installed from within the application.

This makes deployment at scale a game of luck.

Limitations

Approach

I expect this to play out roughly like this and would try to keep it roughly updated to reflect reality as good as it is possible:

First iteration(s)
  1. mount emptyDir to initContainer using same image as deployment at config path
  2. let entrypoint do its magic
  3. start main container with readOnlyRootFilesystem SecurityContext and command/arg skipping entrypoint and without persistence
  4. see what breaks [^1]
  5. fix it and try again :-)
Next step (possibly trivial)
  1. remove secrets from env
  2. see what breaks
  3. fix it and try again :-)
Further things
  • notes.txt mentioning limitations when readOnlyRootFilesystem and no persistence is set
  • see if it is necessary to gate initContainer for this scenario or if it actually also improves non-readonly-scenarios by removing secrets form env
  • if applicable make consistency check of used config parameters

Related issues

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with related issue #531 and the chart’s current entrypoint and initContainer configuration; the issue does not name specific files or tests. Compare the proposed readOnlyRootFilesystem and no-persistence deployment with the existing setup, then use the checklist—especially notes.txt and removing secrets from env—to define and verify a bounded implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes
Domain
cloud, devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.