Я использую kustomize как отдельный двоичный файл (установленный вместе с Homebrew) и имею следующий файл base / kustomization.yaml:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
commonLabels:
app: myservice
app.kubernetes.io/name: myservice
service: myservicename
vendor: mycompany
app.kubernetes.io/version: "0.1.0"
namePrefix: myservice-
namespace: mynamespace
commonAnnotations:
supportMail: [email protected]
resources:
- pre-install-job.yaml
- cronjob.yaml
- service.yaml
- api.yaml
- worker.yaml
configMapGenerator:
- files:
- env.properties
name: configmap
secretGenerator:
- envs:
- env.properties
name: env-file-secret
Файл env.properties выглядит так:
APP_NAME="vendor-service-whatever"
APP_ENV="production"
APP_KEY="base64:onKQb...LtU="
APP_DEBUG="false"
APP_URL="https://myamazingsite.com"
LOG_CHANNEL="stderr"
DB_CONNECTION="mysql"
DB_HOST="mariadb-slave"
DB_DATABASE="incredibledb"
А в моей конфигурации pre-install-job.yaml я объявляю контейнер следующим образом:
containers:
- name: "pre-install-job"
image: "registry.myamazingdomain.com/vendor/whatever/service:latest"
imagePullPolicy: "Always"
args:
- /bin/bash
- -c
- php artisan migrate --force -v;
envFrom:
- configMapRef:
name: "configmap"
Проблема: переменные среды недоступны в пакете / контейнере. Я также попытался смонтировать конфигурационную карту как файл .env в контейнере, но безуспешно. Может, кто-нибудь укажет мне верное направление.
Результирующая ошибка:
Illuminate \ Database \ QueryException: SQLSTATE [HY000] [2002] В соединении отказано (SQL: выберите * из information_schema.tables, где table_schema = forge и table_name = migrations и table_type = 'BASE TABLE')
Потому что используются значения по умолчанию, а не те, которые определены в переменных среды.