Giriş
1. Pod envfrom/configMapRef ile istenilen ConfigMap'in tamamını environment olarak yükler.
2. Pod env/valueFrom/configMapKeyRef ile istenilen ConfigMap'in bir alanını environment olarak yükler.
1. envfrom
Örnek
Şöyle yaparız. envfrom başlığı altında configMapRef kullanılıyor
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config
data:
MYSQL_ROOT_HOST: root
MYSQL_ROOT_PASSWORD: password
#Inject entire configmap to the pod
apiVersion: v1
kind: Pod
metadata:
labels:
app: mysql-db
name: mysql-db
spec:
containers:
- image: mysql
name: mysql-db
envFrom:
- configMapRef:
name: mysql-configÖrnek
Şöyle yaparız. envfrom başlığı altında configMapRef kullanılıyor. Burada aynı zamanda configmap volume olarak ta yükleniyor ama bence gereksiz.
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
DATABASE_URL: jdbc:mysql://localhost:3306/mydb
DATABASE_USERNAME: myuser
DATABASE_PASSWORD: mypassword
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
template:
spec:
containers:
- name: my-container
image: my-image
envFrom:
- configMapRef:
name: my-config
volumeMounts:
- name: config-volume
mountPath: /config
volumes:
- name: config-volume
configMap:
name: my-configSpringBoot projesinde şöyle yaparız
spring:
datasource:
url: ${DATABASE_URL}
username: ${DATABASE_USERNAME}
password: ${DATABASE_PASSWORD}2. env
Eğer tüm configmap yerine içindeki bazı key değerleri kullanmak istersek şöyle yaparız. envfrom yerine env başlığı altında configMapKeyRef kullanılıyor
# Inject only the necessary environment varible from a configmap to the pod
apiVersion: v1
kind: Pod
metadata:
labels:
app: mysql-db
name: mysql-db
spec:
containers:
- image: mysql
name: mysql-db
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
configMapKeyRef:
name: mysql-config
key: MYSQL_ROOT_PASSWORDEğer bazı key değeleri birkaç farklı ConfigMap'ten almak istersek şöyle yaparız
# Inject environment varible from multiple configmaps to the pod
apiVersion: v1
kind: Pod
metadata:
labels:
app: mysql-db
name: mysql-db
spec:
containers:
- image: mysql
name: mysql-db
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
configMapKeyRef:
name: mysql-config
key: MYSQL_ROOT_PASSWORD
- name: APP_STATE
valueFrom:
configMapKeyRef:
name: app-config
key: APP_STATE
Hiç yorum yok:
Yorum Gönder