Skip to content

fix: add Elasticsearch visibility and modernize TLS samples#147

Open
chaptersix wants to merge 5 commits intomainfrom
fix/tls-samples-visibility-store
Open

fix: add Elasticsearch visibility and modernize TLS samples#147
chaptersix wants to merge 5 commits intomainfrom
fix/tls-samples-visibility-store

Conversation

@chaptersix
Copy link
Copy Markdown
Contributor

@chaptersix chaptersix commented Apr 29, 2026

Summary

Fixes the tls-full and tls-simple samples which fail to start with recent Temporal server versions. Modernizes both to follow the same patterns as the compose examples.

  • Add Elasticsearch for advanced visibility (root cause of [Bug] TLS-full sample application fails to run on MAC #100 -- cassandra-based visibility is no longer supported)
  • Replace auto-setup image with server + admin-tools setup pattern
  • Convert tls-full config_template.yaml from dockerize syntax to sprig env() with # enable-template directive, strip to TLS-relevant config only
  • Add create-namespace service using shared compose scripts
  • Fix cert file permissions for non-root container user in CI
  • Remove path filtering on compose CI so all jobs run on every PR
  • Merge TLS CI jobs into compose.yaml
  • Update READMEs for docker compose and temporal CLI

Closes #100

Test plan

  • tls-simple: tested locally -- stack starts, namespace created, cluster health passes via TLS
  • tls-full: tested locally -- custom config template renders, stack starts, namespace created, cluster health passes via mTLS with per-namespace host overrides
  • CI: combined compose.yaml workflow runs all compose + TLS jobs on this PR

The tls-full sample failed to start with recent Temporal server versions
because it lacked an Elasticsearch visibility store, which is now required.

Changes to both tls-simple and tls-full:
- Replace auto-setup image with server + admin-tools setup pattern
- Add Elasticsearch service for advanced visibility
- Add health checks and proper dependency ordering
- Add create-namespace service using shared compose scripts
- Update docker-compose to docker compose (v2)
- Update READMEs for modern CLI usage

Changes specific to tls-full:
- Convert config_template.yaml from dockerize syntax to sprig env()
  syntax with # enable-template directive
- Add TEMPORAL_SERVER_CONFIG_FILE_PATH for custom template loading
- Remove obsolete kafka and unused DB backend sections
- Add dynamicconfig/development-cass.yaml

CI:
- Add .github/workflows/tls.yaml to test both TLS samples
- Runs on all pull requests

Closes #100
Remove dead/unused sections: cassandra visibility datastore (ES is
always used), ENABLE_ES conditional, metrics, dcRedirectionPolicy,
archival, internal-frontend service, and hardcode ports that were
never overridden. Also remove unused cassandra auth and TLS fields.
The Temporal server container runs as non-root, so mounted cert files
need world-readable permissions. Also strips config_template.yaml down
to only TLS-relevant sections.
Remove path filtering on pull_request so all jobs run on every PR.
Merge tls.yaml jobs into compose.yaml and delete the separate file.
@chaptersix chaptersix marked this pull request as ready for review April 29, 2026 04:52
@chaptersix chaptersix requested a review from a team as a code owner April 29, 2026 04:52
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.

[Bug] TLS-full sample application fails to run on MAC

1 participant