kubernetes - 如何使用 Kubectl 执行变量替换?
问题描述
我正在尝试创建一个Role
,RoleBinding
所以我可以使用 Helm。{{namespace}}
我想在运行apply
命令时以某种方式使用变量替换来替换某些东西。
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-manager-{{namespace}}
namespace: {{namespace}}
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
我想通过命名空间是这样的:
kubectl apply --file role.yaml --namespace foo
我已经看到它kubectl apply
有一个--template参数,但我看不到太多关于如何使用它的信息。
解决方案
您可以通过以下方式进行操作。
像这样写
Role
文件:kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: tiller-manager-${NAMESPACE} namespace: ${NAMESPACE} rules: - apiGroups: ["", "batch", "extensions", "apps"] resources: ["*"] verbs: ["*"]
将
NAMESPACE
环境变量设置为您想要的值。然后使用以下命令创建角色
envsubst < role.yaml | kubectl apply -f -
推荐阅读
- android - Google Ads 转化操作未显示
- r - 我想将多行中的 1 个值的信息放在一个唯一行中,这些信息都在多列中(描述示例)
- tensorflow - 为什么“使用比嵌入层后面的层中的单元数更多的嵌入维度会很浪费”
- git - 错误 404 KeyNotFound 和缺少文件 git - s3 部署
- html - 我试图在 HTML5 中创建一个 4 列的行,但列显示一个在另一个下而不是并排
- php - 为什么我会出现此错误:“数组”第 2 行或附近的语法错误:值数组?
- python - 如何从文件中读取文件路径并创建单个组合数据框?
- javascript - 将数据传递给父组件时是否需要提升状态?
- sockets - 我可以设置 QoS 2 和 ToS 16 的全局默认值以应用于例如 gSOAP 服务吗?
- angular - 错误当我使用时,位置 2 出现了意外的文字
来自 Angular 9 中的 PrimeNG