{"id":36262,"date":"2023-06-28T09:00:59","date_gmt":"2023-06-28T09:00:59","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=36262"},"modified":"2023-06-28T09:01:02","modified_gmt":"2023-06-28T09:01:02","slug":"helm-tutorials-global-values-in-helm-chart","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/helm-tutorials-global-values-in-helm-chart\/","title":{"rendered":"Helm Tutorials: Global Values in Helm Chart"},"content":{"rendered":"\n<p>In Helm, you can define global values that are accessible across all templates within a chart. Global values are useful for defining configuration settings or variables that are common to multiple templates or can be shared across different parts of your chart.<\/p>\n\n\n\n<p>To define global values in a Helm chart, follow these steps:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Create or Modify the <code>values.yaml<\/code> File<\/h2>\n\n\n\n<p>In your chart&#8217;s root directory, open or create the <code>values.yaml<\/code> file. This file is where you can define your chart&#8217;s default values and override them during installation or upgrade.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Define Global Values<\/h2>\n\n\n\n<p>Inside the <code>values.yaml<\/code> file, add a section for your global values. For example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">global<\/span>:\r\n  <span class=\"hljs-selector-tag\">app<\/span>:\r\n    <span class=\"hljs-selector-tag\">name<\/span>: <span class=\"hljs-selector-tag\">my-app<\/span>\r\n    <span class=\"hljs-selector-tag\">version<\/span>: 1<span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span>\r\n  <span class=\"hljs-selector-tag\">environment<\/span>: <span class=\"hljs-selector-tag\">production<\/span>\r\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we have defined two global values: <code>app<\/code> and <code>environment<\/code>. The <code>app<\/code> value is a nested object with two properties, <code>name<\/code> and <code>version<\/code>, while <code>environment<\/code> is a simple string value.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Accessing Global Values in Templates<\/h2>\n\n\n\n<p>To access the global values in your chart&#8217;s templates, you can use the <code>.Values.global<\/code> object. For example, to access the <code>app.name<\/code> global value in a template, you can use <code>{{ .Values.global.app.name }}<\/code>.<\/p>\n\n\n\n<p>Here&#8217;s an example of how you can use a global value in a template:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">apiVersion: v1\r\nkind: Service\r\nmetadata:\r\n  name: {{ .Values.<span class=\"hljs-keyword\">global<\/span>.app.name }}-service\r\nspec:\r\n  selector:\r\n    app: {{ .Values.<span class=\"hljs-keyword\">global<\/span>.app.name }}\r\n  ports:\r\n    - name: http\r\n      port: <span class=\"hljs-number\">80<\/span>\r\n      targetPort: <span class=\"hljs-number\">8080<\/span>\r\n  type: LoadBalancer\r\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we are using the global value <code>app.name<\/code> to dynamically generate the service name.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Installing or Upgrading the Chart<\/h2>\n\n\n\n<p>When installing or upgrading the chart, you can override the global values by providing a custom <code>values.yaml<\/code> file or passing individual values using the <code>--set<\/code> flag.<\/p>\n\n\n\n<p>For example, to override the global <code>environment<\/code> value during installation, you can use the following command:<\/p>\n\n\n\n<p>helm install my-chart .\/my-chart &#8211;set global.environment=staging<\/p>\n\n\n\n<p>This will set the <code>environment<\/code> value to &#8220;staging&#8221; instead of the default &#8220;production&#8221;.<\/p>\n\n\n\n<p>That&#8217;s it! You now know how to define and use global values in a Helm chart.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Helm, you can define global values that are accessible across all templates within a chart. Global values are useful for defining configuration settings or variables that&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-36262","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/36262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=36262"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/36262\/revisions"}],"predecessor-version":[{"id":36263,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/36262\/revisions\/36263"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=36262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=36262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=36262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}