Skip to content

[LFXV2-1280] Improve local development documentation and move config inline to source files#11

Merged
andrest50 merged 3 commits intomainfrom
andrest50/local-development
Mar 14, 2026
Merged

[LFXV2-1280] Improve local development documentation and move config inline to source files#11
andrest50 merged 3 commits intomainfrom
andrest50/local-development

Conversation

@andrest50
Copy link
Contributor

@andrest50 andrest50 commented Mar 13, 2026

Summary

Improves the local development experience by moving configuration documentation closer to where it is actually used, and adds clear step-by-step instructions for running the service locally both with and without code changes.

Changes

README: Add Kubernetes secret and Helm install instructions

The Kubernetes Deployment section previously had a single code block with both make helm-install and make helm-install-local but no context on when to use each or what prerequisites were needed. This adds a "Create Kubernetes Secret" subsection explaining that credentials must be created as a Kubernetes secret before the chart can be installed, with the 1Password note to source the values from. It then splits the install instructions into two clear subsections: one for installing directly from GHCR, and one for making local code changes which walks through copying the example values file, building the image, and running the install.

README: Update Run section to use .env.example

The Run section previously listed env vars inline with placeholder values, which was redundant with .env.example and would fall out of sync. It now points developers to copy .env.example to .env, fill in the required values, and source it. make debug is also mentioned as an alternative to make run for debug logging.

README: Remove Configuration section

The Configuration section listed all env vars with descriptions, but this information is now maintained inline as comments in .env.example and values.yaml. Keeping a third copy would inevitably drift. The section is removed entirely in favour of the source files being self-documenting.

README: Add event processing mention to Overview

Event processing was only referenced deep in the Features list. A sentence is added to the Overview section with a direct link to the event processing docs so it is visible without scrolling.

.env.example: Rewrite with inline comments and missing vars

The previous .env.example had a hardcoded client ID, no section structure, and was missing several vars entirely (event processing, LOG_ADD_SOURCE, AUDIENCE). It is rewritten to match the pattern used in the voting service: clearly labelled sections, inline per-variable comments explaining defaults and purpose, explicit local dev override callouts, and 1Password guidance for credentials. The event processing vars are added with a note pointing to the docs.

values.yaml: Add inline comments and missing event processing vars

The env vars in values.yaml had section-level comments but no per-var explanations, making it hard to understand what each var does when reading the chart. Inline comments are added for every var. The four event processing vars (EVENT_PROCESSING_ENABLED, EVENT_CONSUMER_NAME, EVENT_STREAM_NAME, EVENT_FILTER_SUBJECT) were missing entirely from the chart — they are added with their default values so the chart is a complete reference for the service's configuration.

values.local.example.yaml: Add example file for local Helm installs

make helm-install-local requires a values.local.yaml file to exist, but there was no example to copy from. This adds values.local.example.yaml as a starting point, gitignored so the actual file is never committed.

Ticket

LFXV2-1280

🤖 Generated with Claude Code

Add subsections under "Install with Helm" covering how to create the
required Kubernetes secret (with values from 1Password), install from
GHCR, and install with local code changes using the example values file.

Generated with [Claude Code](https://claude.ai/claude-code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
- Rewrite README Run section to point to .env.example instead of listing
  env vars inline; add make debug mention
- Remove Configuration section from README — descriptions now live in
  .env.example and values.yaml where the vars are actually set
- Remove Docker run and Development Workflow sections from README
- Add event processing note with link in Overview section
- Add Kubernetes secret creation and helm install subsections to README
- Rewrite .env.example with inline per-var comments and add missing
  event processing vars
- Add inline comments to all env vars in values.yaml; add missing event
  processing vars; fix replicaCount and externalSecretsOperator defaults
  for local development
- Add values.local.example.yaml for local helm installs

Generated with [Claude Code](https://claude.ai/claude-code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
Copilot AI review requested due to automatic review settings March 13, 2026 00:20
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves local development documentation by moving configuration guidance into .env.example and the Helm chart values, and updates the README with clearer local run + Helm install steps (including required credentials setup).

Changes:

  • Reworks .env.example to include structured sections and inline per-variable guidance.
  • Updates Helm values.yaml with inline env var comments and adds event-processing-related values.
  • Updates README.md to reference .env.example, add Kubernetes secret + Helm install instructions, and remove the duplicated Configuration section.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.

File Description
charts/lfx-v2-survey-service/values.yaml Adds inline documentation for env vars, adds event-processing values, and changes some chart defaults.
charts/lfx-v2-survey-service/values.local.example.yaml Adds a starter local values file for Helm installs using a locally built image.
README.md Updates local run instructions to use .env.example, adds Kubernetes secret + clearer Helm install steps, removes config duplication.
.env.example Adds a structured, self-documented environment template for local development.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…dentials

values.yaml had ITX_AUTH0_DOMAIN set to the production Auth0 tenant
(linuxfoundation.auth0.com) while ITX_BASE_URL points at the dev ITX
API. This would cause M2M token requests to fail at runtime since the
credentials belong to the dev tenant. Align to linuxfoundation-dev.auth0.com
to match .env.example, main.go defaults, and docs.

Also remove the condition in config.validate() that skipped ITX credential
checks when JWT_AUTH_DISABLED_MOCK_LOCAL_PRINCIPAL was set. JWT auth mode
and ITX credentials are independent concerns — the service always needs
ITX credentials to proxy requests, regardless of whether JWT validation
is disabled. The previous logic deferred the failure to request time
rather than startup.

Update docs/itx-proxy-implementation.md to use linuxfoundation-dev.auth0.com
consistently (was linuxfoundation-dev.us.auth0.com in two places).

Generated with [Claude Code](https://claude.ai/claude-code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
@andrest50 andrest50 merged commit 32eb929 into main Mar 14, 2026
5 checks passed
@andrest50 andrest50 deleted the andrest50/local-development branch March 14, 2026 00:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants