【发布时间】:2018-07-18 21:23:49
【问题描述】:
我有一个通过 CircleCI 的 kubernetes 部署文件,无论如何都不会通过。这是我的 deployment.yaml 包含的内容:
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: usage-metrics
namespace: foo
labels:
foo-app: usage-metrics
spec:
replicas: 1
selector:
matchLabels:
foo-app: usage-metrics
template:
metadata:
labels:
foo-app: usage-metrics
name: usage-metrics
spec:
terminationGracePeriodSeconds: 60
imagePullSecrets:
- name: regsecret
containers:
- image: foo/usage-metrics
name: app
env:
- name: TEMP_ENV_VAR
value: "temp"
ports:
- containerPort: 8080
由于某种原因,我在推送时不断收到此错误:
"STDIN": error validating data: [ValidationError(Deployment.spec.template.spec.containers[0].env): invalid type for io.k8s.api.core.v1.Container.env: got "string", expected "array", ValidationError(Deployment.spec.template.spec): unknown field "ports" in io.k8s.api.core.v1.PodSpec]
部署 CCI 配置部分:
echo ":: deploying to $CONTEXT"
export CLUSTER_ID=$CONTEXT
cd $SOURCE_PATH
kd \
--context $CONTEXT \
--namespace foo \
--ssh-host deploy@bastion.$CTL_CONTEXT \
--timeout 8m \
--images "app=$(cat new-tag)" \
--file deployment.yaml
我确定 env 是一个数组而不是字符串,所以我不确定为什么会这样,请帮忙! 谢谢!
【问题讨论】:
-
你的部署怎么样? yaml 绝对有效
-
我正在通过 circleCi 进行部署
-
是的,但是怎么做?发布您的 circleci 配置
-
出于某种原因,它还认为端口是规范的子对象,而不是容器
-
刚刚编辑添加了配置的部署部分
标签: kubernetes yaml continuous-deployment