问题标签 [kustomize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Conftest 异常规则因 Kustomization 和 Helm 失败
我的一个项目中有几个 k8s 资源,这些资源是使用 Helm 和 Kustomize 构建、组合和打包的。我使用 Conftest 编写了一些 OPA 测试,其中一项检查是避免以 root 身份运行容器。所以这是我的基本文件夹中的deployment.yaml:
然后,我的叠加文件夹中有一个补丁文件(flux-patch-prod.yaml),如下所示:
我现在已经在我的 base.rego 文件中编写了 Conftest,如下所示:
但是当我运行它们时(我安装了 helm-conftest 插件),我收到以下错误:
我不知道如何让这个工作。我不想最终将 deployment.yaml 中的内容再次复制到flux-patch-prod.yaml 中,因为它首先会破坏使用 Kustomization 的全部目的。知道如何解决这个问题吗?从昨天开始我就一直在纠结这个问题!
kubernetes - 在 kustomizing kubernetes manifests 时分解出通用组件
我正在使用 kustomize 二进制文件来制作特定的 kubernetes 部署 yaml 文件。
{版本:kustomize/v3.8.1 GitCommit:0b359d0ef0272e6545eda0e99aacd63aef99c4d0 BuildDate:2020-07-16T00:58:46Z GoOs:linux GoArch:amd64}
这是我的目录结构:
请注意,overlays/parser/prod/nonsec 和 /overlays/parser/prod/sec 包含两个相同的补丁文件集。我想将通用文件分解出来并将它们推到 prod 下的一个级别 - 我不希望在多个目录中复制相同的补丁。我希望 nonsec 和 sec 构建都使用相同的 prod 补丁集,但我不知道如何使用 kustomize 来做到这一点。我试图将它们放在上面的目录中,但是 kustomize 不允许对上面目录中的补丁文件进行任何引用——这是我需要做的。
如何避免在多个目录中重复这些 prod-patches*.yaml 文件?!
这是我的不安全的 kustomization.yaml
这是我的 sec kustomization.yaml:
kubernetes - 是否可以在 kustomize 中有一个动态的 namePrefix/nameSuffix?
在 Helm 中,可以使用指定发布名称
helm install my-release-name chart-path
这意味着,我可以使用 CLI 指定发布名称及其组件(使用全名)。
在 kustomize(我是 kustomize 的新手)中,有一个类似的概念,namePrefix
可以nameSuffix
在kustomization.yaml
但是,这种方法需要一个自定义文件,并且使用“动态”namePrefix 意味着kustomization.yaml
必须使用模板生成 a,而 kustomize 是关于避免模板化的。
有没有办法动态指定该值?
kubectl - 我们可以使用 k8s kustomize 和 kubectl 来设置图像和创建秘密文件吗?
我正在使用 k8s kustomize 设置图像并创建一个秘密文件
$(cd ./k8s/overlays/prod && kustomize edit set image gcr.io/PROJECT_ID/image:1.0)
这行得通!
现在我正在尝试使用kubectl kustomize
来做同样的事情而不做cd . ./k8s/overlays/prod
是否可以将 Kustomize 插件内置到 kubectl 中?
kustomize edit add secret
与 kubectl 不做cd
进入目录也一样吗?
kustomize - 是否可以编写 Kustomize 文件?
我想在一个文件中为特定容器定义 yaml,然后在构建 depyment 时将该容器配置拉入部署配置。是否可以这样做,因为单独的容器不是 Kubernetes 资源?
kubernetes - 使用 kustomize 挂载 k8s 密钥
我一直在寻找一段时间,但我对 kustomize 还是很陌生。我花了一些时间来理解覆盖等的概念。
我正在尝试使用 kustomization 文件将现有的秘密挂载到 pod 中。我无法在部署中执行此操作,因为它是单个部署,kustomize 处理了 3 个不同版本的部署。每个都需要不同的秘密安装。
因此,显而易见的答案是使用基础或覆盖中的 kustomize 文件将机密作为卷安装。
我找到了有关使用 kustomize 生成秘密的信息,但是该秘密已经存在并且作为 kubernetes 秘密传递到其他地方。
所以总结...
所以我希望处理将秘密安装到实例位置中的卷,因为秘密将不同,例如 1,2 和 3。
这可能吗?
TIA
编辑:
我为秘密添加了一个文件(它用于证书,因此每个实例都不同)。
我的补丁文件 (pki.yaml) 如下所示:
然后在./base/instance1/kustomization.yaml
我有:
为了完整起见,我的./base/kustomization.yaml
文件:
部署上述内容时出现错误。所以在我挖得太深之前,只是想知道我是否在吠叫正确的树?
kubernetes - 停止部署错误 Kubernetes 环境的方法
我们有一组 kubernetes yamls,由它们管理kustomize
,它们将被部署到不同的集群。每个集群都略有不同,这意味着每个环境都有一个子目录 ( environ/<envname>
),包括一些特殊的自定义覆盖。
我们将通过命令手动将新版本部署到不同的环境kubeclt apply -k environ/env
。但有时我们会做这样的愚蠢事情:kubectl apply -k environ/env1
对集群env2
。那么有什么方法可以停止kubectl apply
对错误的环境进行操作吗?
kubernetes - 如何使用 Kustomize 并创建一个环境,例如:“http://${namePrefix}service-a/some-path”或“jdbc:db2://${namePrefix}service-b:${dbPort}/${数据库名称}"
假设我需要像这样创建环境变量或 ConfigMap 条目:
名称前缀在哪里alice-
。如何使用 Kustomize 执行此操作?
我实际使用的容器确实需要对其他容器的引用,这些容器是上述“变量”的字符串连接。
Kustomize 似乎vars
无法做到这一点。文档条目Unstructured Edits似乎描述了这一点,并且位于名为“Eschewed Features”的标题下,所以我猜这不会发生。类似的功能请求,#775 支持 envsubst 样式变量扩展已关闭。
来自 Helm,这很容易。
如果我想从 Helm 迁移到 Kustomize,但需要创建一个 env 或 ConfigMap 条目,例如 eg jdbc:db2://${namePrefix}-service-b:${dbPort}/${dbName}
(诚然是一个人为的例子),我有什么选择?
我猜我将不得不求助于 Kustomize 外部的功能,比如envsubst
. 有没有将这些拼凑在一起的最佳实践,还是我自己写custom-deploy-script.sh
?
kubernetes - 是否可以在 GCP 的 GKE 上使用云构建部署 kustomize 命令?
如果在 GKE 上使用文件名部署,可以从官方找到Cloud Build 提供的支持的构建器镜像。
也可以找到完整列表。
但两者gke-deploy
都kubectl
不能满足我的要求。我想运行一个命令
因为我需要先用kustomize构建一个完整的文件,然后再使用kubectl。
从运行内联 bash 脚本,我可以尝试
但我认为它无法在 GKE 上找到要使用的集群。那么在这种情况下如何将它与 Cloud Build 一起使用,而不是在本地 shell 上运行呢?
kubernetes - terraform 中“kubernetes apply -k”的等价物是什么?
我想在我的 EKS 集群中使用 EFS。我正在关注这个eks 研讨会。
我需要EFS CSI Driver
使用 kustomize 进行部署:
terraform 中上述命令的等价物是什么?
是这样的吗?