<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Technique%2FHelm%2FAstuces</id>
	<title>Technique/Helm/Astuces - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Technique%2FHelm%2FAstuces"/>
	<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Technique/Helm/Astuces&amp;action=history"/>
	<updated>2026-04-19T22:58:29Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki.jordan-lenuff.com/index.php?title=Technique/Helm/Astuces&amp;diff=1589&amp;oldid=prev</id>
		<title>Jordan : Page créée avec « ==Présentation== Cette page a pour objet de donner des astuces dans l'utilisation de Helm.  ==Utiliser une même random string== Lors de l'utilisation d'une random sting… »</title>
		<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Technique/Helm/Astuces&amp;diff=1589&amp;oldid=prev"/>
		<updated>2025-03-28T13:59:50Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « ==Présentation== Cette page a pour objet de donner des astuces dans l&amp;#039;utilisation de Helm.  ==Utiliser une même random string== Lors de l&amp;#039;utilisation d&amp;#039;une random sting… »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Présentation==&lt;br /&gt;
Cette page a pour objet de donner des astuces dans l'utilisation de Helm.&lt;br /&gt;
&lt;br /&gt;
==Utiliser une même random string==&lt;br /&gt;
Lors de l'utilisation d'une random sting avec la [https://helm.sh/docs/chart_template_guide/function_list/#randalphanum-randalpha-randnumeric-and-randascii fonction Helm randAlphaNum] (entre autres), lorsqu'elle est utilisée plusieurs fois, elle ne rend évidemment pas la même valeur.&lt;br /&gt;
&lt;br /&gt;
Même en essayent de passer par un [https://helm.sh/docs/chart_template_guide/named_templates/ helper], on pourrait penser que le template est généré une seule fois : ce n'est pas le cas.&lt;br /&gt;
&lt;br /&gt;
Exemple avec un simple helper et son utilisation au sein de deux secrets :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{/*&lt;br /&gt;
Random string for each deploy&lt;br /&gt;
*/}}&lt;br /&gt;
{{- define &amp;quot;randomString&amp;quot; -}}&lt;br /&gt;
{{- (randAlphaNum 8 | lower) -}}&lt;br /&gt;
{{- end -}}&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Secret&lt;br /&gt;
metadata:&lt;br /&gt;
  name: secret-one-{{ include &amp;quot;randomString&amp;quot; . }}&lt;br /&gt;
---&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Secret&lt;br /&gt;
metadata:&lt;br /&gt;
  name: secret-two-{{ include &amp;quot;randomString&amp;quot; . }}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela aura le rendu suivant :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
# Source: example/templates/secret.yaml&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Secret&lt;br /&gt;
metadata:&lt;br /&gt;
  name: secret-one-gaifkj98&lt;br /&gt;
---&lt;br /&gt;
# Source: example/templates/secret.yaml&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Secret&lt;br /&gt;
metadata:&lt;br /&gt;
  name: secret-two-fc3zm3g4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les noms générés, bien qu'ayant utilisé le même template, sont différents.&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir réutiliser la même &amp;lt;code&amp;gt;randomString&amp;lt;/code&amp;gt;, il va falloir générer la valeur une seule fois et la stocker de façon à pouvoir la réutiliser :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
{{/*&lt;br /&gt;
Random string for each deploy in order to reuse it in several resources&lt;br /&gt;
*/}}&lt;br /&gt;
{{- define &amp;quot;randomString&amp;quot; -}}&lt;br /&gt;
{{- /* Create &amp;quot;CustomValues&amp;quot; dict inside &amp;quot;.Release&amp;quot; to store various stuff. */ -}}&lt;br /&gt;
{{- if not (index .Release &amp;quot;CustomValues&amp;quot;) -}}&lt;br /&gt;
{{-   $_ := set .Release &amp;quot;CustomValues&amp;quot; dict -}}&lt;br /&gt;
{{- end -}}&lt;br /&gt;
{{- /* Variabilize the key name to use in the previous created dict. */ -}}&lt;br /&gt;
{{- $key := &amp;quot;RandomString&amp;quot; -}}&lt;br /&gt;
{{- /* If $key does not yet exist in .Release.CustomValues, then... */ -}}&lt;br /&gt;
{{- if not (index .Release.CustomValues $key) -}}&lt;br /&gt;
{{- /* ... create it under the key $key. */ -}}&lt;br /&gt;
{{-   $_ := set .Release.CustomValues $key (randAlphaNum 8 | lower) -}}&lt;br /&gt;
{{- end -}}&lt;br /&gt;
{{- /* Retrieve previously generated value. */ -}}&lt;br /&gt;
{{- index .Release.CustomValues $key -}}&lt;br /&gt;
{{- end -}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ainsi, les secrets générés peuvent utiliser la même &amp;lt;code&amp;gt;randomString&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
# Source: example/templates/secret.yaml&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Secret&lt;br /&gt;
metadata:&lt;br /&gt;
  name: secret-one-teyqjcva&lt;br /&gt;
---&lt;br /&gt;
# Source: example/templates/secret.yaml&lt;br /&gt;
apiVersion: v1&lt;br /&gt;
kind: Secret&lt;br /&gt;
metadata:&lt;br /&gt;
  name: secret-two-teyqjcva&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Bonus :''' Cette valeur étant stockée dans l'object &amp;lt;code&amp;gt;Release&amp;lt;/code&amp;gt; de Helm, elle peut être réutilisée dans les subcharts.&lt;/div&gt;</summary>
		<author><name>Jordan</name></author>
		
	</entry>
</feed>