Skip to content

Commit ab8185a

Browse files
authored
Merge pull request #44845 from k0rventen/fr-task-configmap-secret
[fr] translate tasks from the Managing Secrets section
2 parents 271ae5f + f5c9517 commit ab8185a

File tree

4 files changed

+613
-0
lines changed

4 files changed

+613
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: "Gestion des Secrets"
3+
weight: 60
4+
description: Gérer des données confidentielles avec les Secrets.
5+
---
6+
Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,248 @@
1+
---
2+
title: Gestion des Secrets avec un fichier de configuration
3+
content_type: task
4+
weight: 20
5+
description: Créer des Secrets en utilisant un fichier de configuration de ressources.
6+
---
7+
8+
<!-- overview -->
9+
10+
## {{% heading "prerequisites" %}}
11+
12+
{{< include "task-tutorial-prereqs.md" >}}
13+
14+
<!-- steps -->
15+
16+
## Créer le Secret {#create-the-config-file}
17+
18+
Vous pouvez d'abord définir l'objet `Secret` dans un fichier, au format JSON ou YAML,
19+
puis créer cet objet. La ressource
20+
[Secret](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#secret-v1-core)
21+
contient deux clé : `data` et `stringData`.
22+
Le champ `data` est utilisé pour stocker des données encodées en base64. Le
23+
champ `stringData` est fourni par commodité et permet de fournir
24+
les mêmes données sous forme de texte non encodé.
25+
Les valeurs de `data` et `stringData` doivent être composées de caractères alphanumériques,
26+
`-`, `_` ou `.`.
27+
28+
L'exemple suivant stocke deux chaînes de caractères dans un Secret en utilisant le champ `data`.
29+
30+
1. Convertissez le texte en base64 :
31+
32+
```shell
33+
echo -n 'admin' | base64
34+
echo -n '1f2d1e2e67df' | base64
35+
```
36+
37+
{{< note >}}
38+
Les valeurs JSON et YAML du Secret sont sérialisées puis encodées en base64. Les sauts de ligne ne sont pas valides à l'intérieur de ces chaînes et doivent être omis. Lors de l'utilisation de l'utilitaire `base64` sur Darwin/macOS, les utilisateurs doivent éviter d'utiliser l'option `-b` pour diviser les lignes longues. En revanche, les utilisateurs Linux *doivent* ajouter l'option `-w 0` à la commande `base64` ou alors utiliser `base64 | tr -d '\n'` si l'option `-w` n'est pas disponible.
39+
{{< /note >}}
40+
41+
Le résultat sera similaire à :
42+
43+
```
44+
YWRtaW4=
45+
MWYyZDFlMmU2N2Rm
46+
```
47+
48+
1. Créez le manifeste :
49+
50+
```yaml
51+
apiVersion: v1
52+
kind: Secret
53+
metadata:
54+
name: mysecret
55+
type: Opaque
56+
data:
57+
username: YWRtaW4=
58+
password: MWYyZDFlMmU2N2Rm
59+
```
60+
61+
Notez que le nom d'un objet Secret doit être un
62+
[nom de sous-domaine DNS valide](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names).
63+
64+
1. Créez le Secret en utilisant [`kubectl apply`](/docs/reference/generated/kubectl/kubectl-commands#apply):
65+
66+
```shell
67+
kubectl apply -f ./secret.yaml
68+
```
69+
70+
Le résultat sera similaire à :
71+
72+
```
73+
secret/mysecret created
74+
```
75+
76+
Pour vérifier que le Secret a été créé et pour décoder les données du Secret, référez-vous à la page sur la
77+
[Gestion des secrets à l'aide de kubectl](/fr/docs/tasks/configmap-secret/managing-secret-using-kubectl/#verify-the-secret).
78+
79+
### Spécifier des données non encodées lors de la création d'un Secret
80+
81+
Pour certains cas, vous pouvez
82+
utiliser le champ `stringData` à la place. Ce
83+
champ vous permet d'ajouter du texte non encodé directement dans le Secret,
84+
et il sera encodé pour vous lors de la création ou de la mise à jour du Secret.
85+
86+
Un exemple pratique de ce besoin pourrait être lorsque vous déployez une application
87+
qui utilise un Secret pour stocker un fichier de configuration, et que vous voulez configurer
88+
certaines parties de ce fichier de configuration pendant votre processus de déploiement.
89+
90+
Par exemple, si votre application utilise le fichier de configuration suivant :
91+
92+
```yaml
93+
apiUrl: "https://my.api.com/api/v1"
94+
username: "<user>"
95+
password: "<password>"
96+
```
97+
98+
Vous pourriez le stocker dans un Secret en utilisant la définition suivante :
99+
100+
```yaml
101+
apiVersion: v1
102+
kind: Secret
103+
metadata:
104+
name: mysecret
105+
type: Opaque
106+
stringData:
107+
config.yaml: |
108+
apiUrl: "https://my.api.com/api/v1"
109+
username: <user>
110+
password: <password>
111+
```
112+
113+
{{< note >}}
114+
Le champ `stringData` pour un Secret ne fonctionne pas bien avec le traitement des modifications coté serveur (Server Side Apply).
115+
{{< /note >}}
116+
117+
Lorsque vous récupérez les données du Secret, la commande retourne les valeurs encodées,
118+
et non les valeurs en texte brut que vous avez fournies dans `stringData`.
119+
120+
Par exemple, si vous exécutez la commande suivante :
121+
122+
```shell
123+
kubectl get secret mysecret -o yaml
124+
```
125+
126+
Le résultat sera similaire à :
127+
128+
```yaml
129+
apiVersion: v1
130+
data:
131+
config.yaml: YXBpVXJsOiAiaHR0cHM6Ly9teS5hcGkuY29tL2FwaS92MSIKdXNlcm5hbWU6IHt7dXNlcm5hbWV9fQpwYXNzd29yZDoge3twYXNzd29yZH19
132+
kind: Secret
133+
metadata:
134+
creationTimestamp: 2018-11-15T20:40:59Z
135+
name: mysecret
136+
namespace: default
137+
resourceVersion: "7225"
138+
uid: c280ad2e-e916-11e8-98f2-025000000001
139+
type: Opaque
140+
```
141+
142+
### Spécifier à la fois `data` et `stringData`
143+
144+
Si vous spécifiez un champ à la fois dans `data` et `stringData`, la valeur de `stringData` sera utilisée.
145+
146+
Par exemple, si vous définissez le Secret suivant :
147+
148+
```yaml
149+
apiVersion: v1
150+
kind: Secret
151+
metadata:
152+
name: mysecret
153+
type: Opaque
154+
data:
155+
username: YWRtaW4=
156+
stringData:
157+
username: administrator
158+
```
159+
160+
{{< note >}}
161+
Le champ `stringData` pour un Secret ne fonctionne pas bien avec le traitement des modifications coté serveur (Server Side Apply).
162+
{{< /note >}}
163+
164+
L'objet `Secret` sera créé comme ceci :
165+
166+
```yaml
167+
apiVersion: v1
168+
data:
169+
username: YWRtaW5pc3RyYXRvcg==
170+
kind: Secret
171+
metadata:
172+
creationTimestamp: 2018-11-15T20:46:46Z
173+
name: mysecret
174+
namespace: default
175+
resourceVersion: "7579"
176+
uid: 91460ecb-e917-11e8-98f2-025000000001
177+
type: Opaque
178+
```
179+
180+
`YWRtaW5pc3RyYXRvcg==` décodé devient `administrator`.
181+
182+
## Modifier un Secret {#edit-secret}
183+
184+
Pour éditer les données du Secret que vous avez créé à l'aide d'un manifeste, modifiez le champ `data`
185+
ou `stringData` dans votre manifeste et appliquez le fichier à votre
186+
cluster. Vous pouvez éditer un objet Secret existant à moins qu'il ne soit
187+
[immuable](/docs/concepts/configuration/secret/#secret-immutable).
188+
189+
Par exemple, si vous souhaitez changer le mot de passe de l'exemple précédent pour
190+
`birdsarentreal`, procédez comme suit :
191+
192+
1. Encodez le nouveau mot de passe:
193+
194+
```shell
195+
echo -n 'birdsarentreal' | base64
196+
```
197+
198+
Le résultat sera similaire à :
199+
200+
```
201+
YmlyZHNhcmVudHJlYWw=
202+
```
203+
204+
1. Mettre à jour le champ `data` avec votre nouvelle valeur :
205+
206+
```yaml
207+
apiVersion: v1
208+
kind: Secret
209+
metadata:
210+
name: mysecret
211+
type: Opaque
212+
data:
213+
username: YWRtaW4=
214+
password: YmlyZHNhcmVudHJlYWw=
215+
```
216+
217+
1. Appliquer la configuration sur votre cluster :
218+
219+
```shell
220+
kubectl apply -f ./secret.yaml
221+
```
222+
223+
Le résultat sera similaire à :
224+
225+
```
226+
secret/mysecret configured
227+
```
228+
229+
Kubernetes met à jour l'objet Secret existant. Pour être précis, l'outil `kubectl`
230+
remarque qu'il existe déja un `Secret` existant avec le même nom. `kubectl`
231+
récupère l'objet existant, planifie les modifications dessus et soumet le `Secret` modifié au plan de contrôle du cluster.
232+
233+
Si vous utilisez `kubectl apply --server-side`, `kubectl` utilisera plutôt
234+
[le traitement coté serveur (Server Side Apply)](/docs/reference/using-api/server-side-apply/).
235+
236+
## Nettoyage
237+
238+
Pour supprimer le Secret que vous venez de créer :
239+
240+
```shell
241+
kubectl delete secret mysecret
242+
```
243+
244+
## {{% heading "whatsnext" %}}
245+
246+
- En savoir plus sur les [Secrets](/fr/docs/concepts/configuration/secret/)
247+
- Apprendre comment [gérer les Secrets avec kubectl](/fr/docs/tasks/configmap-secret/managing-secret-using-kubectl/)
248+
- Apprendre à [gérer les Secrets avec kustomize](/fr/docs/tasks/configmap-secret/managing-secret-using-kustomize/)

0 commit comments

Comments
 (0)