Kubernetes Контейнерная среда - PullRequest
0 голосов
/ 11 декабря 2018

Я написал файл deploy.yml в k8s: -

spec:
  containers:
  - name: consul
    image: xyz
    ports:
      - name: http
        containerPort: 8500
      - name: http1
        containerPort: 53
    env:
    - name: SERVICE_8500_IGNORE
      value: "true"
    - name: CONSUL_LOCAL_CONFIG
      value: "{"node_name": "docker","acl_datacenter": "dc1", "acl_default_policy": "deny", "acl_down_policy": "deny", "acl_master_token": "fleeture", "acl_agent_token":"xyz", "enable_script_checks": true}"

После запуска я получаю ошибки

Ошибка: непредвиденные символы рядом с "имя_узла": "докер","acl_datacenter": "dc1", "acl_default_policy": "deny", "acl_down_policy": "deny", "acl_master_token": "xyz", "acl_agent_token": "xyz", "enable_script_checks": true} ".Строка: 14 значение: "{" имя_узла ":" докер "," acl_datacenter ":" dc1 "," acl_default_policy ":" deny "," acl_down_policy ":" deny "," acl_master_token ":" fleeture "," acl_agent_token ": "xyz", "enable_script_checks": true} "

Есть идеи, как написать ENV для строки 14?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

@ Райан-Доусон ответ правильный.

Кроме того, вы можете просто заменить первую двойную кавычку ( ") на одинарную кавычку ( ') на

- name: CONSUL_LOCAL_CONFIG
  value: '{"node_name": "docker","acl_datacenter": "dc1", "acl_default_policy": "deny", "acl_down_policy": "deny", "acl_master_token": "fleeture", "acl_agent_token":"xyz", "enable_script_checks": true}' 
0 голосов
/ 11 декабря 2018

Вам необходимо использовать \, чтобы экранировать двойные кавычки в пределах значения для CONSUL_LOCAL_CONFIG, чтобы запись стала:

- name: CONSUL_LOCAL_CONFIG
  value: "{\"node_name\": \"docker\",\"acl_datacenter\": \"dc1\", \"acl_default_policy\": \"deny\", \"acl_down_policy\": \"deny\", \"acl_master_token\": \"fleeture\", \"acl_agent_token\":\"xyz\", \"enable_script_checks\": true}"
...