---
# System prepended metadata

title: Secret

---

# Secret

1) Создаем секрет

Для этого выполним команду:

```bash
kubectl create secret generic test --from-literal=test1=asdf --from-literal=dbpassword=1q2w3e
kubectl get secret
kubectl get secret test -o yaml
```

2) Применим наш деплоймент

```yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - image: nginx:1.20
        name: nginx
        envFrom:
        - configMapRef:
            name: my-configmap-env
        env:
        - name: TEST
          value: foo
        - name: TEST_1
          valueFrom:
            secretKeyRef:
              name: test
              key: test1
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: 50m
            memory: 100Mi
          limits:
            cpu: 100m
            memory: 100Mi
```

Для этого выполним команду:

```bash
kubectl apply -f deployment-with-secret.yaml
```

3) Проверяем результат

Для этого выполним команду, подставив вместо < RANDOM > нужное значение(`автоподстановка по TAB`):

```bash
kubectl describe pod my-deployment-< RANDOM >
```

Результат должен содержать:

```bash
Environment:
      TEST:    foo
      TEST_1:  <set to the key 'test1' in secret 'test'>  Optional: false
```

4) Применяем манифест с секретом

secret.yaml
```yaml
---
apiVersion: v1
kind: Secret
metadata:
  name: test
stringData:
  test: updated
```

```bash
kubectl apply -f secret.yaml
```

5) Проверяем что в секрете

```bash
kubectl get secret test -o yaml
```

6) Исправляем манифест секрета и применяем

```bash
# изменяем ключ test на test1
vim secret.yaml

kubectl apply -f secret.yaml
```

7) Проверяем что в секрете

```bash
kubectl get secret test -o yaml
```
