问题标签 [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.

0 投票
1 回答
177 浏览

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 的全部目的。知道如何解决这个问题吗?从昨天开始我就一直在纠结这个问题!

0 投票
1 回答
55 浏览

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:

0 投票
1 回答
1034 浏览

kubernetes - 是否可以在 kustomize 中有一个动态的 namePrefix/nameSuffix?

在 Helm 中,可以使用指定发布名称

helm install my-release-name chart-path

这意味着,我可以使用 CLI 指定发布名称及其组件(使用全名)。

在 kustomize(我是 kustomize 的新手)中,有一个类似的概念,namePrefix可以nameSuffixkustomization.yaml

但是,这种方法需要一个自定义文件,并且使用“动态”namePrefix 意味着kustomization.yaml必须使用模板生成 a,而 kustomize 是关于避免模板化的。

有没有办法动态指定该值?

0 投票
2 回答
1739 浏览

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进入目录也一样吗?

0 投票
1 回答
81 浏览

kustomize - 是否可以编写 Kustomize 文件?

我想在一个文件中为特定容器定义 yaml,然后在构建 depyment 时将该容器配置拉入部署配置。是否可以这样做,因为单独的容器不是 Kubernetes 资源?

0 投票
1 回答
470 浏览

kubernetes - 使用 kustomize 挂载 k8s 密钥

我一直在寻找一段时间,但我对 kustomize 还是很陌生。我花了一些时间来理解覆盖等的概念。

我正在尝试使用 kustomization 文件将现有的秘密挂载到 pod 中。我无法在部署中执行此操作,因为它是单个部署,kustomize 处理了 3 个不同版本的部署。每个都需要不同的秘密安装。

因此,显而易见的答案是使用基础或覆盖中的 kustomize 文件将机密作为卷安装。

我找到了有关使用 kustomize 生成秘密的信息,但是该秘密已经存在并且作为 kubernetes 秘密传递到其他地方。

所以总结...

所以我希望处理将秘密安装到实例位置中的卷,因为秘密将不同,例如 1,2 和 3。

这可能吗?

TIA

编辑:

我为秘密添加了一个文件(它用于证书,因此每个实例都不同)。

我的补丁文件 (pki.yaml) 如下所示:

然后在./base/instance1/kustomization.yaml我有:

为了完整起见,我的./base/kustomization.yaml文件:

部署上述内容时出现错误。所以在我挖得太深之前,只是想知道我是否在吠叫正确的树?

0 投票
2 回答
112 浏览

kubernetes - 停止部署错误 Kubernetes 环境的方法

我们有一组 kubernetes yamls,由它们管理kustomize,它们将被部署到不同的集群。每个集群都略有不同,这意味着每个环境都有一个子目录 ( environ/<envname>),包括一些特殊的自定义覆盖。

我们将通过命令手动将新版本部署到不同的环境kubeclt apply -k environ/env。但有时我们会做这样的愚蠢事情:kubectl apply -k environ/env1对集群env2。那么有什么方法可以停止kubectl apply对错误的环境进行操作吗?

0 投票
1 回答
386 浏览

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

0 投票
1 回答
375 浏览

kubernetes - 是否可以在 GCP 的 GKE 上使用云构建部署 kustomize 命令?

如果在 GKE 上使用文件名部署,可以从官方找到Cloud Build 提供的支持的构建器镜像。

也可以找到完整列表

但两者gke-deploykubectl不能满足我的要求。我想运行一个命令

因为我需要先用kustomize构建一个完整的文件,然后再使用kubectl。

运行内联 bash 脚本,我可以尝试

但我认为它无法在 GKE 上找到要使用的集群。那么在这种情况下如何将它与 Cloud Build 一起使用,而不是在本地 shell 上运行呢?

0 投票
1 回答
610 浏览

kubernetes - terraform 中“kubernetes apply -k”的等价物是什么?

我想在我的 EKS 集群中使用 EFS。我正在关注这个eks 研讨会

我需要EFS CSI Driver使用 kustomize 进行部署:

terraform 中上述命令的等价物是什么?

是这样的吗?