将常量传递给支架
pass constant to skaffold
我正在尝试在 skaffold 中使用常量,并在 skaffold 配置文件中访问它:
示例export SOME_IP=199.99.99.99 && skaffold run -p dev
skaffold.yaml
...
deploy:
helm:
flags:
global:
- "--debug"
releases:
- name: ***
chartPath: ***
imageStrategy:
helm:
explicitRegistry: true
createNamespace: true
namespace: "***"
setValueTemplates:
SKAFFOLD_SOME_IP: "{{.SOME_IP}}"
在 dev.yaml 配置文件中,我需要以某种方式访问它,
类似于:
{{ .Template.SKAFFOLD_SOME_IP }}
应该呈现为 199.99.99.99
我尝试使用 skaffold envTemplate 和 setValueTemplates 字段,但无法成功,并且在网络上找不到任何示例
要使用您在 skaffold.yaml 中设置的 SKAFFOLD_SOME_IP
变量,您可以像这样为 Kubernetes 部署编写图表 template
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
app: {{ .Chart.Name }}
spec:
selector:
matchLabels:
app: {{ .Chart.Name }}
replicas: {{ .Values.replicaCount }}
template:
metadata:
labels:
app: {{ .Chart.Name }}
spec:
containers:
- name: {{ .Chart.Name }}
image: {{ .Values.image }}
env:
- name: SKAFFOLD_SOME_IP
value: "{{ .Values.SKAFFOLD_SOME_IP }}"
这将为 Kubernetes pods 创建一个环境变量 SKAFFOLD_SOME_IP
。您可以使用 'go' 访问它,例如,像这样:
os.Getenv("SKAFFOLD_SOME_IP")
基本上找到了一个我真的不喜欢的解决方案,但它有效:
在 dev 配置文件中:values.dev.yaml 我添加了一个占位符
_anchors_:
- &_IPAddr_01 "<IPAddr_01_TAG>" # will be replaced with SOME_IP
将替换为 const SOME_IP 将变为 199.99.99.99 在脚手架 运行
现在 运行 脚手架我会做:
export SOME_IP=199.99.99.99
sed -i "s/<IPAddr_01_TAG>/$SOME_IP/g" values/values.dev.yaml
skaffold run -p dev
所以在上面的sed之后,在dev配置文件中:values.dev.yaml,我们会看到SOME_IP const 而不是占位符
_anchors_:
- &_IPAddr_01 "199.99.99.99"
我正在尝试在 skaffold 中使用常量,并在 skaffold 配置文件中访问它:
示例export SOME_IP=199.99.99.99 && skaffold run -p dev
skaffold.yaml
...
deploy:
helm:
flags:
global:
- "--debug"
releases:
- name: ***
chartPath: ***
imageStrategy:
helm:
explicitRegistry: true
createNamespace: true
namespace: "***"
setValueTemplates:
SKAFFOLD_SOME_IP: "{{.SOME_IP}}"
在 dev.yaml 配置文件中,我需要以某种方式访问它,
类似于:
{{ .Template.SKAFFOLD_SOME_IP }}
应该呈现为 199.99.99.99
我尝试使用 skaffold envTemplate 和 setValueTemplates 字段,但无法成功,并且在网络上找不到任何示例
要使用您在 skaffold.yaml 中设置的 SKAFFOLD_SOME_IP
变量,您可以像这样为 Kubernetes 部署编写图表 template
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
app: {{ .Chart.Name }}
spec:
selector:
matchLabels:
app: {{ .Chart.Name }}
replicas: {{ .Values.replicaCount }}
template:
metadata:
labels:
app: {{ .Chart.Name }}
spec:
containers:
- name: {{ .Chart.Name }}
image: {{ .Values.image }}
env:
- name: SKAFFOLD_SOME_IP
value: "{{ .Values.SKAFFOLD_SOME_IP }}"
这将为 Kubernetes pods 创建一个环境变量 SKAFFOLD_SOME_IP
。您可以使用 'go' 访问它,例如,像这样:
os.Getenv("SKAFFOLD_SOME_IP")
基本上找到了一个我真的不喜欢的解决方案,但它有效:
在 dev 配置文件中:values.dev.yaml 我添加了一个占位符
_anchors_:
- &_IPAddr_01 "<IPAddr_01_TAG>" # will be replaced with SOME_IP
现在 运行 脚手架我会做:
export SOME_IP=199.99.99.99
sed -i "s/<IPAddr_01_TAG>/$SOME_IP/g" values/values.dev.yaml
skaffold run -p dev
所以在上面的sed之后,在dev配置文件中:values.dev.yaml,我们会看到SOME_IP const 而不是占位符
_anchors_:
- &_IPAddr_01 "199.99.99.99"