问题描述
在使用 Argo CD 安装 loki-stack 到 Kubernetes 集群时,需要修改 loki-stack 的值。具体来说,他需要修改 charts/loki/values.yaml 文件中的 retention_deletes_enabled 和 retention_period。然而,他面临的问题是,在创建新的应用程序时,只能修改主 loki-stack/values.yaml,无法直接修改 charts/loki/values.yaml。用户想知道正确的操作方法,是否需要克隆仓库或使用 helm pull,然后将代码添加到本地 git 仓库中,并从中创建应用程序。
解决方案
请注意以下操作可能涉及版本差异,确保备份重要数据。
方案1:修改 loki-stack Helm Chart 的值
在 Argo CD 中,正确安装和配置远程 Helm 应用程序可以通过修改 Helm Chart 的值来实现。对于 loki-stack,它包含了多个子 Chart(依赖项),每个子 Chart 都有自己的 values.yaml 文件。以下是详细步骤:
-
首先,你需要了解 loki-stack Helm Chart 的结构以及每个子 Chart 的配置。你可以在 loki-stack 仓库的文档或 Helm Chart 中找到这些信息。
-
找到你想要修改的配置项,比如 retention_deletes_enabled 和 retention_period。
-
创建一个名为 values-customization.yaml 的文件,用于覆盖默认的值。在这个文件中,你只需要指定你想要修改的值,其他值将继续使用默认值。
-
使用 kubectl 或 argocd 命令行工具,通过 Helm 安装 loki-stack。在安装命令中,通过 –values 参数指定刚刚创建的 values-customization.yaml 文件。
下面是一个示例安装命令:
# 使用 Argo CD 安装 loki-stack
argocd app create loki-stack \
--repo https://github.com/your-username/loki-stack-repo.git \
--path path/to/loki-stack \
--values path/to/values-customization.yaml
方案2:使用 Helm Subcharts
Helm 提供了 Subcharts 的功能,允许你在父 Chart 中配置子 Chart 的值。对于 loki-stack 的情况,你可以通过在父 Chart 中配置子 Chart(loki)的值来实现。
-
在你的主 Helm Chart 的 values.yaml 文件中,添加一个 loki 子 Chart 的配置块,并在其中设置 retention_deletes_enabled 和 retention_period。
-
使用 Argo CD 创建应用程序时,指定主 Chart 的路径,并将修改后的 values.yaml 文件作为 values 参数传递给应用程序。
这样,当 Argo CD 安装应用程序时,它会将你在主 Chart 中配置的值应用到 loki 子 Chart。
总结
通过修改 loki-stack 的值来实现在 Argo CD 中安装和配置远程 Helm 应用程序是可行的。你可以选择直接修改子 Chart 的 values.yaml 文件,或者在父 Chart 中配置子 Chart 的值。无论哪种方式,都需要确保你理解 Helm Chart 的结构和配置方式,以便正确地修改和应用配置。
注意:上述方案可能会涉及到 Helm Chart 的版本和结构差异,确保在操作前仔细阅读文档和参考链接。
参考链接:
– Helm Chart Subcharts and Globals
– loki-stack Helm Chart