{"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 are common to multiple templates or can be shared across different parts of your chart. To define global values in a Helm chart, follow these steps: Step 1:&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_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}]}}