Написал helm chart (директория выглядит вот так)
├── Chart.yaml
├── Dockerfile
├── locustfile.py
├── requirements.in
├── requirements.txt
├── templates
│ ├── ConfigMap.yaml
│ └── deployment.yaml
└── values.yaml
моя задача заключается в том, чтобы написать help chart при этом переменные окружения должны быть в configmap
устанавливаю чарт такой командой
helm upgrade --install loadgenerator .
чарт успешно устанавливается но поды не стартуют, так как внутри подов вместо image контейнеров стоят переменные
конфигмап
apiVersion: v1
kind: ConfigMap
metadata:
name: app
data:
image_init_container: "busybox:latest"
image_app: "loadgenerator"
namespace: default
env: prod
деплоймент
apiVersion: apps/v1
kind: Deployment
metadata:
name: loadgenerator
spec:
selector:
matchLabels:
app: loadgenerator
replicas: 1
template:
metadata:
labels:
app: loadgenerator
annotations:
sidecar.istio.io/rewriteAppHTTPProbers: "true"
spec:
serviceAccountName: default
terminationGracePeriodSeconds: 5
restartPolicy: Always
securityContext:
fsGroup: 1000
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
initContainers:
- command:
- /bin/sh
- -exc
- |
echo "Init container pinging frontend: ${FRONTEND_ADDR}..."
STATUSCODE=$(wget --server-response http://${FRONTEND_ADDR} 2>&1 | awk '/^ HTTP/{print $2}')
if test $STATUSCODE -ne 200; then
echo "Error: Could not reach frontend - Status code: ${STATUSCODE}"
exit 1
fi
name: frontend-check
image: $(image_init_container)
envFrom:
- configMapRef:
name: app
env:
- name: FRONTEND_ADDR
value: "frontend:80"
containers:
- name: main
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- all
privileged: false
readOnlyRootFilesystem: true
image: $(image_app)
envFrom:
- configMapRef:
name: app
env:
- name: FRONTEND_ADDR
value: "frontend:80"
- name: USERS
value: "10"
resources:
requests:
cpu: 300m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
в описании пода ошибка такая
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 47m default-scheduler Successfully assigned default/loadgenerator-66c46bd489-5rm8v to minikube
Warning Failed 45m (x12 over 47m) kubelet Error: InvalidImageName
Warning InspectFailed 2m17s (x214 over 47m) kubelet Failed to apply default image tag "$(image_init_container)": couldn't parse image reference "$(image_init_container)": invalid reference format
values в директории чарта пустой