#kubernetes
#kubernetes
Вопрос:
у меня есть docker-composes для app dotnetcore, я новичок в k8s, мое приложение имеет довольно длинную переменную. «ConnectionStrings__DefaultConnection», как показано ниже
productstudio:
volumes:
- ${USERPROFILE}/.aws:/root/.aws
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ConnectionStrings__DefaultConnection=Username=someuser;Password=somepassword;Server=postgres;Port=5432;Database=somedb;Search Path=some
- EventBus__Enable=true
- EventBus__HostUri=rabbitmq://eventbus/
и я пишу configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: be-productstudio-configmap
labels:
app: product-builder-be
tier: backend
data:
ASPNETCORE_ENVIRONMENT: Development
EventBus__Enable: true
EventBus__HostUri: rabbitmq://eventbus/
ConnectionStrings__DefaultConnection: |-
Username=someuser;
Password=somepassword;
Server=postgres;
Port=5432;
Database=somedb;
Search Path=some
Но я получил сообщение об ошибке
Error from server (BadRequest): error when creating "manifect-be.yml": ConfigMap in version "v1" cannot be handled as a ConfigMap: v1.ConfigMap.Data: ReadString: expects " or n, but found t, error found in #10 byte of ...|_Enable":true,"Event|..., bigger context ...|nSearch Path=productstudio"","EventBus__Enable":true,"EventBus__HostUri":"rabbitmq://eventbus/"},"k|...
Кто-нибудь может мне помочь, спасибо
Ответ №1:
Я вижу здесь две проблемы:
- Ошибка, которую вы видите, означает, что значение
true
forEventBus__Enable
не заключено в кавычки, и оно обрабатывается как ключевое слово, которое означает логическое значение true . Переменные среды являются строками и должны быть заключены в кавычки в вашем определении yaml. Вам нужно сделать так, чтобы это выглядело примерно так:
EventBus__Enable: "true"
- Вы не должны использовать пробелы в ключевых определениях вашего
ConfigMap
:
Search Path=productstudio
как:
Каждый ключ в поле
data
илиbinaryData
должен состоять из буквенно-цифровых символов,-
,_
или.
.
Вы можете использовать официальные документы для ссылки на правильно настроенные ConfigMaps, например:
apiVersion: v1
kind: ConfigMap
metadata:
name: game-demo
data:
# property-like keys; each key maps to a simple value
player_initial_lives: "3"
ui_properties_file_name: "user-interface.properties"
# file-like keys
game.properties: |
enemy.types=aliens,monsters
player.maximum-lives=5
user-interface.properties: |
color.good=purple
color.bad=yellow
allow.textmode=true