[英]Invalid env value with Quarkus RestClient property when create kubernetes deployment
在 Quarkus Rest 客户端教程之后,我需要在 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
Kubernetes 的 YAML 文件如下所示:
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"
但是执行命令kubectl apply -f my-projetc.yaml
时出现以下错误
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 (eg '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.Final
您可以在application.properties
中使用环境变量,这样您就可以执行以下操作:
country-api/mp-rest/url=${MY_SERVICE_URL}
并在 Yaml 文件中定义MY_SERVICE_URL
。
此外,MicroProfile Config 有办法解决您的问题。 使用COUNTRY_API_MP_REST_URL
作为环境变量应该可以工作(全部大写,用_
替换任何非字母数字)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.