云原生容器编排【免费下载链接】chartsBitnami Helm Charts项目地址https://gitcode.com/GitHub_Trending/charts30/charts点击查看免费下载Jenkins 是业界广泛使用的开源 CI/CD 服务器而 bitnami/jenkins 则是 Bitnami 官方维护、用于在 Kubernetes 集群上以 Helm 方式部署 Jenkins 的 Helm Chart。本文以 bitnami/jenkins/CHANGELOG.md 的完整版本记录为主线结合 bitnami/jenkins/README.md 与 bitnami/jenkins/values.yaml 的配置清单系统梳理该 Chart 从 2018 年至今的演进脉络、关键能力与安全默认值变化并为读者提供可直接复用的安装、配置与跨大版本升级方案。Chart 现状与版本基线在展开版本演进之前先明确当前 Chart 的元数据基线参见 bitnami/jenkins/Chart.yaml字段当前值Chart 版本13.6.18appVersionJenkins 版本2.516.2主镜像docker.io/bitnami/jenkins:2.516.2-debian-12-r0Agent 镜像docker.io/bitnami/jenkins-agent:0.3327.0-debian-12-r1工具镜像docker.io/bitnami/os-shell:12-debian-12-r51API 版本v2Helm 3 Chart依赖bitnami/common库 Chart2.x.xChart 的annotations.images记录了镜像清单licenses为 Apache-2.0。值得注意的变化是自 12.1.0 起 Bitnami 使全部 Helm Chart 100% 支持 OCI 分发因此当前推荐通过oci://registry-1.docker.io/bitnamicharts/jenkins直接安装。安装与基础使用前置条件根据 bitnami/jenkins/README.md 的 Prerequisites 小节部署本 Chart 需要Kubernetes 1.23Helm 3.8.0底层基础设施支持 PV Provisioner若要对 Deployment 进行扩容则需要 ReadWriteMany 卷快速安装最简安装只需一条命令helm install my-release oci://registry-1.docker.io/bitnamicharts/jenkins该命令以默认配置将 Jenkins 部署到集群。若使用自定义仓库地址需将REGISTRY_NAME与REPOSITORY_NAME占位符替换为实际值Bitnami 官方对应registry-1.docker.io与bitnamicharts。通过--set指定管理员账号密码的安装方式helm install my-release \ --set jenkinsUseradmin \ --set jenkinsPasswordpassword \ oci://REGISTRY_NAME/REPOSITORY_NAME/jenkins也可以使用 YAML 值文件helm install my-release -f values.yaml oci://REGISTRY_NAME/REPOSITORY_NAME/jenkins部署完成后的访问方式Chart 的 templates/NOTES.txt 会根据service.type与ingress.enabled动态给出访问指引LoadBalancer默认等待外部 IP 分配后访问http://$SERVICE_IP/NodePort通过$NODE_IP:$NODE_PORT/访问ClusterIP使用kubectl port-forward svc/RELEASE 8080:80转发访问Ingress将ingress.hostname解析到集群外部 IP 后访问http(s)://hostname。登录账号即jenkinsUser默认user密码从 Secret 中读取echo Username: user echo Password: $(kubectl get secret --namespace default my-release -o jsonpath{.data.jenkins-password} | base64 -d)从源码结构看密码凭据由 templates/secrets.yaml 通过common.secrets.passwords.manage模板生成若未显式设置jenkinsPassword则自动生成随机 10 位字母数字字符串usePasswordFilestrue13.6.0 起默认意味着凭据以文件方式挂载而非环境变量降低泄密风险。核心配置参数全景bitnami/jenkins/values.yaml 与 README 的参数表共同构成了本 Chart 的完整可配置面按功能域划分如下。全局与公共参数参数说明默认值global.imageRegistry全局镜像仓库global.imagePullSecrets全局镜像拉取 Secret 数组[]global.security.allowInsecureImages允许跳过镜像验证falseglobal.compatibility.openshift.adaptSecurityContextOpenShift restricted-v2 SCC 自动适配auto/force/disabledautoreplicaCount控制器副本数1usePasswordFiles凭据以文件形式挂载truediagnosticMode.enabled诊断模式关闭探针、覆盖启动命令falseJenkins 本体配置参数说明默认值jenkinsUserJenkins 用户名userjenkinsPassword密码未设置则随机生成jenkinsHomeJenkins 主目录/bitnami/jenkins/homejavaOpts自定义 JVM 参数[]plugins首次启动时安装的插件列表[]extraPlugins追加插件[]latestPlugins是否下载全部插件最新依赖trueoverridePlugins清空 Jenkins Home 内插件后全新安装falseinitScripts挂载到/docker-entrypoint-initdb.d的初始化脚本.sh/.groovy{}initHookScripts挂载到$JENKINS_HOME/init.groovy.d的钩子脚本{}disableInitialization跳过首次引导初始化no需要特别说明的是11.0.0 起镜像不再预装插件插件必须通过plugins/extraPlugins显式声明或登录 Jenkins 后手动安装overridePluginstrue则用于对已初始化的 Pod 强制重建插件集合。流量暴露与 Ingressservice.type默认LoadBalancerservice.ports.http/https默认80/443对应容器端口8080/8443。Ingress 相关参数ingress.enabled、ingress.hostname、ingress.tls、ingress.extraHosts、ingress.extraTls、ingress.secrets、ingress.selfSigned等支持单主机、多主机、cert-manager 注解自动签发及 Helm 自签证书等场景TLS Secret 命名约定为hostname-tls。此外agentListenerService默认以ClusterIP类型在 50000 端口暴露 Jenkins agent listener。持久化参数说明默认值persistence.enabled启用 PVCtruepersistence.storageClass存储类-表示禁用动态供给persistence.existingClaim复用已有 PVCpersistence.size卷大小8GivolumePermissions.enabled初始化容器修正卷属主falseJenkins 数据与配置存放在镜像内/bitnami/jenkins路径下PVC 保证数据跨 Deployment 生命周期留存。默认 accessModes 为ReadWriteOnce若要按 README 前置条件扩容副本需改用支持ReadWriteMany的存储类。健康探针与调度探针默认值详见 bitnami/jenkins/values.yamllivenessProbe初始延迟 180s、周期 10s、超时 5s、失败阈值 6readinessProbe初始延迟 30s、周期 5s、超时 3s、失败阈值 3startupProbe默认关闭。三者均支持customXxxProbe整体覆盖。调度相关支持affinity、nodeSelector、tolerations、topologySpreadConstraints、podAffinityPreset/podAntiAffinityPreset默认soft/nodeAffinityPreset预设等。RBAC 与 ServiceAccountrbac.create默认true渲染 templates/role.yaml 与 templates/rolebinding.yamlrbac.rules可追加自定义规则serviceAccount.create默认true支持serviceAccount.name、annotations与automountServiceAccountToken自定义。版本演进主线从 0.4.x 到 13.x 的关键里程碑CHANGELOG 完整记录了每个版本背后的变更动机。以下按大版本梳理影响使用方式的关键节点。早期阶段0.4.x ~ 2.x20182018 年 Chart 从0.4.66开始持续跟随 Jenkins LTS 镜像版本2.107.3→2.121.x→2.138.x。0.4.68改为使用 Jenkins LTS Docker 镜像版本1.1.0新增 Jenkins 环境变量支持1.2.0引入全局镜像仓库选项。2.0.0引入 Jenkins exporter 与service.type参数2.2.0支持全局imagePullSecrets2.3.0引入 Ingress rules 与命名空间支持。3.x探针与资源可配置化20193.1.0允许自定义 liveness/readiness 探针。3.3.0引入全局 StorageClass 配置3.3.1起在无依赖的 Chart 中删除冗余的 storageClass 模板。3.4.0使用bitnami/jenkins-exporter作为 metrics exporter。4.x ~ 5.0.0非 root 化与 apps/v12019~20204.0.0Deployment 的apiVersion升级为apps/v1。由于 GroupVersionKind 变更在 Kubernetes 中被视为不兼容操作无法原地升级这是 Helm 升级路径上的一个破坏性节点。5.0.0Jenkins 迁移为非 root 运行。此前容器以root用户启动、Jenkins 服务以jenkins用户运行此后容器与服务统一以用户jenkinsuid1001运行不再允许特权操作启用持久化时无法向后兼容。6.0.0Helm v3 化20206.0.0适配apiVersion: v2的 Chart 格式正式拥抱 Helm v32020 年 11 月 Helm v2 支持终止。6.1.0引入bitnami/common库 Chart 作为依赖提供标签、探针、资源预设、Secret 管理等一系列公共模板。7.x标准标签与 Ingress 现代化2020~20217.0.0Chart 标签全面切换为 Helm 标准标签app.kubernetes.io/name、app.kubernetes.io/instance等向后兼容性不再保证升级前需先删除旧 Deployment。7.2.0Ingress 适配 Kubernetes 1.207.3.0新增hostAliases支持。8.0.0 ~ 9.0.0标准化与镜像变更2021~20228.0.0跟随 Bitnami Jenkins 容器镜像Notable changesJENKINS_HOME 等路径调整进行预防性大版本提升并提供通过--set jenkinsHome/bitnami/jenkins/jenkins_home配合清理旧数据的升级方案。9.0.0Chart 全面标准化重命名多个参数以对齐 Bitnami 仓库其他 Chartservice.port→service.ports.http、service.httpsPort→service.ports.https、serviceMonitor.additionalLabels→serviceMonitor.labels。10.0.0弃用 metrics 相关能力。由于上游jenkins-exporter项目停止维护Chart 移除了 metrics 部分9.0.7/9.0.6 曾修复 metrics service 与 servicemonitor 的问题随后整体移除。11.0.0移除预装插件202211.0.0实际登记为 10.3.2 的后续Chart 不再包含预装插件插件安装统一通过plugins参数或 Jenkins 官方插件管理界面完成。同年10.3.0支持镜像 digest 固定image.digest优先于 tag11.0.3支持自定义探针覆盖默认探针。12.x安全能力集中建设期2023~202412.x 是安全特性最密集的版本段体现了 Bitnami 对安全默认值的持续投入12.3.0支持自定义标准标签commonLabels。12.4.0增加对PSAPod Security Admissionrestricted 策略的支持。12.5.0强化podSecurityContext与containerSecurityContext补齐关键安全字段。12.6.0将 service-account token 的自动挂载声明移动到 Pod 声明层面。12.7.0默认启用 NetworkPolicy对应 templates/networkpolicy.yaml默认允许外部入口与出口kubeAPIServerPorts默认[443, 6443, 8443]。12.8.0引入resourcesPreset资源预设能力none/nano/micro/small/medium/large/xlarge/2xlarge详见 bitnami/common。12.10.0支持readOnlyRootFilesystem。12.11.0支持 OpenShift restricted-v2 SCC 自动适配先disabled13.0.0 后改为auto。期间12.6.1将seLinuxOptions置空以兼容 OpenShift12.6.7等版本持续跟随组件版本。13.x安全默认值全面收紧2024~202513.x 是本 Chart 的安全收紧时代也是当前主流使用的版本线13.0.0大幅改进安全默认值破坏性变更包括runAsGroup从0改为1001、readOnlyRootFilesystem设为true、resourcesPreset从none提升到测试套件可运行的最小规格注意resourcesPreset不面向生产生产应使用resources精确配置、OpenShift 适配默认值从disabled改为auto。13.1.0为 reload-configuration-as-code sidecar 容器增加资源配置。13.2.0引入replicaCount以增强 Jenkins 稳定性多副本部署需要 ReadWriteMany 卷同时区分 liveness 与 readiness 探针语义。13.3.0当用户替换原始镜像时打印安全警告对应 NOTES.txt 中common.warnings.modifiedImages的渲染逻辑。13.5.0引入镜像验证image verification要关闭可设置global.security.allowInsecureImagestrue。13.6.0usePasswordFiles默认改为true凭据以文件挂载代替环境变量进一步提升安全性。从源码结构看上述安全默认值均落地于 bitnami/jenkins/values.yaml 的podSecurityContextfsGroup: 1001与containerSecurityContextrunAsUser: 1001、runAsGroup: 1001、runAsNonRoot: true、readOnlyRootFilesystem: true、allowPrivilegeEscalation: false、capabilities.drop: [ALL]、seccompProfile.type: RuntimeDefault等区块并在 templates/deployment.yaml 中渲染为 Pod/容器规范。Configuration as Code 与 Kubernetes Agent配置即代码实验特性configAsCode区块要求安装configuration-as-code插件允许以 YAML 描述 Jenkins 配置configAsCode.enabled开启该能力securityRealm、authorizationStrategy、security、extraJenkins、extraConfig、extraConfigFiles分别注入 JCasC 文件的对应区块configAsCode.existingConfigmap可挂载既有配置autoReloadsidecar默认开启会在 ConfigMap 更新后自动触发配置重载初始延迟 360s、重试 12 次、间隔 10s并默认以非 root、只读根文件系统、seccompProfile: RuntimeDefault的强安全上下文运行注意经 UI 手工修改的配置会被重载覆盖。对应模板见 templates/casc-cm.yamlJCasC 文件以 ConfigMap 形式注入。Kubernetes Agent实验特性agent.enabledtrue时Chart 会通过 JCasC 生成 Kubernetes cloud 配置agent.image默认bitnami/jenkins-agent指定 agent 镜像agent.templateLabel默认kubernetes-agent作为 Job/Pipeline 中匹配的标签agent.podLabels、agent.annotations、agent.sidecars、agent.command/args、agent.containerExtraEnvVars/podExtraEnvVars定制 agent Podagent.extraAgentTemplate扩展默认模板agent.extraTemplates提供完全自定义模板agent.resourcesPreset默认smallagent.containerSecurityContext默认关闭enabled: false。注意 README 明确指出agent 配置依赖configAsCode.enabledtrue才会生效extraKubernetes与extraClouds同样如此。网络策略与流量管控自 12.7.0 起 NetworkPolicy 默认开启networkPolicy.enabled: true。相关参数networkPolicy.allowExternal默认true允许任意来源访问监听端口设为false时仅允许携带匹配标签的 Pod 访问networkPolicy.allowExternalEgress默认true允许 Pod 访问任意出口networkPolicy.kubeAPIServerPortskube-apiserver 可达端点列表默认[443, 6443, 8443]可按集群实际收紧networkPolicy.extraIngress/extraEgress追加自定义出入站规则networkPolicy.ingressNSMatchLabels/ingressNSPodMatchLabels放行来自特定命名空间/标签 Pod 的流量。模板实现位于 templates/networkpolicy.yaml其中 agent listener 端口50000的入口规则在 13.0.1 中被补充加入确保 agent 连接受 NetworkPolicy 约束时仍可建立。PodDisruptionBudget 与高可用pdb.create默认true渲染 templates/pdb.yamlpdb.minAvailable与pdb.maxUnavailable二者均留空时maxUnavailable默认为1结合replicaCount13.2.0 引入、podAntiAffinityPreset: soft与 ReadWriteMany 卷可实现控制器多副本部署。升级与迁移指南通用注意事项凭据在首次启动时固化部署后无法通过 Helm 修改账号密码需删除 PV 重新部署或使用 Jenkins 内置管理工具重置密码指引见官方文档随后用以下命令同步 Secretkubectl create secret generic SECRET_NAME --from-literaljenkins-passwordPASSWORD --dry-run -o yaml | kubectl apply -f -生产环境强烈建议使用不可变镜像 tag镜像随 Chart 更新同 tag 可能被替换内容。13.5.0 升级要点13.5.0 引入镜像验证若需关闭设置global.security.allowInsecureImagestrue。13.0.0 升级要点安全默认值变更可能影响既有自定义或 init 脚本若受影响应回退为旧默认值runAsGroup改回0、readOnlyRootFilesystemfalse、resourcesPresetnone、global.compatibility.openshift.adaptSecurityContextdisabled。11.0.0 升级要点不再预装插件需要按需重新安装。10.0.0 升级要点metrics 段移除bitnami/jenkins-exporter上游停维需要自行接入监控方案。9.0.0 升级要点按上文的参数重命名表同步 valuesservice.port→service.ports.httpservice.httpsPort→service.ports.https。8.0.0 升级要点示例以 release 名jenkins为例的迁移流程升级前务必先备份 PV 数据如使用 Veleroexport JENKINS_PASSWORD$(kubectl get secret --namespace default jenkins -o jsonpath{.data.jenkins-password} | base64 -d) kubectl delete deployments.apps jenkins helm upgrade jenkins oci://REGISTRY_NAME/REPOSITORY_NAME/jenkins --set jenkinsPassword$JENKINS_PASSWORD --set jenkinsHome/bitnami/jenkins/jenkins_home升级后清理不应持久化的旧目录kubectl exec -it $(kubectl get pod -l app.kubernetes.io/instancejenkins,app.kubernetes.io/namejenkins -o jsonpath{.items[0].metadata.name}) -- find /bitnami/jenkins -mindepth 1 -maxdepth 1 -not -name jenkins_home -exec rm -rf {} \;7.0.0 及更早版本7.0.0 起标签标准化升级前先删除旧 Deployment 再用--set jenkinsPassword$JENKINS_PASSWORD执行helm upgrade6.1.0 起引入bitnami/common依赖升级前务必执行依赖更新helm dependency update5.0.0 起非 root 运行需迁移数据属主为uid10014.0.0 起 Deployment 使用apps/v1无法原地升级1.0.0 前的历史版本可通过移除 Deployment selector 中chart标签的方式绕过kubectl patch deployment jenkins --typejson -p[{op: remove, path: /spec/selector/matchLabels/chart}]结语从 2018 年的0.4.x到当前的13.6.xbitnami/jenkins 的每一次大版本都对应明确的能力或安全边界变化Helm v3 化6.0.0、非 root 化5.0.0、标准标签7.0.0、参数标准化9.0.0、移除预装插件11.0.0、NetworkPolicy/PSA/只读根文件系统等安全默认值12.x~13.x。对于正在规划或维护 Jenkins 上云方案的团队理解这条演进线不仅能帮助正确选择版本、规避升级陷阱也能让 values.yaml 中数百个配置项真正服务于自身的 CI/CD 治理与安全合规要求。赞分享云原生容器编排【免费下载链接】chartsBitnami Helm Charts项目地址https://gitcode.com/GitHub_Trending/charts30/charts点击查看免费下载相关推荐Bitnami cert-manager Helm Chart 版本演化全解析从 0.1.0 到 1.5.x 的功能与安全演进指南Bitnami cert manager Helm Chart 版本演化全解析从 0.1.0 到 1.5.x 的功能与安全演进指南 本文以 bitnami/c云原生容器编排osquery 部署与运维调试完全指南verbose 模式、配置校验、Watchdog 与数据库排障osquery 部署与运维调试完全指南verbose 模式、配置校验、Watchdog 与数据库排障 本篇指南聚焦 osquery 在 部署与使用层面 的调试云原生容器编排Bitnami Contour Helm Chart 版本演进与升级指南从 0.3.0 到 21.1.x 的功能变迁、安全加固与破坏性变更Bitnami Contour Helm Chart 版本演进与升级指南从 0.3.0 到 21.1.x 的功能变迁、安全加固与破坏性变更 本文以 bitna云原生容器编排上一篇Geyser 资源包配置指南让基岩版玩家自动加载你的服务器资源包下一篇LWM 长对话指南从零部署百万字符聊天机器人到生产落地创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考