尧图精选

Bitnami Concourse Helm Chart 版本演进与安全加固实战:从 0.1.0 到 5.1.47

🕒 发布时间:2026/10/2 8:00:13 📁 来源:尧图网络
云原生容器编排【免费下载链接】chartsBitnami Helm Charts项目地址https://gitcode.com/GitHub_Trending/charts30/charts点击查看免费下载本篇指南以 bitnami/concourse/CHANGELOG.md 为主线系统梳理 Bitnami 发布的 Concourse Helm Chart当前版本 5.1.47Concourse 7.13.2从 2021 年 0.1.0 到 2025 年 5.1.47 的完整演进脉络重点拆解其中的安全默认值提升、网络策略、外部数据库 SSL 连接、镜像验证、PostgreSQL 大版本升级等关键技术变更并结合本仓库 模板源码 与 values.yaml 给出可落地的配置方法与升级方案。读完本文你将掌握该 Chart 的架构组成、关键参数含义、版本升级断点以及将外部数据库安全接入 Concourse 的完整实践。一、Chart 概况与整体架构Concourse 是一个用 Go 编写的自动化系统最常用于 CI/CD其设计目标是扩展到任意复杂度的自动化流水线。本仓库中的 Bitnami Concourse Chart 基于 Chart.yaml 定义Chart 版本5.1.47应用版本7.13.2镜像docker.io/bitnami/concourse:7.13.2-debian-12-r12依赖postgresql条件依赖postgresql.enabled为 true 时引入版本 16.X.X对应 PostgreSQL 17.x与commonBitnami 通用模板库2.x.x许可证Apache-2.0从 templates 目录结构 可以看出该 Chart 由三大部分组成组件模板目录说明Web 节点templates/webDeployment、ConfigMap、Secret、Service、Ingress、NetworkPolicy、PDB、RBAC、ServiceAccount、TLS Secrets承载 ATCWeb UI 与 API与 TSASSH 协调服务Worker 节点templates/workerDeployment / StatefulSet由worker.mode选择、HPA、NetworkPolicy、PDB、RBAC、ServiceAccount执行流水线任务数据库子图表依赖内置 PostgreSQL默认启用或通过externalDatabase.*连接外部数据库Web 与 Worker 的密钥材料host_key、session_signing_key、worker_key 等通过 Secret 以defaultMode: 0400只读挂载到/bitnami/concourse/concourse-keysWorker 通过CONCOURSE_TSA_HOST指向 Web 的 Gateway Service 完成注册与握手这些细节在 web/deployment.yaml 与 worker/statefulset.yaml 中有完整体现。二、快速安装与参数化部署前置条件来自 README.mdKubernetes 1.23、Helm 3.8.0、底层基础设施支持 PV provisioner、扩缩容场景需要 ReadWriteMany 卷。2.1 一键安装helm install my-release oci://registry-1.docker.io/bitnamicharts/concourse2.2 通过 --set 指定参数helm install my-release \ --set secrets.localUsersadmin:password \ oci://registry-1.docker.io/bitnamicharts/concourse该命令将 Concourse 本地账户用户名与密码设置为admin:password。secrets.localUsers支持username:password或username:bcrypted_password两种格式未设置时自动生成。启用本地认证basic auth由secrets.localAuth.enabled默认true控制对应CONCOURSE_ADD_LOCAL_USER环境变量从 Secret 中读取见 web/deployment.yaml。2.3 使用 YAML 文件覆盖helm install my-release -f values.yaml oci://registry-1.docker.io/bitnamicharts/concourse完整参数清单Global、Common、Web、Worker、流量暴露、Init 容器、数据库、外部数据库等分组共 200 项可查阅 values.yaml 与 README.md 的参数表。三、CHANGELOG 核心演进主线2021–2025CHANGELOG 忠实记录了 Chart 从诞生到当前版本的每一次变更。按大版本归纳演进主线如下版本时间核心变更0.1.02021-07Chart 首次加入 Bitnami 仓库#67991.0.02022-02Chart 标准化端口参数归组为containerPorts映射对齐仓库内其他 Chart1.1.02022-05新增 Conjur 集成#101671.4.02022-08支持以镜像 digestsha256:...替代 tag#118702.0.02022-10PostgreSQL 子图表升级至 12.x3.0.02023-09PostgreSQL 子图表升级至 13.x3.4.02024-02默认启用 NetworkPolicy#233343.6.02024-02支持readOnlyRootFilesystem#238783.7.02024-03自动适配 OpenShift restricted-v2 SCC#240704.0.02024-04提升安全默认值#245415.0.02024-10PostgreSQL 升级至 17.x#297305.1.02024-12引入镜像验证 检测非标准镜像#308725.1.472025-09外部数据库增加 SSL Mode#36249下面逐主题展开讲解这些变更的实质内容与底层实现。四、安全加固演进从 3.x 到 5.x 的纵深防御安全是 2023–2024 年间该 Chart 最主要的演进方向几乎每个 minor 版本都在收紧容器与集群层面的安全默认值。4.1 Pod / 容器安全上下文3.1.0 → 4.0.03.1.02024-01为containerSecurityContext新增seccompProfile支持#21907默认类型为RuntimeDefault。3.2.02024-01改进podSecurityContext与containerSecurityContext的默认值#22106。4.0.02024-04大幅收紧安全默认值#24541具体为Web 节点runAsGroup从0改为1001readOnlyRootFilesystem设为trueweb 节点配合/tmp挂载为 emptyDirresourcesPreset从none改为测试套件可运行的最小档位global.compatibility.openshift.adaptSecurityContext从disabled改为auto。上述默认值在 README.md 的 Web 参数表中可直接核对web.containerSecurityContext.runAsNonRoot: true、privileged: false、allowPrivilegeEscalation: false、capabilities.drop: [ALL]、seccompProfile.type: RuntimeDefault。在模板实现层面安全上下文统一通过common.compatibility.renderSecurityContext渲染见 web/deployment.yaml该 helper 会根据global.compatibility.openshift.adaptSecurityContext的值决定是否剥离runAsUser、runAsGroup、fsGroup交由 OpenShift 平台注入默认 ID。注意Worker 节点因运行容器运行时默认containerd需要特权其runAsUser/runAsGroup默认为0、privileged: true与 Web 节点形成鲜明对比这是由 Concourse Worker 的底层运行机制决定的请勿照搬 Web 的安全上下文。4.2 OpenShift 兼容性3.3.1 / 3.7.0 / 5.0.73.3.12024-01将seLinuxOptions置为 null 以兼容 OpenShift#22575。3.7.02024-03新增对 OpenShift restricted-v2 SCC 的自动适配#24070。5.0.72024-11统一seLinuxOptions的默认值#30348。global.compatibility.openshift.adaptSecurityContext支持三种取值auto检测到运行集群为 OpenShift 时自动适配、force始终适配、disabled不执行适配。4.3 ServiceAccount Token 挂载收敛3.3.03.3.0 将 service-account token 的自动挂载从 ServiceAccount 声明迁移到 Pod 声明#22391通过web.automountServiceAccountToken/worker.automountServiceAccountToken控制。该 Chart 默认automountServiceAccountToken: truePod 级别同时serviceAccount.automountServiceAccountToken默认为false在 web/deployment.yaml 中有明确体现。4.4 NetworkPolicy3.4.03.4.0 起默认创建 NetworkPolicy#23334。以 web/networkpolicy.yaml 为例默认策略同时声明Ingress与Egress两类策略Ingress放行 http8080、tsa2222、pprof2221端口若web.networkPolicy.allowExternal为 false则仅允许来自本 Chart Web/Worker Pod、带-client: true标签的 Pod 以及ingressNSMatchLabels/ingressNSPodMatchLabels匹配的命名空间访问。Egress默认allowExternalEgress: true时允许全部出站否则只放行 DNS53、Web 与 Worker 之间的互访端口、PostgreSQL 端口内置数据库时仅限同 Release 的 postgresql Pod。Worker 侧对应 worker/networkpolicy.yaml默认同样开启。4.5 PDB 与健康探针4.1.0 → 4.2.44.1.02024-05PDBPodDisruptionBudget评审#25869。4.2.42024-06将 PDB 与模板中对齐#26688。4.2.12024-05为 web 与 worker 使用不同的 liveness/readiness 探针#26340——Web 的 readiness 通过 HTTP GET{baseUrl}/api/v1/info检查liveness 使用 TCP 探测 http 端口Worker 的探针统一指向 health 端口 8888httpGet: //tcpSocket: healthz。当前默认值Web/Worker 的 liveness、readiness 均启用initialDelay 10s、period 15s、timeout 3sstartup 探针默认关闭并支持customLivenessProbe/customReadinessProbe/customStartupProbe完全覆盖默认探针。4.6 镜像验证与非标准镜像检测4.2.0 / 5.1.04.2.02024-05当原始镜像被替换时给出警告#26189。5.1.02024-12引入镜像验证能力同时检测非标准镜像#30872。如需关闭验证可设置global.security.allowInsecureImages: true默认false见 values.yaml。该机制配合 Bitnami Secure ImagesBSI体系基于安全加固的 Photon Linux 构建提供近乎零 CVE 的镜像、VEX 漏洞声明、SBOM 与 in-toto 供应链来源证明。五、数据库内置 PostgreSQL 与外部数据库 SSL 模式5.1 内置 PostgreSQL默认postgresql.enabled: trueChart 会附带部署 Bitnami PostgreSQL 子图表默认创建用户bn_concourse、数据库bitnami_concourse见 README.md 数据库参数表。Web 的 db-migrate 与 concourse 容器通过CONCOURSE_POSTGRES_*系列环境变量连接数据库。5.2 外部数据库使用托管数据库或共享数据库时关闭内置 PostgreSQL 并配置externalDatabase.*postgresql.enabledfalse externalDatabase.hostmyexternalhost externalDatabase.usermyuser externalDatabase.passwordmypassword externalDatabase.databasemydatabase externalDatabase.port5432未指定externalDatabase.existingSecret时templates/config/secret-external-db.yaml 会自动生成名为release-externaldb的 Secret 保存数据库密码。5.3 SSL Mode5.1.47 的新能力5.1.472025-09-11PR #36249为外部数据库新增了 SSL Mode 支持新增参数externalDatabase.sslmode取值与含义如下取值说明disable不使用 SSL默认值require强制启用 SSL但不校验服务器证书verify-ca启用 SSL 并校验服务器证书由受信任 CA 签发verify-full启用 SSL校验 CA 且要求服务器证书主机名与连接主机一致最高安全级别底层实现位于 templates/_helpers.tpl 的concourse.database.sslmode定义{{- define concourse.database.sslmode -}} {{- ternary disable .Values.externalDatabase.sslmode .Values.postgresql.enabled | quote -}} {{- end -}}即启用内置 PostgreSQL 时固定为disable集群内网络使用外部数据库时透传用户配置的externalDatabase.sslmode。该值通过CONCOURSE_POSTGRES_SSLMODE环境变量注入 Web 主容器与 db-migrate init 容器见 web/deployment.yaml同时concourse.database.host、concourse.database.port两个 helper 也以同样的 ternary 模式解析主机与端口内置时固定 5432。生产实践建议使用云厂商托管 PostgreSQL如 RDS、Cloud SQL时优先设置externalDatabase.sslmodeverify-full并配合externalDatabase.existingSecret复用已有的凭据 Secret避免密码以明文写入 values 文件。六、功能特性增强认证、密钥与扩展配置6.1 Conjur 集成1.1.01.1.02022-05PR #10167引入 Conjur 作为凭证管理器。配置项集中在web.conjur.*与secrets.conjur*web.conjur.enabled启用 Conjur 集成web.conjur.applianceUrlConjur 实例地址必填web.conjur.pipelineSecretTemplate/teamSecretTemplate/secretTemplate流水线级、团队级、通用级密钥路径模板默认分别为concourse/{{.Team}}/{{.Pipeline}}/{{.Secret}}、concourse/{{.Team}}/{{.Secret}}、concourse/{{.Secret}}secrets.conjurAccount/conjurAuthnLogin/conjurAuthnApiKey/conjurAuthnTokenFile/conjurCACert认证与证书配置。_helpers.tpl 中的concourse.web.conjur.validateValues会在渲染阶段强制校验启用 Conjur 时applianceUrl、conjurAccount、conjurAuthnLogin必须设置且conjurAuthnApiKey与conjurAuthnTokenFile二选一、不可同时设置。6.2 镜像 digest 支持1.4.01.4.02022-08PR #11870允许通过image.digest以sha256:...形式锁定镜像设置后优先于 tag。这与 Bitnami 建议的不可变 tagimmutable tags实践相辅相成可确保生产环境镜像不被同一 tag 的新版本悄悄替换。6.3 Ingress 与流量暴露1.2.02022-05新增ingress.extraRules特性#10253。1.3.02022-05补充缺失的 service 参数#10404。当前 Ingress 配置支持ingress.enabled、ingress.hostname默认concourse.local、ingress.tls、ingress.selfSignedHelm 自签证书、ingress.extraHosts、ingress.extraPaths、ingress.extraTls、ingress.secrets、ingress.extraRules等全套参数。Web 服务默认类型为LoadBalancerHTTP 80 / HTTPS 443Worker Gateway 服务默认ClusterIPTSA 2222。6.4 Worker 弹性伸缩HPAWorker 支持基于worker.autoscaling.enabled开启 HPA可配置maxReplicas、minReplicas、builtInMetrics与customMetrics对应 templates/worker/horizontalpodautoscaler.yaml。Worker 默认replicaCount: 2、mode: deployment也可切换为statefulset以使用稳定的 Pod 身份与持久卷。6.5 资源预设与自定义资源3.5.12024-02PR #23437引入resourcesPreset支持取值none/nano/micro/small/medium/large/xlarge/2xlarge自动生成resources段。但官方明确建议生产环境直接使用resources手动配置 CPU 与内存请求/限制因为预设值无法完全适配具体业务负载该说明也出现在 README.md。6.6 认证会话与会话签名web.auth.duration控制 token 有效期默认24hweb.auth.cookieSecure控制 cookie 的 Secure 标志默认false开启 HTTPS 时应设为trueweb.auth.passwordConnector指定fly login -u ... -p ...使用的密码连接器web.auth.mainTeam.localUser以逗号分隔列表指定 main 团队本地用户默认user。七、升级指南跨大版本的关键注意点CHANGELOG 与 README.md 的 Upgrading 章节 共同给出了各 major 版本的升级要点7.1 1.0.0命名标准化端口参数全面归组web.containerPort、web.tsa.containerPort、web.tsa.debugContainerPort、web.tls.containerPort并入web.containerPortsworker.*与service.web.*、service.workerGateway.*同理。升级前需检查自定义 values 是否引用了旧参数名。7.2 2.0.0 / 3.0.0PostgreSQL 子图表大版本2.0.0 升级至 PostgreSQL 12.x3.0.0 升级至 13.x均为破坏性变更需按子图表官方升级说明迁移数据。7.3 4.0.0安全默认值变更易破坏自定义脚本web节点runAsGroup由0变为1001readOnlyRootFilesystem设为trueresourcesPreset由none提升至最小可用档OpenShift 适配策略默认改为auto。若部署中依赖旧的运行用户或可写根文件系统如自定义 init 脚本升级后可能异常需要显式回退这些默认值。7.4 5.0.0PostgreSQL 17.x5.0.02024-10-03PR #29730将 PostgreSQL 子图表提升至 16.0.0即 PostgreSQL 17.x为破坏性大版本变更需遵循 PostgreSQL 官方升级流程pg_dump/restore 或 pg_upgrade后再升级 Chart。7.5 5.1.0镜像验证默认开启升级至 5.1.0 后默认启用镜像验证如私有环境无法完成验证可设置global.security.allowInsecureImages: true关闭。7.6 凭据更新与备份恢复凭据更新Chart 升级时复用先前渲染的 Secret 或web.existingSecret指定的 Secret。可通过helm upgrade传入新的secrets.localUsersusername:password或指定新的web.existingSecret完成轮换。注意部署后无法用 Helm 直接修改应用访问凭据需要删除 PV 重新部署或借助应用自带管理工具。备份恢复使用 Velero 备份源部署的持久卷并挂载到新部署具体流程见 README.md 的 Backup and restore 章节。八、源码级验证关键环境变量与模板对应关系为便于读者继续深入这里列出 CHANGELOG 中主要变更对应的模板实现位置变更主题源码/配置位置关键环境变量或参数外部数据库 SSLtemplates/_helpers.tpl、templates/web/deployment.yamlCONCOURSE_POSTGRES_SSLMODE、externalDatabase.sslmode外部数据库密码 Secrettemplates/config/secret-external-db.yamlexternalDatabase.password/externalDatabase.existingSecretWeb 安全上下文templates/web/deployment.yamlweb.podSecurityContext、web.containerSecurityContextWorker 安全上下文与运行时templates/worker/statefulset.yaml、templates/worker/deployment.yamlworker.runtime默认containerd、worker.containerSecurityContextNetworkPolicytemplates/web/networkpolicy.yaml、templates/worker/networkpolicy.yamlweb.networkPolicy.*、worker.networkPolicy.*镜像验证values.yamlglobal.security.allowInsecureImagesConjur 集成校验templates/_helpers.tplconcourse.web.conjur.validateValuesPDBtemplates/web/poddisruptionbudget.yaml、templates/worker/poddisruptionbudget.yamlweb.pdb.*、worker.pdb.*worker 默认 minAvailable2Worker 持久化templates/worker/statefulset.yamlworker.persistence.*默认 8Gi、ReadWriteOnce结语Bitnami Concourse Helm Chart 的版本演进0.1.0 → 5.1.47清晰展现了两个并行主线对外部生态的开放外部数据库、Conjur 凭证管理、Ingress 多域名、镜像 digest与对内安全基线的持续收紧非 root 运行、只读根文件系统、seccomp、SELinux、NetworkPolicy、镜像验证。对于生产部署建议以 5.1.47 为基线显式配置resources、externalDatabase.sslmodeverify-full使用外部数据库时、web.auth.cookieSecuretrue启用 HTTPS 时并按 7.3–7.5 节的断点规划升级路径。赞分享云原生容器编排【免费下载链接】chartsBitnami Helm Charts项目地址https://gitcode.com/GitHub_Trending/charts30/charts点击查看免费下载相关推荐AG-UI Dart SDK 版本演进深度解读从 0.1.0 到 0.3.0 的协议对齐、安全加固与工程化实践AG UI Dart SDK 版本演进深度解读从 0.1.0 到 0.3.0 的协议对齐、安全加固与工程化实践 AG UIAgent User Intera人工智能AI AgentProwler MCP Server 版本演进全解析从 0.1.0 到 0.12.0 的工具迭代、错误处理重构与安全加固Prowler MCP Server 版本演进全解析从 0.1.0 到 0.12.0 的工具迭代、错误处理重构与安全加固 Prowler MCP Server网络安全应用安全合规审计风险控制云原生冰与火之歌ice.js 应用部署完整指南冰与火之歌ice.js 应用部署完整指南 引言 开发完成一套基于 ice.js基于 React 的渐进式应用框架的前端项目后如何将其高效、稳定地发布到线前端Web框架SSR前端构建插件系统微前端跨平台上一篇Open WebUI搜索结果优化指南重排序模型配置与实战下一篇Redis高可用核心PSYNC同步机制深度解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →