Неверное значение env со свойством Quarkus RestClient при создании развертывания kubernetes - PullRequest
1 голос
/ 03 апреля 2020

Следуя обучающей программе Quarkus Rest Client, мне нужно добавить что-то похожее на это в файле application.properties:

country-api/mp-rest/url=https://restcountries.eu/rest

С Docker это работает, и я могу передать Значение свойства по параметру:

docker run -it --privileged --rm --env country-api/mp-rest/url="https://restcountries.eu/rest" mydockerhost/my-project:SNAPSHOT

Файл YAML для Kubernetes выглядит следующим образом:

apiVersion: "apps/v1"
kind: "Deployment"
metadata:
  labels:
    app.kubernetes.io/name: "my-project"
    app.kubernetes.io/version: "SNAPSHOT"
  name: "my-project-deployment"
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: "my-project"
      app.kubernetes.io/version: "SNAPSHOT"
  template:
    metadata:
      labels:
        app.kubernetes.io/name: "my-project"
        app.kubernetes.io/version: "SNAPSHOT"
    spec:
      containers:
      - env:
        - name: "country-api/mp-rest/url"
          value: "https://restcountries.eu/rest"

Однако при выполнении команды * 1014 возникает следующая ошибка *

The Deployment "my-project-deployment" is invalid: * spec.template.spec.containers[0].env[1].name: Invalid value: "country-api/mp-rest/url": a valid environment variable name must consist of alphabetic characters, digits, '_', '-', or '.', and must not start with a digit (e.g. 'my.env-name', or 'MY_ENV.NAME', or 'MyEnvName1', regex used for validation is '[-._a-zA-Z][-._a-zA-Z0-9]*')

Версия Quarkus: 1.3.1. Финал

1 Ответ

2 голосов
/ 03 апреля 2020

Вы можете использовать переменные окружения в application.properties, чтобы вы могли сделать что-то вроде:

country-api/mp-rest/url=${MY_SERVICE_URL}

и определить MY_SERVICE_URL в вашем файле Yaml.

Кроме того, MicroProfile Config имеет способ обойти вашу проблему. Использование COUNTRY_API_MP_REST_URL в качестве переменной окружения должно работать (все заглавные буквы, заменить все, что не alphanumeri c на _).

...