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-config
SpringBoot 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_PASSWORD
Eğ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