Flux v2.7 正式发布
发布时间:2025-10-09 00:00
发布者:心靈之曲
浏览次数:flux v2.7.0 现已正式发布。
主要更新
Flux v2.7 标志着镜像更新自动化功能的正式 GA,同时引入了新的 ExternalArtifact 和 ArtifactGenerator API,用于支持更复杂的源组合与拆分模式。
本次发布还为 Flux 控制器增加了多项新功能,包括支持监控 ConfigMaps 和 Secrets 的引用变更、通过 CEL 表达式扩展依赖的就绪状态评估,以及支持 OpenTelemetry 跟踪 Flux Kustomization 和 HelmRelease 的调和过程。
生态系统方面,发布了新版本的 Flux Operator,集成了集群内镜像自动更新功能,支持 GitLess GitOps 工作流。
镜像更新自动化正式 GA
本版本实现了 Flux Image Automation API 和控制器的 GA。image-reflector-controller 和 image-automation-controller 联动,当容器镜像仓库有新镜像时,会自动更新 Git 仓库中的 Kubernetes 清单。
以下 API 已升级为稳定版 v1:
- ImageRepository
- ImagePolicy
- ImageUpdateAutomation
ImagePolicy API 新增了 .spec.suspend 字段,用于暂停和恢复策略评估。ImageUpdateAutomation 支持 Git 稀疏检出,启用方式是在 image-automation-controller 中添加 --feature-gates=GitSparseCheckout=true 参数。
此外,image-automation-controller 现支持使用 Kubernetes Workload Identity 认证 AzureDevOps 仓库。
不兼容变更:
-
image-reflector-controller 中自 2025 年起弃用的 autologin 参数已移除,用户需在 ImageRepository.spec.provider 设置相应云厂商。
-
ImageUpdateAutomation 中弃用自 2025 年起的 commit 模板字段
.Updated和.Changed.ImageResult被移除,建议迁移到:-
.Changed.FileChanges(详细变更) -
.Changed.Objects(对象级变更) -
.Changed.Changes(扁平变更列表)
-
监控 ConfigMaps 和 Secrets 的变更
从 Flux v2.7 起,kustomize-controller、helm-controller 和 notification-controller 支持监控 ConfigMaps 和 Secrets 的引用变更。
监控的引用字段包括:
-
Kustomization.spec.postBuild.substituteFrom
-
Kustomization.spec.decryption.secretRef
-
Kustomization.spec.kubeConfig.secretRef
-
Kustomization.spec.kubeConfig.configMapRef
-
HelmRelease.spec.valuesFrom
-
HelmRelease.spec.kubeConfig.secretRef
-
HelmRelease.spec.kubeConfig.configMapRef
-
Receiver.spec.secretRef
当被监控的 ConfigMap 或 Secret 变更,且对象标记有 reconcile.fluxcd.io/watch: Enabled 标签时,控制器会立即触发调和。
若想监控所有引用对象而不需要打标签,可通过 --watch-configs-label-selector=owner!=helm 参数配置控制器。
远程集群的 Workload Identity 认证
Flux v2.7 支持在 Kustomization 和 HelmRelease 资源层面配置 Workload Identity,用于 hub-and-spoke 模式中云厂商认证。
这让集群管理员可以使用 hub 集群的云身份认证 spoke 集群,无需创建和管理静态 kubeconfig Secrets。
更多配置详情参考:
-
Kustomization - remote cluster apply
-
HelmRelease - remote cluster apply
对象级 Workload Identity
Flux v2.7 完成了 Kubernetes Workload Identity 对所有支持云厂商认证的 Flux API 的集成,支持以下资源:
-
Bucket
.spec.serviceAccountName(认证 AWS S3、Azure Blob、Google Cloud Storage)
-
GitRepository.spec.serviceAccountName(认证 Azure DevOps)
-
OCIRepository.spec.serviceAccountName(认证 AWS ECR、Azure Container Registry、Google Artifact Registry)
-
ImageRepository.spec.serviceAccountName(同上)
-
Kustomization.spec.decryption.serviceAccountName(认证 AWS KMS、Azure Key Vault、Google KMS)
-
Kustomization.spec.kubeConfig.configMapRef.name(认证远程 AWS EKS、Azure AKS、Google GKE)
-
HelmRelease.spec.kubeConfig.configMapRef.name(同上)
-
Provider.spec.serviceAccountName(认证 Azure DevOps、Azure Event Hub、Google Pub/Sub)
更多配置说明见:
-
AWS Workload Identity
-
Azure Workload Identity
-
GCP Workload Identity
OpenTelemetry 跟踪支持
从 Flux v2.7 起,用户可通过配置类型为 otel 的 Provider,启用 Flux 调和的 OpenTelemetry 跟踪:
apiVersion: notification.toolkit.fluxcd.io/v1beta3 kind:Provider metadata: name:jaeger namespace:flux-system spec: type:otel address:http://jaeger-collector.jaeger:4318/v1/traces
notification-controller 会将 Flux 事件转换为 OTEL span,并基于 Flux 对象层级建立正确的追踪关系。源对象(GitRepository、HelmChart、OCIRepository、Bucket)生成根 span,Kustomization 和 HelmRelease 生成子 span。每个 span 包含事件元数据,服务标识使用告警名称和命名空间。
更多配置细节参考 notification-controller 文档。
控制器改进
-
GitRepository API 支持 GitHub App 的 mTLS 认证。
-
Kustomization API 支持 CEL 表达式扩展依赖就绪状态评估。
-
新增
.spec.ignoreMissingComponents字段,忽略源中缺失的 Kustomize 组件。 -
kustomize-controller 支持针对 Age 密钥的全局 SOPS 解密。
-
kustomize-controller 可配置在检测到新源版本时取消当前健康检查(
--feature-gates=CancelHealthCheckOnNewRevision=true)。 -
HelmRelease API 支持 CEL 表达式扩展依赖就绪状态评估。
-
HelmRelease 新增 RetryOnFailure 策略,改善发布失败处理。
-
Provider API 支持通过
spec.proxySecretRef设置代理,spec.certSecretRef配置 mTLS。 -
Provider API 新增 Zulip 和 OpenTelemetry 跟踪支持。
CLI 改进
-
flux bootstrap和flux install支持--components-extra=source-watcher参数,启用新组件 source-watcher。 -
新增
flux migrate命令,将 Kubernetes etcd 中的 Flux 资源迁移至最新 API 版本。 -
flux debug增加--show-history,显示 Flux 对象调和历史。 -
flux diff支持处理kustomize.toolkit.fluxcd.io/force: Enabled注解。 -
flux create hr增加--storage-namespace参数,改变 Helm 存储对象的命名空间。 -
新增 ImagePolicy 相关命令:
-
flux reconcile image policy -
flux suspend image policy -
flux resume image policy
-
-
新增 ArtifactGenerator 相关命令:
-
flux get artifact generator -
flux export artifact generator -
flux tree artifact generator -
flux events --for ArtifactGenerator/<name></name>
-
Artifact Generators
Flux v2.7 新增 source-watcher 组件,可通过 --components-extra=source-watcher 开启。
source-watcher 控制器实现了 ArtifactGenerator API,支持:
-
多个 Flux 源(GitRepository、OCIRepository、Bucket)组合成单一可部署工件
-
将 monorepo 拆分成多个独立工件,各自拥有独立部署生命周期
-
只在特定路径变更时触发调和,提升效率
-
方便构建由不同团队维护的分布式复杂部署
多源组合示例
ArtifactGenerator 可将多个源组合成单个部署工件,比如将上游 OCI Helm Chart 与组织自定义配置合并:
apiVersion: source.extensions.fluxcd.io/v1beta1
kind:ArtifactGenerator
metadata:
name:podinfo
namespace:apps
spec:
sources:
-alias:chart
kind:OCIRepository
name:podinfo-chart
-alias:repo
kind:GitRepository
name:podinfo-values
artifacts:
-name:podinfo-composite
originRevision:"@chart"
copy:
-from:"@chart/"
to:"@artifact/"
-from:"@repo/charts/podinfo/values.yaml"
to:"@artifact/podinfo/values.yaml"
strategy:Overwrite
-from:"@repo/charts/podinfo/values-prod.yaml"
to:"@artifact/podinfo/values.yaml"
strategy:Merge
---
apiVersion:helm.toolkit.fluxcd.io/v2
kind:HelmRelease
metadata:
name:podinfo
namespace:apps
spec:
interval:15m
releaseName:podinfo
chartRef:
kind:ExternalArtifact
name:podinfo-composite
Monorepo 拆分示例
ArtifactGenerator 可将 monorepo 拆分为多个独立工件,分别管理生命周期:
apiVersion: source.extensions.fluxcd.io/v1beta1
kind:ArtifactGenerator
metadata:
name:app-decomposer
namespace:apps
spec:
sources:
-alias:git
kind:GitRepository
name:monorepo
artifacts:
-name:frontend
originRevision:"@git"
copy:
-from:"@git/deploy/frontend/**"
to:"@artifact/"
-name:backend
originRevision:"@git"
copy:
-from:"@git/deploy/backend/**"
to:"@artifact/"
---
apiVersion:kustomize.toolkit.fluxcd.io/v1
kind:Kustomization
metadata:
name:frontend-service
namespace:apps
spec:
interval:15m
prune:true
sourceRef:
kind:ExternalArtifact
name:frontend
path:./
---
apiVersion:kustomize.toolkit.fluxcd.io/v1
kind:Kustomization
metadata:
name:backend-service
namespace:apps
spec:
interval:15m
prune:true
sourceRef:
kind:ExternalArtifact
name:backend
path:./
backend-service 仅在 deploy/backend/ 变更时触发调和,其他服务不受影响。
更多使用详情见 source-watcher 文档。
支持的版本
Flux v2.4 已停止维护,不再支持。
Flux v2.7 支持以下 Kubernetes 版本:
企业支持方面,CNCF Flux 项目仅支持 Kubernetes 最近三个小版本。对于更早版本,企业用户可通过 ControlPlane 等厂商获取 Flux 企业级支持。
更多详情可查看官方公告。
源码地址:点击下载
# 多个
# etcd
# devops
# kubernetes
# kind
# http
# azure
# 自动化
# 镜像
# history
# 可通过
# 可将
# 新源
# 移除
# 自动更新
# 实现了
# 文档
# 是在
# 分布式
# git
# go
# composer
# github
# app
# ai
# proxy
# google
# bootstrap
# for
# 命名空间
# operator
# Namespace
# Event
# copy
# 对象
# 事件
相关文章:
欧版电池缩水?Xiaomi 17 海外售价、规格曝光!
8条延安精品旅游线路西安发布 革命老区新春文旅市场将大展新气象
从联盟新兵到技术首秀:唯卓仕发布首款L卡口镜头AF16mm F1.8 L
I/O完成关键突破,我国算力核心部件攻克国产化“最后1%”
HUAWEI Mate X7 迎来 2026 首波系统优化,EMUI 新版本提升操作稳定性
1英寸大底+2亿像素传感器已在路上:史无前例
凤无梦电弧落雨连招高效玩法指南
iQOO 15R搭载6.5K冰芯VC散热系统 2月24日发布!
HONOR葵芳体验店开幕 惊喜抢购週即日启动 多款人气智能产品低至1折入手!
Apple 在港正式推出新代 AirTag 物品追蹤工具!卖 $249 更强精準寻找,一图分清较前代有何改进
还在手动设闹钟?鸿蒙 6 日历帮你轻松搞定春运抢票与年货抢购
战场逆转专家三娘水元素全攻略
早报:小米YU7 GT配置汇总 库克透露50周年庆祝计划
曝荣耀Magic9系列规划双2亿像素传感器 今年下半年发
阿里旗下半导体公司“平头哥”发布自研 AI 芯片:真武 810E
飞智x微软联合出品,飞智黑武士5SXBOX授权手柄震撼发布
永志不忘摩托车记忆往日不再任务流程与情感交织的旅程
大丽花光锥终极指南 击破核心装备全解析
接单助手APP如何实现iOS/Android/小程序三端适配?
情人节送女朋友的Vlog相机:佳能PowerShotV1,美肤直出,开机即拍
REDMI Turbo 5 Max首发天玑9500s:2.5K档唯一当代旗舰芯片
京津冀三地文旅盛宴启幕 马年新春共绘协同蓝图
AI教父黄仁勋上海吃小笼包 店家火速推出同款AI算力套餐 42元起
苹果Siri合作案成禁忌话题?Google拒谈苹果AI交易细节 获利模式仍是谜
哈曼拓展软件定义汽车工具链规模化加速软件验证流程与全生命周期更新
苹果iPhone 17e或于2月19日发布 依旧单摄 新增MagSafe
《灵魂骇客2》D加密被新人破解!但只适用于AMD
多地两会明确2026年文旅工作部署
《时空奥德赛》大改战斗系统 整体动作更加流畅!
鸿蒙生态赋能 光大手机银行13.0解锁便民新体验
相关栏目:
【
科技资讯38001 】
【
网络动态13059 】
【
技术学堂11871 】
【
网络推广75774 】
【
品牌营销52040 】
【
AI推广53525 】
【
推荐站点126806 】







