Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use tplvalues.render for templating inside values #492

Merged

Conversation

vogre
Copy link
Contributor

@vogre vogre commented Jun 5, 2024

What was changed

Use templating for web.service annotations in the same way as server.service is defined

annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.server.frontend.service.annotations "context" $) | nindent 4 }}
.

Why?

A very cool trick to allow passing templated values inside the values.yaml file instead of relying on an outside templating engine

Checklist

  1. Closes

  2. How was this tested:
    Added a template in values.yaml and ran helm template.

  3. Any docs updates needed?
    No

@vogre vogre requested review from a team as code owners June 5, 2024 16:57
@CLAassistant
Copy link

CLAassistant commented Jun 5, 2024

CLA assistant check
All committers have signed the CLA.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


Vladimir Zoubritsky seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

A very cool trick to allow passing templated values inside the
values.yaml file instead of relying on an outside templating engine
@vogre vogre force-pushed the tplvalues-render-all-the-annotations branch from 9a67c15 to 6e3595b Compare June 5, 2024 17:02
@robholland
Copy link
Contributor

I know we already do this, and I'm happy to merge, but could you please explain what the use case is here so I can learn?

@vogre
Copy link
Contributor Author

vogre commented Jun 10, 2024

@robholland - we use it roughly like this:

e.g. by helm template --set foo=bar -f values_web.yaml,
and values_web.yaml of

web:
  service:
    annotations:
      url: https://{{ $.Values.foo }}-temporal.example.com

We would utilize the templating features of helm, inside the values.yaml file (usually the templating only works in the templates/ directory.

Since this behavior is actually surprising - we could also set the value directly by

helm template --set 'web.service.annotations.url=https://bar-temporal.example.com'

Although it's a nice feature to allow extensibility of the template.

@robholland robholland merged commit dc4af03 into temporalio:master Jun 10, 2024
2 checks passed
mihaelabalas84 added a commit to fairmoney/temporal-helm-charts that referenced this pull request Aug 16, 2024
* update ui image to 2.25.0 (temporalio#478)

Signed-off-by: Tihomir Surdilovic <[email protected]>

* Allow forcing a specific chart version. (temporalio#479)

This is useful for patch releases on older release lines.

* Update Chart to 0.37.0, Temporal v1.23.1

* Ensure appVersion is used by default as the server image tag. (temporalio#488)

* Bumps server version to the specified appVersion
* Use chart.appversion instead of image.tag from values in deployment spec
* Allow overriding deployment spec with image.tag

---------

Co-authored-by: Kshitij <[email protected]>

* Update Chart to 0.38.1, Temporal v1.23.1

* [Bug] Allow and document configuring Web UI via values.yaml (temporalio#394)

1. remove web ui config in values.yaml
2. remove web config volume in web-deployment.yaml
3. remove web-config config map
4. remove line 280 since the install bash didn't configure web ui auth
5. update the document for web ui configuration with env variable

Co-authored-by: Rob Holland <[email protected]>

* fix(imageTag): Fix default type in values for imageTag (temporalio#489)

* Update Chart to 0.39.0, Temporal v1.24.0

* Update README.md

* Update Chart to 0.39.1, Temporal v1.24.1

* Switch to devrel.

* Support new admintools image tag format (temporalio#493)

* Require tags for server, admintools and ui.

Don't use server tag for admintools, it's versioned separately now.

* Update Chart to 0.40.0.

* fix: add support for pre upgrade. (temporalio#476)

* adding missing ImagePullSecrets section to web deployment

* Whitespace.

* fix: Use visibility server when defining visibility config (temporalio#436)

Co-authored-by: Rob Holland <[email protected]>

* fix: sidecarContainers should be an array, not a dict

* Use tplvalues.render for templating inside values (temporalio#492)

Allow templated values inside the values.yaml for web annotations

* Apply security context regardless of persistence engine. (temporalio#494)

Replaces temporalio#308.

* Update Chart to 0.40.1.

* Allow to skip database creation (temporalio#480)

Signed-off-by: Valentin Zayash <[email protected]>

* Update Cassandra host URLs to remove the ".cluster.local" suffix (temporalio#485)

* Update Cassandra host URLs to remove the ".cluster.local" suffix

* Configure SQL TLS environment variables in server-job (temporalio#411)

* Configure SQL_TLS environment variables in server-job

* Update Chart to 0.41.0.

* Fix weird helm lint false alarm. Fixes temporalio#284.

* Helm 2 compat. Fixes temporalio#187.

* Update codeowners.

* Revert "Update Cassandra host URLs to remove the ".cluster.local" suffix (temporalio#485)" (temporalio#500)

This reverts commit b25c4fc.

* Update Chart to 0.41.1.

* Adds a PodDisruptionBudget and topologySpreadConstraints to web (temporalio#409)

* Adds a PodDisruptionBudget and topologySpreadConstraints to web

* fixing type on topologySpreadConstraints
topologySpreadConstraints should be a list instead of map

* Update Chart to 0.42.0.

* Update README to mention you cannot do Cassandra only anymore. (temporalio#499)

Related: temporalio#470.

* Remove invalid line. (temporalio#502)

Fixes temporalio#426

* Service account should be set when present, even if not creating. (temporalio#498)

Fixes temporalio#403.

* Correct outdated port config. (temporalio#497)

Fixes temporalio#333 and temporalio#149.

Context: temporalio/temporal#650

* Update Chart to 0.43.0.

* ElasticSearch -> Elasticsearch

* fix: Escape ES credentials (temporalio#505)

* feat: updated grafana and prometheus helm dependencies (temporalio#424)

* feat: bump grafana and prometheus charts versions

Signed-off-by: David Calvert <[email protected]>

* Remove hard coded cluster.local references. (temporalio#501)

Switch check-cassandra-service init container to use nc. nslookup in recent
busybox images is broken and doesn't obey resolv.conf, meaning it won't check
k8s search domains.

* Enable HTTP API for Nexus (temporalio#511)

* Enable HTTP API for Nexus

* Update charts/temporal/templates/server-service.yaml

* Add FE Ingress (temporalio#435)

* Add ingress for frontend

* Add CONTRIBUTING.

* Note contributing in README.

* Note slack channel.

* Use a shared config map for all services. (temporalio#514)

Remove helpers in favour of defaults via values file.
Remove unused Elasticsearch environment variables.
Stop switching between es-visibility and visibility for store names.

* Pass `ct lint`

* Lint chart on PR.

* Setup for `ci install`. (temporalio#522)

* Setup for `ci install`.

Adds a test so that `helm test` now checks that the cluster is healthy after
the system is deployed.

Refactors server-job to remove the use of helm hooks which cause lot of users
pain and don't work with --wait, or the mechanism that helm test uses.

Improve the handling of elasticsearch by treating it just like the other drivers.

Correctly handle the schema.createDatabase setting which previously had edge cases.

* Secret key fixes.

* Fix missed ES quoting issue.

* Add postgres-es test.

* Fix branch reference.

* Update Chart to 0.44.0.

* Update README to use repo. (temporalio#531)

* Update README to use repo.

Fixes temporalio#458

---------

Co-authored-by: Alex Garnett <[email protected]>

* Check for pgx driver as well as plain postgres. (temporalio#546)

Fixes temporalio#532

* Templatize resourceLabels for standardization (temporalio#539)

* Templatize resourceLabels for standardization

---------

Signed-off-by: Tihomir Surdilovic <[email protected]>
Signed-off-by: Valentin Zayash <[email protected]>
Signed-off-by: David Calvert <[email protected]>
Co-authored-by: Tihomir Surdilovic <[email protected]>
Co-authored-by: Rob Holland <[email protected]>
Co-authored-by: Temporal Data <[email protected]>
Co-authored-by: Kshitij Tulsyan <[email protected]>
Co-authored-by: Kshitij <[email protected]>
Co-authored-by: Jingyu <[email protected]>
Co-authored-by: Theo REY <[email protected]>
Co-authored-by: Alex Shtin <[email protected]>
Co-authored-by: Rob Holland <[email protected]>
Co-authored-by: Punit Kulal <[email protected]>
Co-authored-by: Gerardo Enrique Mora Salazar <[email protected]>
Co-authored-by: Giovanny Gutiérrez <[email protected]>
Co-authored-by: vogre <[email protected]>
Co-authored-by: Valentin Zayash <[email protected]>
Co-authored-by: Chris Taylor <[email protected]>
Co-authored-by: Grzegorz Kołakowski <[email protected]>
Co-authored-by: Prathyush PV <[email protected]>
Co-authored-by: sringel <[email protected]>
Co-authored-by: Alex Shtin <[email protected]>
Co-authored-by: David Calvert <[email protected]>
Co-authored-by: Roey Berman <[email protected]>
Co-authored-by: Rahul Kumar <[email protected]>
Co-authored-by: Alex Garnett <[email protected]>
Co-authored-by: Sahil Vazirani <[email protected]>
mihaelabalas84 added a commit to fairmoney/temporal-helm-charts that referenced this pull request Oct 2, 2024
* update ui image to 2.25.0 (temporalio#478)

Signed-off-by: Tihomir Surdilovic <[email protected]>

* Allow forcing a specific chart version. (temporalio#479)

This is useful for patch releases on older release lines.

* Update Chart to 0.37.0, Temporal v1.23.1

* Ensure appVersion is used by default as the server image tag. (temporalio#488)

* Bumps server version to the specified appVersion
* Use chart.appversion instead of image.tag from values in deployment spec
* Allow overriding deployment spec with image.tag

---------

Co-authored-by: Kshitij <[email protected]>

* Update Chart to 0.38.1, Temporal v1.23.1

* [Bug] Allow and document configuring Web UI via values.yaml (temporalio#394)

1. remove web ui config in values.yaml
2. remove web config volume in web-deployment.yaml
3. remove web-config config map
4. remove line 280 since the install bash didn't configure web ui auth
5. update the document for web ui configuration with env variable

Co-authored-by: Rob Holland <[email protected]>

* fix(imageTag): Fix default type in values for imageTag (temporalio#489)

* Update Chart to 0.39.0, Temporal v1.24.0

* Update README.md

* Update Chart to 0.39.1, Temporal v1.24.1

* Switch to devrel.

* Support new admintools image tag format (temporalio#493)

* Require tags for server, admintools and ui.

Don't use server tag for admintools, it's versioned separately now.

* Update Chart to 0.40.0.

* fix: add support for pre upgrade. (temporalio#476)

* adding missing ImagePullSecrets section to web deployment

* Whitespace.

* fix: Use visibility server when defining visibility config (temporalio#436)

Co-authored-by: Rob Holland <[email protected]>

* fix: sidecarContainers should be an array, not a dict

* Use tplvalues.render for templating inside values (temporalio#492)

Allow templated values inside the values.yaml for web annotations

* Apply security context regardless of persistence engine. (temporalio#494)

Replaces temporalio#308.

* Update Chart to 0.40.1.

* Allow to skip database creation (temporalio#480)

Signed-off-by: Valentin Zayash <[email protected]>

* Update Cassandra host URLs to remove the ".cluster.local" suffix (temporalio#485)

* Update Cassandra host URLs to remove the ".cluster.local" suffix

* Configure SQL TLS environment variables in server-job (temporalio#411)

* Configure SQL_TLS environment variables in server-job

* Update Chart to 0.41.0.

* Fix weird helm lint false alarm. Fixes temporalio#284.

* Helm 2 compat. Fixes temporalio#187.

* Update codeowners.

* Revert "Update Cassandra host URLs to remove the ".cluster.local" suffix (temporalio#485)" (temporalio#500)

This reverts commit b25c4fc.

* Update Chart to 0.41.1.

* Adds a PodDisruptionBudget and topologySpreadConstraints to web (temporalio#409)

* Adds a PodDisruptionBudget and topologySpreadConstraints to web

* fixing type on topologySpreadConstraints
topologySpreadConstraints should be a list instead of map

* Update Chart to 0.42.0.

* Update README to mention you cannot do Cassandra only anymore. (temporalio#499)

Related: temporalio#470.

* Remove invalid line. (temporalio#502)

Fixes temporalio#426

* Service account should be set when present, even if not creating. (temporalio#498)

Fixes temporalio#403.

* Correct outdated port config. (temporalio#497)

Fixes temporalio#333 and temporalio#149.

Context: temporalio/temporal#650

* Update Chart to 0.43.0.

* ElasticSearch -> Elasticsearch

* fix: Escape ES credentials (temporalio#505)

* feat: updated grafana and prometheus helm dependencies (temporalio#424)

* feat: bump grafana and prometheus charts versions

Signed-off-by: David Calvert <[email protected]>

* Remove hard coded cluster.local references. (temporalio#501)

Switch check-cassandra-service init container to use nc. nslookup in recent
busybox images is broken and doesn't obey resolv.conf, meaning it won't check
k8s search domains.

* Enable HTTP API for Nexus (temporalio#511)

* Enable HTTP API for Nexus

* Update charts/temporal/templates/server-service.yaml

* Add FE Ingress (temporalio#435)

* Add ingress for frontend

* Add CONTRIBUTING.

* Note contributing in README.

* Note slack channel.

* Use a shared config map for all services. (temporalio#514)

Remove helpers in favour of defaults via values file.
Remove unused Elasticsearch environment variables.
Stop switching between es-visibility and visibility for store names.

* Pass `ct lint`

* Lint chart on PR.

* Setup for `ci install`. (temporalio#522)

* Setup for `ci install`.

Adds a test so that `helm test` now checks that the cluster is healthy after
the system is deployed.

Refactors server-job to remove the use of helm hooks which cause lot of users
pain and don't work with --wait, or the mechanism that helm test uses.

Improve the handling of elasticsearch by treating it just like the other drivers.

Correctly handle the schema.createDatabase setting which previously had edge cases.

* Secret key fixes.

* Fix missed ES quoting issue.

* Add postgres-es test.

* Fix branch reference.

* Update Chart to 0.44.0.

* Update README to use repo. (temporalio#531)

* Update README to use repo.

Fixes temporalio#458

---------

Co-authored-by: Alex Garnett <[email protected]>

* Check for pgx driver as well as plain postgres. (temporalio#546)

Fixes temporalio#532

* Templatize resourceLabels for standardization (temporalio#539)

* Templatize resourceLabels for standardization

* Feat add authorization options (temporalio#542)

Server authorization config.

* Quote sql password for default store in the same way as the visibility store (temporalio#551)

* Update Chart to 0.45.0.

* Update Chart to 0.45.1.

* Update UI version description (temporalio#556)

* Use admintools-env and secret for ES password consistent with e.g. jobs (temporalio#530)

* Provide option to create default namespace (temporalio#550)

* Provide option to create default namespace
* Create multiple namespaces with optional retention
---------

Co-authored-by: Manan Mangal <[email protected]>

* add Job annotations and labels (temporalio#536)

* add job labels and annotations

Signed-off-by: André Bauer <[email protected]>
Co-authored-by: Rob Holland <[email protected]>

---------

Signed-off-by: André Bauer <[email protected]>
Co-authored-by: Rob Holland <[email protected]>

* Config to specify tags to be excluded in prometheus metrics (temporalio#566)

* Config to specify tags to be excluded in prometheus metrics

---------

Co-authored-by: Rob Holland <[email protected]>

* Update Chart to 0.46.0.

* Ensure we use global for includes. (temporalio#568)

Some call sites used . which was sometimes not the global context.

* Update Chart to 0.46.1.

* Update _helpers.tpl to avoid nested custom resource label (temporalio#576)

* Update Chart to 0.46.2.

* fix identation

---------

Signed-off-by: Tihomir Surdilovic <[email protected]>
Signed-off-by: Valentin Zayash <[email protected]>
Signed-off-by: David Calvert <[email protected]>
Signed-off-by: André Bauer <[email protected]>
Co-authored-by: Tihomir Surdilovic <[email protected]>
Co-authored-by: Rob Holland <[email protected]>
Co-authored-by: Temporal Data <[email protected]>
Co-authored-by: Kshitij Tulsyan <[email protected]>
Co-authored-by: Kshitij <[email protected]>
Co-authored-by: Jingyu <[email protected]>
Co-authored-by: Theo REY <[email protected]>
Co-authored-by: Alex Shtin <[email protected]>
Co-authored-by: Rob Holland <[email protected]>
Co-authored-by: Punit Kulal <[email protected]>
Co-authored-by: Gerardo Enrique Mora Salazar <[email protected]>
Co-authored-by: Giovanny Gutiérrez <[email protected]>
Co-authored-by: vogre <[email protected]>
Co-authored-by: Valentin Zayash <[email protected]>
Co-authored-by: Chris Taylor <[email protected]>
Co-authored-by: Grzegorz Kołakowski <[email protected]>
Co-authored-by: Prathyush PV <[email protected]>
Co-authored-by: sringel <[email protected]>
Co-authored-by: Alex Shtin <[email protected]>
Co-authored-by: David Calvert <[email protected]>
Co-authored-by: Roey Berman <[email protected]>
Co-authored-by: Rahul Kumar <[email protected]>
Co-authored-by: Alex Garnett <[email protected]>
Co-authored-by: Sahil Vazirani <[email protected]>
Co-authored-by: Quinn <[email protected]>
Co-authored-by: Kristian Nordman <[email protected]>
Co-authored-by: Alex Tideman <[email protected]>
Co-authored-by: Csaba Tűz <[email protected]>
Co-authored-by: Manan Mangal <[email protected]>
Co-authored-by: Manan Mangal <[email protected]>
Co-authored-by: André Bauer <[email protected]>
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.

4 participants