Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| chp:concepten:configmap [2020/01/20 13:13] – external edit 127.0.0.1 | chp:concepten:configmap [2026/05/27 14:01] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== ConfigMaps ====== | ||
| + | Veel applicaties, | ||
| + | |||
| + | Eén manier is om de container te bouwen met de config-files in de container zelf. Hoewel deze aanpak in veel gevallen zou werken valt het niet aan te raden. De container is namelijk niet of nauwelijks bruikbaar voor een andere omgeving of voor een andere toepassing. Een ander nadeel is dat de configuratie niet erg inzichtelijk is, zowel vanaf de command-line als via de web-interface. | ||
| + | |||
| + | Via een config-map koppel je de configuratie los van de container. Daardoor is een container voor veel meer toepassingen inzetbaar. Een ander voordeel aan een config-map is dat de configuratie makkelijk inzichtelijk is vanuit de command-line en vanuit de web-interface. Configuratie in een ConfigMap kan op 3 manieren beschikbaar gesteld worden aan containers: | ||
| + | * Als environment-variables, | ||
| + | * Als directory, hierbij zijn de keys de filenames en de values de inhoud van deze files. | ||
| + | * Als file, hierbij dient een specifieke key in de ConfigMap te worden gekozen en de value van de key wordt de inhoud van de file. | ||
| + | |||
| + | |||
| + | |||
| + | ===== ConfigMap aanmaken ===== | ||
| + | ==== Webconsole ==== | ||
| + | ConfigMap is aan te maken via '' | ||
| + | Onderstaand voorbeeld is voor **environment-variables**: | ||
| + | |||
| + | Dit is een config-map van een **configfile** (in dit geval voor nginx). De key is de filename van deze config-file en de value is de inhoud van de file. \\ | ||
| + | |||
| + | {{: | ||
| + | Op dit moment is de config-map aangemaakt, maar hij is nog niet actief voor draaiende pods. Daarvoor moet hij nog worden toegekend door op '' | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | In het geval van environment-variables kies je natuurlijk voor '' | ||
| + | |||
| + | ==== Via de commandline ==== | ||
| + | Maak een yml bestand aan, bijv. '' | ||
| + | |||
| + | == Environment-variables: | ||
| + | <code yaml> | ||
| + | apiVersion: v1 | ||
| + | kind: ConfigMap | ||
| + | metadata: | ||
| + | name: my-config-map | ||
| + | data: | ||
| + | application.config: | ||
| + | --- | ||
| + | application: | ||
| + | - name: frontend | ||
| + | config: frontend.config | ||
| + | - name: backend | ||
| + | hostname: app-backend | ||
| + | frontend.config: | ||
| + | --- | ||
| + | database: | ||
| + | host: app-database | ||
| + | user: db_user | ||
| + | pass: somerandomhash | ||
| + | database: db | ||
| + | hostname: app.example.com | ||
| + | </ | ||
| + | == Config-files: | ||
| + | <code yaml> | ||
| + | apiVersion: v1 | ||
| + | kind: ConfigMap | ||
| + | objects: | ||
| + | - apiVersion: v1 | ||
| + | data: | ||
| + | default.conf: | ||
| + | |||
| + | server { | ||
| + | listen | ||
| + | server_name localhost; | ||
| + | |||
| + | access_log | ||
| + | error_log | ||
| + | |||
| + | root / | ||
| + | |||
| + | index index.php index.html; | ||
| + | |||
| + | location ~\.php$ { | ||
| + | try_files $uri =404; | ||
| + | fastcgi_split_path_info ^(.+\.php)(/ | ||
| + | |||
| + | fastcgi_pass voorbeeld-app-phpfpm-service: | ||
| + | fastcgi_index index.php; | ||
| + | include fastcgi.conf; | ||
| + | } | ||
| + | } | ||
| + | metadata: | ||
| + | annotations: | ||
| + | description: | ||
| + | </ | ||
| + | |||
| + | Voeg de configmap toe aan project via commandline: | ||
| + | '' | ||
| + | |||
| + | Voeg de configmap toe aan de pods door de deployment-config aan te passen. | ||
| + | '' | ||
| + | Voeg onder de ' | ||
| + | **Environment-variables: | ||
| + | <code yaml> | ||
| + | - envFrom: | ||
| + | - configMapRef: | ||
| + | name: voorbeeld-configmap | ||
| + | </ | ||
| + | \\ | ||
| + | **Config-files: | ||
| + | <code yaml> | ||
| + | volumeMounts: | ||
| + | - mountPath: $folder_binnen_pod | ||
| + | name: voorbeeld-configmap | ||
| + | </ | ||
| + | \\ | ||
| + | Officiele documentatie: | ||
| + | Config-maps zijn een algemeen kubernetes concept dus kubenetes-documentatie over dit onderwerp kunnen ook van pas komen. | ||