发布说明

在将 chart 升级到最新版本之前,运行 helm repo update

Airflow Helm Chart 1.16.0 (2025-04-01)

重要变更

默认 git-sync 镜像更新至 4.3.0 (#41411)

Chart 使用的默认 git-sync 镜像现在是 4.3.0,此前版本为 4.1.0

默认 Airflow 镜像更新至 2.10.5 (#46624)

Chart 使用的默认 Airflow 镜像现在是 2.10.5,此前版本为 2.9.3

默认 PgBouncer 镜像更新至 1.23.1 (#47416)

Chart 使用的默认 PgBouncer 镜像现在是 airflow-pgbouncer-2025.03.05-1.23.1,此前版本为 airflow-pgbouncer-2024.01.19-1.21.0

默认 PgBouncer Exporter 镜像更新至 v0.18.0 (#47416)

Chart 使用的默认 PgBouncer Exporter 镜像现在是 airflow-pgbouncer-exporter-2025.03.05-0.18.0,此前版本为 airflow-pgbouncer-exporter-2024.06.18-0.17.0

默认 StatsD exporter 镜像更新至 v0.28.0 (#43393)

Chart 使用的默认 StatsD exporter 镜像现在是 v0.28.0,此前版本为 v0.26.1

新特性

  • 允许将自定义环境变量传递给日志清理 sidecar 容器 (#46003)

  • 允许在 Redis StatefulSet 中使用现有的持久化卷声明 (#41619)

  • 在 Triggerer 中添加 hostAliases 支持 (#41725)

  • 为 Airflow Webserver 启用 HPA (#41955)

  • 为数据库迁移作业添加环境变量支持 (#42345)

  • 支持 Redis Service 使用 NodePort (#41811)

  • 为 DAG 处理器添加心跳指标 (#42398)

  • 选项:为 StatsD 主机启用 ipv6 IP 地址解析支持 (#42625)

  • 允许自定义 worker 中的 podManagementPolicy (#42673)

  • 在 chart 中支持多种执行器 (#43606, #44424)

  • 在 helm chart 中将内部 RPC 服务器替换为 API 服务器 (#44463)

  • 添加 OpenSearch 远程日志选项 (#45082)

  • 为 flower deployment 添加 startupProbe (#45012)

  • 添加 PgBouncer 和 StatsD ingress (#41759)

  • 添加控制日志清理频率的环境变量 (#46237)

改进

  • 更新指标名称以允许多种执行器报告指标 (#40778)

  • 为 ClusterIP 服务添加特定的内部 IP 地址 (#40912)

  • 移除 scheduler 自动 ServiceAccount token (#44173)

  • 更多 PgBouncer secrets 配置控制选项 (#45248)

  • 添加 ti.running 指标导出 (#47773)

  • 添加 startupProbe initialDelaySeconds 的可选配置 (#47094)

  • 引入 worker.extraPorts 以向 worker 容器暴露附加端口 (#46679)

Bug 修复

  • passwordSecretName 为 true 时启用 AIRFLOW__CELERY__BROKER_URL_CMD (#40270)

  • 正确实现 termination grace period seconds (#41374)

  • 将 kerberos 环境变量添加到基础容器环境变量,添加 webserver-config 卷 (#41645)

  • 修复 volumeClaimTemplates 缺少 apiVersionkind 的问题 (#41771)

  • 将全局卷和卷挂载渲染到清理作业中 (#40191) (#42268)

  • 修复 flower ingress 服务引用 (#41179)

  • 修复 scheduler 在本地和持久化模式下的 volumeClaimTemplate (#42946)

  • 修复多种执行器的角色绑定 (#44424)

  • 在 KEDA ScaledObject 中将容器名称设置为 envSourceContainerName (#44963)

  • 更新 scheduler deployment 以支持多种执行器 (#46039)

  • 替换元数据标签中不允许的字符 (#46811)

  • 授予 Airflow API Server 读取 Pod 日志的权限 (#47212)

  • 修复多执行器模式下 scheduler ServiceAccount 自动挂载的问题 (#46486)

仅文档变更

  • 在文档中体现 jobs 支持 extraInitContainers (#41674)

  • 添加如何使用 Kubernetes Secret 配置 PgBouncer 的指南 (#42460)

  • 更新私有 registry 参数描述 (#43721)

  • 修改 kerberos reinitFrequency 参数描述 (#45343)

  • 更新 Helm 驱逐配置指南以体现 workers.safeToEvict 的默认值 (#44852)

  • 添加 storageClassName 可以模板化的信息 (#45176)

  • 修复生产环境指南中 broker-url secret 名称 (#45863)

  • 在文档中将 DAGs 替换为 dags (#47959)

  • 改进 airflowLocalSettings 值描述 (#47855)

  • 保持模板化参数标记方式的一致性 (#46481)

杂项

  • 在 NOTES 中支持模板化主机名 (#41423)

  • 将 Airflow 默认版本设置为 2.10.5 (#46624)

  • 将 triggerer 配置选项 default_capacity 修改为 capacity (#48032)

  • AIP-84 将公共 API 移至 /api/v2 下 (#47760)

  • Chart 中默认使用 FabAuthManager (#47976)

  • 将 PgBouncer 更新至 1.23.1,将 PgBouncer exporter 更新至 0.18.0 (#47416)

  • 将 api-server 移至 8080 端口 (#47310)

  • 在 Airflow 3 中启动 api-server,在 Airflow 2 中启动 webserver (#47085)

  • fastapi-api 命令移至 api-server (#47076)

  • execution_api_server_url 配置移至 core 部分 (#46969)

  • 对 Airflow 3 使用独立的 DAG 处理器 (#45659)

  • quay.io/prometheus/statsd-exporterv0.26.1 更新至 v0.28.0 (#43393)

Airflow Helm Chart 1.15.0 (2024-07-24)

重要变更

默认 Airflow 镜像更新至 2.9.3 (#40816)

Chart 使用的默认 Airflow 镜像现在是 2.9.3,此前版本为 2.9.2

默认 PgBouncer Exporter 镜像已更新 (#40318)

PgBouncer Exporter 镜像已更新至 airflow-pgbouncer-exporter-2024.06.18-0.17.0,解决了 CVE-2024-24786 问题。

新特性

  • 添加 git-sync 容器生命周期钩子 (#40369)

  • 为 jobs 添加初始化容器 (#40454)

  • 添加持久化卷声明保留策略 (#40271)

  • 为 Redis StatefulSet 添加注解 (#40281)

  • 添加 dags.gitSync.sshKey,允许直接在 values 文件中配置 git-sync 私钥 (#39936)

  • 向 git-sync 容器添加 extraEnvFrom (#39031)

改进

  • 使用动态 webserver secret 时,UIAlert 中指向生产环境指南的链接现在在新标签页中打开 (#40635)

  • 支持禁用 extraConfigMapsextraSecrets 上的 helm hooks (#40294)

Bug 修复

  • 将 git-sync ssh secret 添加到 DAG 处理器 (#40691)

  • 修复重复的 safeToEvict 注解 (#40554)

  • 在 values.yaml 中添加缺失的 triggerer.keda.usePgbouncer (#40614)

  • 使用 mysql 后端时,删除开头的 // 字符 (#40401)

仅文档变更

  • 更新 chart 下载链接以使用 Apache 下载 CDN (#40618)

杂项

  • 将 PgBouncer exporter 镜像更新至 airflow-pgbouncer-exporter-2024.06.18-0.17.0 (#40318)

  • 将 Airflow 默认版本设置为 2.9.3 (#40816)

  • 修复 startupProbe 时间注释 (#40412)

Airflow Helm Chart 1.14.0 (2024-06-18)

重要变更

ClusterRoleClusterRoleBinding 名称已更新为唯一 (#37197)

ClusterRole``s and ``ClusterRoleBinding``s created when ``multiNamespaceMode 在启用时已重命名以确保名称唯一

  • {{ include "airflow.fullname" . }}-pod-launcher-role 已重命名为 {{ .Release.Namespace }}-{{ include "airflow.fullname" . }}-pod-launcher-role

  • {{ include "airflow.fullname" . }}-pod-launcher-rolebinding 已重命名为 {{ .Release.Namespace }}-{{ include "airflow.fullname" . }}-pod-launcher-rolebinding

  • {{ include "airflow.fullname" . }}-pod-log-reader-role 已重命名为 {{ .Release.Namespace }}-{{ include "airflow.fullname" . }}-pod-log-reader-role

  • {{ include "airflow.fullname" . }}-pod-log-reader-rolebinding 已重命名为 {{ .Release.Namespace }}-{{ include "airflow.fullname" . }}-pod-log-reader-rolebinding

  • {{ include "airflow.fullname" . }}-scc-rolebinding 已重命名为 {{ .Release.Namespace }}-{{ include "airflow.fullname" . }}-scc-rolebinding

workers.safeToEvict 默认值更改为 False (#40229)

workers.safeToEvict 的默认值现在为 False。这是一个更安全的默认设置,因为它阻止了 K8s Cluster Autoscaler 缩减运行 worker 的节点。如果希望保留之前的行为,可以将此配置设为 True。

默认 Airflow 镜像更新至 2.9.2 (#40160)

Chart 使用的默认 Airflow 镜像现在是 2.9.2,此前版本为 2.8.3

默认 StatsD 镜像更新至 v0.26.1 (#38416)

Chart 使用的默认 StatsD 镜像现在是 v0.26.1,此前版本为 v0.26.0

新特性

  • 为 triggerer 启用 MySQL KEDA 支持 (#37365)

  • 允许 AWS 执行器 (#38524)

改进

  • 允许在组件的环境变量配置中使用 valueFrom (#40135)

  • extraContainersextraInitContainers 中启用模板化 (#38507)

  • 为 pod-template-file 添加 safe-to-evict 注解 (#37352)

  • 支持 KubernetesExecutor 的 workers.command 参数 (#39132)

  • 为 Jobs 添加 priorityClassName (#39133)

  • 为 pod-template-file 添加 Kerberos sidecar (#38815)

  • 为附加容器添加模板化字段支持 (#38510)

Bug 修复

  • workers.safeToEvict 默认值设置为 False (#40229)

仅文档变更

  • 文档说明 extraContainersextraInitContainers 支持模板化 (#40033)

  • 修复 HorizontalPodAutoscaling 文档中的拼写错误 (#39307)

  • 修复文档中支持的 k8s 版本 (#39172)

  • 修复 brokerUrlSecretName 的 YAML 路径中的拼写错误 (#39115)

杂项

  • 将 Airflow 默认版本设置为 2.9.2 (#40160)

  • 将 Redis 镜像限制为 7.2 版本 (#38928)

  • 使用 Kubernetes 1.29 资源构建 Helm values schema (#38460)

  • 在资源文档中添加缺失的容器 (#38534)

  • 将 StatsD Exporter 镜像升级到 0.26.1 (#38416)

  • 移除对 K8S 1.25 的支持 (#38367)

Airflow Helm Chart 1.13.1 (2024-03-25)

重要变更

默认 Airflow 镜像更新至 2.8.3 (#38036)

Chart 使用的默认 Airflow 镜像现在是 2.8.3,此前版本为 2.8.2

Bug 修复

  • 不覆盖 .Values.airflowPodAnnotations (#37917)

  • 修复使用多个同名 multiNamespace releases 时,集群范围 RBAC 命名冲突的问题 (#37197)

杂项

  • Chart: 将 Airflow 默认版本设置为 2.8.3 (#38036)

Airflow Helm Chart 1.13.0 (2024-03-05)

重要变更

默认 Airflow 镜像更新至 2.8.2 (#37704)

Chart 使用的默认 Airflow 镜像现在是 2.8.2,此前版本为 2.8.1

新特性

  • 支持数据库迁移对象和 pods 的特定标签 (#37490)

改进

  • Flower K8s Probe 配置 (#37528)

Bug 修复

  • 移除 webserver service 中重复的 ports 键 (#37356)

  • 向日志清理 sidecar 添加 AIRFLOW_HOME 环境变量 (#37588)

  • 准备可重现软件包时跳过 . 路径 (#37402)

杂项

  • 将 Airflow 默认版本设置为 2.8.2 (#37704)

Airflow Helm Chart 1.12.0 (2024-02-11)

重要变更

helm chart 现在使用更新版本的 bitnami/postgresql 依赖项 (#34817)

bitnami/postgresql 子 chart 版本从 12.10.0 升级到 13.2.24。PostgreSQL 二进制文件版本从 11 升级到 16.1.0

此更改要求现有的 bitnami/postgresql 子 chart 用户使用 pg_dumpallpg_upgrade 手动进行主要版本升级。

温馨提示,建议在生产环境中 设置外部数据库

默认 Airflow 镜像更新至 2.8.1 (#36907)

Chart 使用的默认 Airflow 镜像现在是 2.8.1,此前版本为 2.7.1

默认 PgBouncer 和 PgBouncer Exporter 镜像已更新 (#36898)

PgBouncer 和 PgBouncer Exporter 镜像基于更新的软件/操作系统。

  • pgbouncer: 1.21.0 基于 alpine 3.14 (airflow-pgbouncer-2024.01.19-1.21.0)

  • pgbouncer-exporter: 0.16.0 基于 alpine 3.19 (apache/airflow:airflow-pgbouncer-exporter-2024.01.19-0.16.0)

默认 StatsD 镜像更新至 v0.26.0 (#37187)

Chart 使用的默认 StatsD 镜像现在是 v0.26.0,此前版本为 v0.22.8

默认 Redis 镜像更新至 7-bookworm (#37187)

Chart 使用的默认 Redis 镜像现在是 7-bookworm,此前版本为 7-bullseye

新特性

  • 为 Airflow Workers 启用原生 HPA (#36174)

  • 为 Airflow Kerberos 添加初始化容器 + sidecar 支持 (#35548)

  • 支持将 MySQL 后端作为 KEDA trigger (#36167)

改进

  • 改进 PriorityClass 以提高可调试性 (#36365)

  • 在 DAG 处理器日志清理 sidecar 中添加 securityContexts (#34499)

  • 在 DAG 处理器 wait-for-migrations 容器中添加对 securityContexts 的支持 (#35593)

  • 添加 PVC storageClassName 的模板化支持 (#35581)

  • 为 worker 添加 volumeClaimTemplate (#34986)

  • 添加对 Redis pods priorityClassName 的支持 (#34879)

  • DAGs 卷的可配置挂载路径 (#35083)

  • 添加对自定义 emptyDir 配置的支持 (#34837)

  • 新增启用/禁用 scheduler 和 webserver 的功能 (#36991)

Bug 修复

  • 修复 Airflow 配置中的 StatsD host (#35679)

  • 使用 airflowHome 的值设置 AIRFLOW_HOME 环境变量 (#34839)

  • 更安全的 worker pod 注解 (#35309)

  • 正确设置 worker safeToEvict (#35130)

  • 修复使用 useStandardNaming 时的 Redis broker URL (#34825)

  • usePgbouncer 为 false 时,修复 KEDA 连接中的元数据 DB 和端口 (#34741)

  • 修复使用 useStandardNaming 时的 PgBouncer 连接 (#34787)

仅文档变更

  • 添加关于扩展 Airflow Helm chart 的文档 (#36331)

  • 为 Elasticsearch 连接方案添加注释 (#35588)

  • 添加关于 Virtualenvs 可以避免自定义镜像的需求的说明 (#35306)

杂项

  • 将 Airflow 默认版本设置为 2.8.1 (#36907)

  • 支持 git-sync v4 (#34731)

  • bitnami/postgresql 子 chart 升级到 13.2.24 (#36156)

  • 将 git sync 容器缩进更改为 4 (#35824)

  • 移除对 K8S 1.24 的支持 (#35214)

  • 使用更新版本重建 pgbouncerpgbouncer-exporter 镜像 (#36898)

  • 更新 statsdredis chart 镜像 (#37187)

Airflow Helm Chart 1.11.0 (2023-10-02)

重大变更

支持 helm chart 资源上的命名自定义,某些资源在升级期间可能会被重命名 (#31066)

这是一个新的可选开关 useStandardNaming,为了向后兼容,利用了标准命名约定,它允许在所有资源中充分使用 fullnameOverridenameOverride

升级到 1.11.0 或更高版本时,以下资源将使用默认的 useStandardNaming=false 进行重命名。

  • ConfigMap {release}-airflow-config 重命名为 {release}-config

  • Secret {release}-airflow-metadata 重命名为 {release}-metadata

  • Secret {release}-airflow-result-backend 重命名为 {release}-result-backend

  • Ingress {release}-airflow-ingress 重命名为 {release}-ingress

对于现有安装,您的所有资源将使用新名称重新创建,Helm 将删除之前的资源。

这不会删除 StatefulSet/Deployment 使用的现有日志 PVC,但会使用全新的 PVC 重新创建它们。如果您确实想保留日志历史记录,则需要在部署后手动将这些卷的数据复制到新卷中。此过程可能因您使用的存储后端/类而异。如果您不介意从新的日志/redis 卷开始,您可以直接删除旧的 PVC,例如

kubectl delete pvc -n airflow logs-gta-triggerer-0
kubectl delete pvc -n airflow logs-gta-worker-0
kubectl delete pvc -n airflow redis-db-gta-redis-0

如果您在升级后不更改 useStandardNamingfullnameOverride,您可以照常进行,不会出现意外行为。

bitnami/postgresql 子 chart 更新到 12.10.0 (#33747)

Chart 中使用的 PostgreSQL 子 chart 现在是 12.10.0,之前是 12.1.9

默认 git-sync 镜像更新到 3.6.9 (#33748)

Chart 中使用的默认 git-sync 镜像现在是 3.6.9,之前是 3.6.3

默认 Airflow 镜像更新到 2.7.1 (#34186)

Chart 中使用的默认 Airflow 镜像现在是 2.7.1,之前是 2.6.2

新增特性

  • 添加对 POD 模板中 scheduler 名称的支持 (#33843)

  • 支持 KEDA 对 triggerer 进行扩缩容 (#32302)

  • 添加对容器生命周期 hook 的支持 (#32349, #34677)

  • 支持 helm chart 资源上的命名自定义 (#31066)

  • 为 scheduler 和 webserver 添加 startupProbe (#33107)

  • 允许使用 automountServiceAccountToken 禁用 token 挂载 (#32808)

  • 添加对定义自定义优先级类别的支持 (#31615)

  • 添加对 runtimeClassName 的支持 (#31868)

  • 添加对 workers KEDA trigger 中自定义查询的支持 (#32308)

改进

  • 为清理 job 添加 containerSecurityContext (#34351)

  • 为 PGBouncer metrics exporter 添加现有 secret 支持 (#32724)

  • 允许在 webserver ingress 主机名中使用模板 (#33142)

  • 允许在 flower ingress 主机名中使用模板 (#33363)

  • 为 StatsD 和 webserver 添加 configmap 注解 (#33340)

  • 为 PgBouncer 添加 pod security context (#32662)

  • 添加一个选项,当启用 PgBouncer 时,在 KEDA 中使用直接数据库连接 (#32608)

  • 允许在 cleanup.schedule 中使用模板 (#32570)

  • 为 dag processor 的 waitformigration 容器的 extraVolumeMounts 添加模板支持 (#32100)

  • 能够将额外容器注入到 PgBouncer 中 (#33686)

  • 允许将自定义环境变量添加到 PgBouncer 容器中 (#33438)

  • 添加对 StatsD 容器中环境变量的支持 (#33175)

Bug 修复

  • 在数据库迁移 job 中添加 airflow db migrate 命令 (#34178)

  • workers.terminationGracePeriodSeconds 传递到 KubeExecutor pod 模板中 (#33514)

  • CeleryExecutor 命名空间取决于 Airflow 版本 (#32753)

  • 修复 dag processor 未包含 webserver config 卷的问题 (#32644)

  • Dag processor liveness probe 包含 --local--job-type 参数 (#32426)

  • 根据默认值修改 flower_url_prefix (#33134)

文档变更

  • 添加更明确的生产环境“嵌入式 postgres”排除说明 (#33034)

  • 更新 git-sync 描述 (#32181)

其他

  • 默认 Airflow 版本设为 2.7.1 (#34186)

  • 将 PostgreSQL 子 chart 更新到 12.10.0 (#33747)

  • 将 git-sync 更新到 3.6.9 (#33748)

  • 删除从 helm values 加载环境变量的不必要循环 (#33506)

  • 在 ingress 模板文件中将 common.tplvalues.render 替换为 tpl (#33384)

  • 移除对 K8S 1.23 的支持 (#32899)

  • 修复 chart 命名模板中的注释 (#32681)

  • 删除 workers KEDA 配置部分 chart values 中过时的注释 (#32300)

  • 删除模板文件中不必要的 or 函数 (#34415)

Airflow Helm Chart 1.10.0 (2023-06-26)

重大变更

默认 Airflow 镜像更新到 2.6.2 (#31979)

Chart 中使用的默认 Airflow 镜像现在是 2.6.2,之前是 2.5.3

新增特性

  • 添加对容器 security context 的支持 (#31043)

改进

  • 验证 executorconfig.core.executor 是否匹配 (#30693)

  • 支持 PodDisruptionBudget 的 minAvailable 属性 (#30603)

  • 为 dag processor 的 waitForMigrations 添加 volumeMounts (#30990)

  • 为额外卷添加模板支持 (#30773)

Bug 修复

  • 修复 webserver probe 的超时和周期设置 (#30609)

  • 为 workers 添加缺失的 waitForMigrations (#31625)

  • 为 K8S worker pod 模板添加缺失的 priorityClassName (#31328)

  • 为 dag processor 添加 log groomer sidecar (#30726)

  • 不要将全局 security context 传播到 statsd 和 redis (#31865)

其他

  • 默认 Airflow 版本设为 2.6.2 (#31979)

  • 为 chart license header 使用模板注释 (#30569)

  • 对齐 chart 模板中的 apiVersionkind 顺序 (#31850)

  • 清理 Kubernetes < 1.23 的支持 (#31847)

Airflow Helm Chart 1.9.0 (2023-04-14)

重大变更

默认 PgBouncer 和 PgBouncer Exporter 镜像已更新 (#29919)

PgBouncer 和 PgBouncer Exporter 镜像是基于更新的软件/操作系统。它们也是多平台的 AMD/ARM 镜像。

  • pgbouncer: 基于 alpine 3.14 的 1.16.1 版本 (airflow-pgbouncer-2023.02.24-1.16.1)

  • pgbouncer-exporter: 基于 alpine 3.17 的 0.14.0 版本 (apache/airflow:airflow-pgbouncer-exporter-2023.02.21-0.14.0)

默认 Airflow 镜像更新到 2.5.3 (#30411)

Chart 中使用的默认 Airflow 镜像现在是 2.5.3,之前是 2.5.1

新增特性

  • 为 Airflow webserver 和 scheduler 添加对 hostAliases 的支持 (#30051)

  • 为 StatsD Deployment 和 cleanup CronJob 添加注解支持 (#30126)

  • 为日志 PVC 添加注解支持 (#29270)

  • 为额外 ConfigMap 和 Secrets 添加注解支持 (#30303)

  • 为 PgBouncer 添加 pod 注解支持 (#30168)

  • migrateDatabaseJobcreateUserJob 添加对 ttlSecondsAfterFinished 的支持 (#29314)

  • 添加对使用 Docker 镜像 SHA 摘要的支持 (#30214)

改进

  • 在 Helm Chart 中为额外卷添加模板支持 (#29357)

  • 使 PgBouncer Exporter 的 Liveness/Readiness Probe 超时可配置 (#29752)

  • 启用独立的 trigger 日志记录 (#29482)

Bug 修复

  • config.kubernetes_executor 添加到 values 中 (#29818)

  • 阻止镜像配置中的额外属性 (#30217)

  • 如果 KEDA 启用,则移除 replicas (#29838)

  • 启用时将 kerberos.keytab 挂载到 worker (#29526)

  • 修复为 dag 持久化 PVC 添加注解的问题 (#29622)

  • 修复 bitnami/postgresql 的默认用户名和密码问题 (#29478)

  • 在 pod 模板文件中添加全局卷 (#29295)

  • 为 triggerer service 添加 log groomer sidecar (#29392)

  • 当使用 postgresql.nameOverride 时,Helm 部署失败 (#29214)

文档变更

  • 添加 gitSync 可选环境变量描述 (#29378)

  • 添加 webserver NodePort 示例 (#29460)

  • 在 Helm chart 安装说明中包含 Rancher (#28416)

  • 更改 RSA SSH 主机密钥以反映 Github 的更新 (#30286)

其他

  • 将 Airflow 版本更新到 2.5.3 (#30411)

  • 在 chart 中切换到新版本的 PgBouncer 和 PgBouncer Exporter (#29919)

  • 重新格式化 chart 模板 (#29917)

  • 重新格式化 chart 模板 第2部分 (#29941)

  • 重新格式化 chart 模板 第3部分 (#30312)

  • 替换废弃的 k8s 注册表引用 (#29938)

  • 修复 airflow_dags_mount 格式问题 (#29296)

  • 修复 webserver.service.ports 格式问题 (#29297)

Airflow Helm Chart 1.8.0 (2023-02-06)

重大变更

bitnami/postgresql 子 chart 更新到 12.1.9 (#29071)

安装的 postgresql 版本仍为 11。

如果您使用内置 postgres 数据库升级现有 helm release,您需要删除 release 并重新全新安装,或者手动删除这 2 个对象

kubectl delete secret {RELEASE_NAME}-postgresql
kubectl delete statefulset {RELEASE_NAME}-postgresql

温馨提示,建议在生产环境中 设置外部数据库

此版本的 chart 使用不同的变量名来设置 postgres 数据库中的用户名和密码。

  • postgresql.auth.enablePostgresUser 用于确定是否创建“postgres”管理员账户。

  • postgresql.auth.postgresPassword 设置“postgres”用户的密码。

  • postgresql.auth.usernamepostrgesql.auth.password 用于在需要时为非管理员账户设置凭据。

  • 上一版本 chart 中使用的 postgresql.postgresqlUsernamepostgresql.postresqlPassword 已不再使用。

如果用户更改 Postgres 配置,则需要在其 values 文件中进行这些更改。

此前子 chart 版本为 10.5.3

默认 dags.gitSync.wait 减少到 5 秒 (#27625)

dags.gitSync.wait 的默认值已从 60 秒减少到 5 秒,以降低 DAGs 在 Airflow 组件之间变得不一致的可能性。但是,这将增加到远程 git 仓库的流量。

默认 Airflow 镜像更新到 2.5.1 (#29074)

Chart 中使用的默认 Airflow 镜像现在是 2.5.1,之前是 2.4.1

默认 git-sync 镜像更新到 3.6.3 (#27848)

Chart 中使用的默认 git-sync 镜像现在是 3.6.3,之前是 3.4.0

默认 redis 镜像更新到 7-bullseye (#27443)

Chart 中使用的默认 redis 镜像现在是 7-bullseye,之前是 6-bullseye

新增特性

  • 在 deployment 上添加注解 (#28688)

  • 为 chart 添加全局 volume 和 volumeMounts (#27781)

改进

  • 添加对 webserverConfigConfigMapName 的支持 (#27419)

  • 增强 chart 以允许覆盖 statsd exporter 的命令行参数 (#28041)

  • 在 Services 中添加对 NodePort 的支持 (#26945)

  • 添加 worker log-groomer-sidecar 启用选项 (#27178)

  • 向 Pod 模板文件添加 HostAliases (#27544)

  • 允许 PgBouncer replicas 可配置 (#27439)

Bug 修复

  • 创建 scheduler service 为 LocalKubernetesExecutor 提供任务日志 (#28828)

  • 修复 NOTES.txt 显示正确 URL 的问题 (#28264)

  • 为 LocalKubernetesExecutor 添加 worker service account (#28813)

  • 移除对 1.19 api 的检查 (#28461)

  • 将 airflow_local_settings 添加到所有 airflow 容器 (#27779)

  • 使 job 模板中的自定义环境变量可选 (#27148)

  • 减少默认 gitSync 等待时间 (#27625)

  • 也为 sidecars 添加 extraVolumeMounts (#27420)

  • 修复 PostgreSQL 子 chart 升级后的 PgBouncer 问题 (#29207)

文档变更

  • 增强生产指南,增加一些 Argo 特定的指南 (#29078)

  • 添加关于 Pod 模板镜像的文档说明 (#29032)

  • 更新生产指南的数据库部分 (#28610)

  • 修复 LoadBalancer 代码片段 (#28014)

  • 修复 gitSync 示例代码 (#28083)

  • 更正通过 ssh 克隆仓库的示例 (#27671)

其他

  • 将 Airflow 版本更新到 2.5.1 (#29074)

  • 将 git-sync 更新到 3.6.3 (#27848)

  • bitnami/postgresql 子 chart 升级到 12.1.9 (#29071)

  • 将 redis 更新到 7 (#27443)

  • 替换 helm chart 图标 (#27704)

Airflow Helm Chart 1.7.0 (2022-10-14)

重大变更

默认 Airflow 镜像更新到 2.4.1 (#26485)

Chart 中使用的默认 Airflow 镜像现在是 2.4.1,之前是 2.3.2

新增特性

  • 使清理 job 历史记录可配置 (#26838)

  • 为特定 Airflow 组件添加标签 (#25031)

  • 在 Helm chart values 中添加 StatsD overrideMappings (#26598)

  • 为 StatsD deployment 模板添加 podAnnotations (#25732)

  • 容器特定的额外环境变量 (#24784)

  • 为额外 Secrets 和 ConfigMaps 添加自定义标签 (#25283)

  • 为所有 deployment 添加 revisionHistoryLimit (#25059)

  • 为 Redis StatefulSet 添加 podAnnotations (#23708)

  • 部署独立的 Dag Processor (#23711)

  • 为 webserver probe 添加可配置 scheme (#22815)

  • 为 Helm chart 添加 KEDA HPA 配置支持 (#24220)

改进

  • 为 Airflow scheduler deployment 添加 ‘executor’ 标签 (#25684)

  • 在 Helm chart values 中添加默认 flower_url_prefix (#26415)

  • 为 Celery workers 添加 liveness probe (#25561)

  • result_backend 未设置时,为 celery result backend 使用 sql_alchemy_conn (#24496)

Bug 修复

  • 修复 pod 模板 imagePullPolicy 问题 (#26423)

  • 如果启用了 dag 持久化,则不对 sshKeySecret 声明卷 (#22913)

  • 将 worker 注解传递到生成的 pod 模板中 (#24647)

  • 修复 jobs check 命令的 semver 比较数字问题 (#24480)

  • 在 Airflow 2.5+ 中为 liveness probe 使用 --local 标志 (#24999)

文档变更

  • 改进关于禁用 helm hook 的文档 (#26747)

  • 从 git repo 值中移除 ssh:// 前缀 (#26632)

  • 修复 defaultAirflowRepository 注释 (#26428)

  • 将 DAGs 烘焙到 Docker 镜像中 (#26401)

  • 当使用相同的 DAG tag 时重新加载 pod (#24576)

  • result_backend、dag processor 和 helm uninstall 的少量澄清 (#24929)

  • 为 Release Notes 中的 GitHub PRs 添加超链接 (#24532)

  • Terraform 不应使用 Helm hook 启动 job (#26604)

  • Flux 不应使用 Helm hook 启动 job (#24288)

  • 提供关于如何从私有仓库拉取 Airflow 镜像的详细信息 (#24394)

  • Helm logo 不再是链接 (#23977)

  • 文档说明 chart 中对 LocalKubernetesExecutor 的支持 (#23876)

  • 更新生产指南 (#23836)

其他

  • 默认 Airflow 版本设为 2.4.1 (#26485)

  • 将 Bitnami chart 作为 vendored 依赖项包含进来 (#24395)

  • 移除对 Kubernetes 1.20 的支持 (#25871)

Airflow Helm Chart 1.6.0 (2022-05-20)

重大变更

默认 Airflow 镜像更新到 2.3.0 (#23386)

Chart 中使用的默认 Airflow 镜像现在是 2.3.0,之前是 2.2.4

ingress.enabled 已废弃

现在,不再使用一个标志来控制 webserver 和 flower 的 ingress 资源,而是提供了单独的标志来分别控制它们:ingress.web.enabledingress.flower.enabledingress.enabled 已废弃,但仍会继续同时控制两者。

Flower 默认禁用

使用 CeleryExecutor 时,Flower 默认不再启用。如果您想部署它,请在 values 文件中将 flower.enabled 设置为 true。

新增特性

  • 支持在 volumeClaimTemplates 上使用 annotations (#23433)

  • 为 Helm Chart 添加对 topologySpreadConstraints 的支持 (#22712)

  • Helm 支持 LocalKubernetesExecutor (#22388)

  • 为 Helm chart 中 Redis 添加 securityContext 配置 (#22182)

  • 允许在 Helm DAG PVC 上使用 annotations (#22261)

  • 启用 DAGs 卷挂载的可选 subPath (#22323)

  • 在 PgBouncer Helm 配置中添加了在 auth_file 中覆盖 auth_type 的支持 (#21999)

  • 为 Flower 添加 extraVolumeMounts (#22414)

  • 添加 webserver PodDisruptionBudget (#21735)

改进

  • 确保迁移 job 的消息尽早显示 (#23479)

  • 允许 migration job 和 init container 为可选 (#22195)

  • 在 Airflow 2 中使用 jobs check command 进行 liveness probe 检查 (#22143)

文档变更

  • 在 Helm 生产文档中添加 resultBackendSecretName 警告 (#23307)

其他

  • 将默认 Airflow 版本更新到 2.3.0 (#23386)

  • 将数据库配置移动到新部分 (#22284)

  • Chart 中默认禁用 flower (#23737)

Airflow Helm Chart 1.5.0, (2022-03-07)

重大变更

默认 Airflow 镜像更新到 2.2.4

Chart 中使用的默认 Airflow 镜像现在是 2.2.4,之前是 2.2.3

移除 config.api

此部分配置了 Airflow API 的身份验证后端,但使用的值与 Airflow 默认设置相同,因此无需再次声明。

新增特性

  • 在 jobs 中添加对自定义命令和参数的支持 (#20864)

  • 支持 priorityClassName (#20794)

  • 向 Flower deployment 添加 envFrom (#21401)

  • 为清理 pod 添加注解 (#21484)

改进

  • 加速 scheduler 和 triggerer 的 liveness probe (#20833, #21108)

  • 将 git-sync 更新到 v3.4.0 (#21309)

  • 移除默认 auth backend 设置 (#21640)

Bug 修复

  • 修复 elasticsearch URL 在用户名/密码为空时的问题 (#21222)

  • 在 wait-for-airflow-migrations 容器中挂载 airflow.cfg (#20609)

  • 授予 triggerer ServiceAccount pod 日志读取权限 (#21111)

文档变更

  • 简化配置 Airflow 的 chart 文档 (#21747)

  • 添加关于时间同步所需的额外信息 (#21685)

  • 修复额外容器文档 (#20787)

杂项

  • 使用 2.2.4 作为默认 Airflow 版本 (#21745)

  • 将 Redis 镜像更改为 bullseye (#21875)

Airflow Helm Chart 1.4.0 (2022-01-10)

重大变更

默认 Airflow 镜像更新至 2.2.3

Chart 中使用的默认 Airflow 镜像现已更新至 2.2.3,此前是 2.2.1

ingress.web.hostsingress.flower.hosts 参数数据类型已更改,且 ingress.web.tlsingress.flower.tls 已移动

ingress.web.hostsingress.flower.hosts 的类型已从字符串数组更改为对象数组。ingress.web.tlsingress.flower.tls 现在可以在 ingress.web.hostsingress.flower.hosts 中分别按主机指定。

旧的参数名称将继续可用,但在未来的版本中将移除对其的支持,因此请更新您的 values 文件。

修复了 nodeSelectoraffinitytolerations 参数的优先级

nodeSelectoraffinitytolerations 参数在所有组件上的优先级已修复。现在,组件特定的参数(例如 webserver.affinity)优先于全局参数(例如 affinity)。

默认 KubernetesExecutor worker affinity 已移除

此前,为 KubernetesExecutor worker 添加了默认 affinity,以便将 worker 分散到不同节点。此默认 affinity 不再设置,因为一般来说,没有理由将任务特定的 worker 分散到不同节点。

webserver 和 flower NetworkPolicy 默认端口的变更

webserver.networkPolicy.ingress.portsflower.networkPolicy.ingress.ports 的默认值已从使用命名端口改为使用数字端口,以避免 OpenShift 的问题。

增加 scheduler 和 triggerer 的默认 livenessProbe timeoutSeconds

scheduler 和 triggerer 的默认 livenessProbe 超时时间已从 10 秒增加到 20 秒。

新特性

  • 为 extra secrets 参数添加 type (#20599)

  • 支持 elasticsearch 连接 scheme (#20564)

  • 允许单独禁用内置 secret 变量 (#18974)

  • 添加对 securityContext 的支持 (#18249)

  • 为 job 添加额外的容器、卷和卷挂载 (#18808)

  • 允许 ingress 多个主机名使用不同的 secret (#18542)

  • PgBouncer 额外的卷、卷挂载和 sslmode (#19749)

  • 允许指定 kerberos keytab (#19054)

  • 允许禁用 Helm hook (#18776, #20018)

  • 添加 migration-wait-timeout (#20069)

改进

  • 增加默认 livenessProbe 超时 (#20698)

  • 对 values.yaml 中的 k8s 对象采用严格 schema (#19181)

  • 移除不必要的 pod_template_file 默认值 (#19690)

  • 对于 Airflow>=2,使用内置的 check-migrations 命令 (#19676)

错误修复

  • 修复 affinitynodeSelectortolerations 的优先级 (#20641)

  • 修复 chart elasticsearch 默认端口从 80 到 9200 (#20616)

  • 修复 webserver 和 flower UI 的网络策略问题 (#20199)

  • 使用本地定义进行 k8s schema 验证 (#20544)

  • 为 ingress/PVC 添加自定义标签 (#20535)

  • 修复 extra secrets/configmaps 标签 (#20464)

  • 修复更新时 flower 重启的问题 (#20316)

  • 正确引用命名空间名称 (#20266)

仅文档变更

  • 在 chart INSTALL 中添加 helm dependency update 步骤 (#20702)

  • 重写涵盖 envvar secrets 的章节 (#20566)

  • 添加“自定义 Worker”页面 (#20331)

  • 在生产指南中包含 Datadog 示例 (#17996)

  • 更新生产 Helm 指南数据库章节,使用 k8s secret (#19892)

  • 修复 multiNamespaceMode 文档,使其也涵盖 KPO (#19879)

  • 澄清 Helm 在加载默认连接时的行为 (#19708)

杂项

  • 使用 2.2.3 作为默认 Airflow 版本 (#20450)

  • 为文档和截图添加 ArtifactHUB 注释 (#20558)

  • 添加 kubernetes 1.21 支持 (#19557)

Airflow Helm Chart 1.3.0 (2021-11-08)

重大变更

默认 Airflow 镜像更新至 2.2.1

Chart 中使用的默认 Airflow 镜像现已更新至 2.2.1 (即 Python 3.7),此前是 2.1.4 (即 Python 3.6)。

triggerer 组件需要 Python 3.7。如果您需要 Python 3.6 和 Airflow 2.2.0 或更高版本,请使用基于 3.6 的镜像,并在您的 values 中设置 triggerer.enabled=False

使 airflow-run-airflow-migrations job 的资源可配置

现在可以通过 migrateDatabaseJob.resources 值来设置迁移 job 的资源请求和限制。

新特性

  • Chart: 为 cleanupcreateuser job 添加资源 (#19263)

  • Chart: 为 cleanup pod 创建的 job 添加标签 (#19225)

  • 添加迁移 job 资源 (#19175)

  • 允许为所有组件添加自定义 pod 注释 (#18481)

  • Chart: 使 PgBouncer cmd/args 可配置 (#18910)

  • Chart: 默认使用 python 3.7;支持禁用 triggerer (#18920)

改进

  • Chart: 增加默认 liveness probe 超时 (#19003)

  • Chart: 在 triggerer 中挂载 DAG (#18753)

错误修复

  • 允许通过 Airflow UI 的 Clear > Run 创建 worker pod (#18272)

  • 允许 Airflow 标准镜像使用官方 Helm chart 在 OpenShift 中运行 #18136 (#18147)

仅文档变更

  • Chart: 修复 extraEnvFrom 示例 (#19144)

  • Chart 文档: 更新 webserver secret key 参考配置 (#18595)

  • 修复源码安装指南中的 helm chart 链接 (#18588)

杂项

  • Chart: 更新默认 Airflow 版本至 2.2.1 (#19326)

  • 现代化 dockerfile 构建 (#19327)

  • Chart: 使用严格 k8s schema 进行模板验证 (#19379)

Airflow Helm Chart 1.2.0 (2021-09-28)

重大变更

ingress.web.hostingress.flower.host 参数已重命名且数据类型已更改

ingress.web.hostingress.flower.host 参数已分别重命名为 ingress.web.hostsingress.flower.hosts。它们的类型已从字符串更改为字符串数组。

旧的参数名称将继续可用,但在未来的版本中将移除对其的支持,因此请更新您的 values 文件。

默认 Airflow 版本更新至 2.1.4

Chart 安装的默认 Airflow 版本现已更新至 2.1.4,此前是 2.1.2

移除 ingress.flower.precedingPathsingress.flower.succeedingPaths 参数

ingress.flower.precedingPathsingress.flower.succeedingPaths 参数已被移除,因为它们此前对渲染的 YAML 输出没有影响。

Ingress 上默认 path 的变更

随着对 stable Kubernetes Ingress API 的支持,默认路径已从未设置更改为 /。对于大多数 Ingress controller,这不应改变生成的 Ingress 资源的行为。

新特性

  • 将 Triggerer 添加到 Helm Chart (#17743)

  • Chart: 在未设置 webserver secret key 时发出警告 (#18306)

  • migrateDatabaseJob 添加 extraContainers (#18379)

  • job 模板上的标签 (#18403)

  • Chart: 允许使用默认镜像运行和等待 DB 迁移 (#18218)

  • Chart: 使 cleanup cronjob cmd/args 可配置 (#17970)

  • Chart: 可配置的 log groomer 保留天数 (#17764)

  • Chart: 在 webserver 和 flower service 中添加 loadBalancerSourceRanges (#17666)

  • Chart: 支持 k8s worker 中的 extraContainers (#17562)

改进

  • 切换到最新版本的 PGBouncer-Exporter (#18429)

  • Chart: 能够通过多个主机名访问 http k8s (#18257)

  • Chart: 在可用时使用 stable API 版本 (#17211)

  • Chart: 允许 podTemplate 被模板化 (#17560)

错误修复

  • Chart: 修复在 Triggerer 上应用 labels 的问题 (#18299)

  • 修复 celery worker 的温和关机 (#18068)

  • Chart: 修复 Triggerer 的一些小问题 (#18105)

  • Chart: 修复 webserver secret key 更新 (#18079)

  • Chart: 修复使用 uid 0 运行的问题 (#17688)

  • Chart: 为 log reader RoleBinding 使用 ServiceAccount 模板 (#17645)

  • Chart: 修复 elasticsearch-secret 模板端口默认函数 (#17428)

  • KEDA 任务计数查询应忽略 k8s 队列 (#17433)

仅文档变更

  • Chart 文档: 删除添加连接文档中的多余空格 (#18424)

  • 改进所有组件的从源码安装页面 (#18251)

  • Chart 文档: 使用 code-block 格式化 loadBalancerSourceRanges (#17763)

  • 文档: 修复 ssh 相关警告消息中的一个损坏链接 (#17294)

  • Chart: 添加在升级前更新 Helm Repo 的说明 (#17282)

  • Chart 文档: 改进关于 logs 现有 PVC 权限的说明 (#17177)

杂项

  • Chart: 更新默认 Airflow 版本至 2.1.4 (#18354)

Airflow Helm Chart 1.1.0 (2021-07-26)

重大变更

在将 chart 升级到最新版本之前,运行 helm repo update

默认 Airflow 版本更新至 2.1.2

Chart 安装的默认 Airflow 版本现已更新至 2.1.2,此前是 2.0.2

不再支持 Helm 2

此 chart 已放弃对 Helm 2 的支持,因为它已被弃用且自 2020 年 11 月起不再接收安全更新。

webserver.extraNetworkPoliciesflower.extraNetworkPolicies 参数已重命名

webserver.extraNetworkPoliciesflower.extraNetworkPolicies 已分别重命名为 webserver.networkPolicy.ingress.fromflower.networkPolicy.ingress.from。它们的值和行为相同。

旧的参数名称将继续可用,但在未来的版本中将移除对其的支持,因此请更新您的 values 文件。

移除 dags.gitSync.rootdags.gitSync.destdags.gitSync.excludeWebserver 参数

dags.gitSync.rootdags.gitSync.dest 参数并未为 chart 用户提供任何有用的行为,因此已被移除。如果您的 values 文件中设置了这些参数,可以安全地将其移除。

dags.gitSync.excludeWebserver 参数被错误地包含在 chart 的 values.schema.json 中。如果您的 values 文件中设置了此参数,可以安全地将其移除。

nodeSelectoraffinitytolerationsmigrateDatabaseJobcreateUserJob job 上

migrateDatabaseJobcreateUserJob job 此前错误地使用了 webservernodeSelectoraffinitytolerations(如果设置)。现在每个 job 都可以单独配置。

新特性

  • Chart: 允许 CeleryExecutor 使用 krb5.conf (#16822)

  • Chart: 重构 webserver 和 flower NetworkPolicy (#16619)

  • Chart: 将 worker 的节点分配设置应用于 Pod Template File (#16663)

  • Chart: 支持覆盖 webserver 和 flower service 端口 (#16572)

  • Chart: 支持 flower 中的 extraContainersextraVolumes (#16515)

  • Chart: 允许在 helm chart 中配置 pod 资源 (#16425)

  • Chart: 支持 job 级别的注释;修复 job 调度配置 (#16331)

  • feat: Helm chart 将 minReplicaCount 添加到 KEDA 的 worker-kedaautoscaler.yaml (#16262)

  • Chart: 添加对自定义 command 和 args 的支持 (#16153)

  • Chart: 为 pgbouncer 添加额外的 ini 配置 (#16120)

  • Chart: 为 scheduler/webserver/workers 添加 extraInitContainers (#16098)

  • git-sync sidecar 的资源可配置 (#16080)

  • Chart: 模板化 airflowLocalSettingswebserver.webserverConfig (#16074)

  • 支持 scheduler 上的 strategy / updateStrategy (#16069)

  • Chart: 为 job 添加 airflow 和 extra 注释 (#16058)

  • Flower 和 Webserver 的 loadBalancerIPannotations (#15972)

改进

  • Chart: 将 Postgres subchart 更新至 10.5.3 (#17041)

  • Chart: 更新默认 Airflow 版本至 2.1.2 (#17013)

  • 更新 Helm Chart 的默认镜像至 2.1.1 (#16785)

  • Chart: 使用 KubernetesExecutor 并采用默认日志时发出警告 (#16784)

  • 放弃对 Helm 2 的支持 (#16575)

  • Chart: scheduler、webserver 和 worker 的 podAntiAffinity (#16315)

  • Chart: 更新默认 Airflow 版本至 2.1.0 (#16273)

  • Chart: 仅在需要时在 webserver 中挂载 DAG (#16229)

  • Chart: 移除 git-syncrootdest 参数 (#15955)

  • Chart: 添加关于缺少 knownHosts 的警告 (#15950)

错误修复

  • Chart: 为 Webserver 的 flask secret key 创建一个随机 secret (#17142)

  • Chart: 修复 cleanup ServiceAccount 上的标签 (#16722)

  • Chart: 修复 Worker Deployment 上覆盖节点分配设置的问题 (#16670)

  • Chart: 始终部署一个 gitsync init container (#16339)

  • Chart: 修复从 KubernetesExecutor 更新到 CeleryExecutor 的问题 (#16242)

  • Chart: 为 Kubernetes worker pod 添加标签 (#16203)

  • Chart: 允许 webserver.base_url 被模板化 (#16126)

  • Chart: 修复 PgBouncer exporter sidecar (#16099)

  • 从 chart 的 values.schema.json 中移除 dags.gitSync.excludeWebserver (#16070)

  • Chart: 修复在未启用 Elasticsearch 时创建 Elasticsearch secret 的问题 (#16015)

  • 处理 Helm Chart 密码中的特殊字符 (#16004)

  • 修复在未启用 flower 时创建 flower ServiceAccount 的问题 (#16011)

  • Chart: KubernetesExecutorgitsync 清理 (#15925)

  • 使用 gitsync 时,以只读模式挂载 DAG (#15953)

仅文档变更

  • Chart 文档: 注意现有 PVC 的 uid 写入权限 (#17170)

  • Chart 文档: 添加 multiNamespaceMode 的单行描述 (#17147)

  • Chart: 更新 Helm chart 的描述,包含“官方”字样 (#17040)

  • Chart: 改进 podTemplate 的注释和示例 (#16859)

  • Chart: 添加更清晰的设置 pod_template_file.yaml 的文档 (#16632)

  • 修复 scheduler.livenessprobe.periodSeconds 的描述 (#16486)

  • Chart 文档: 修复 extrasecrets 示例 (#16305)

  • 改进 README.md 文件的小细节 (#16244)

杂项

  • 从我们的工具链中移除 pylint (#16682)

  • 更新链接以匹配 pre-commit 中的内容 (#16408)

  • Chart: 更新 Chart.yaml 中的 appVersion 至 2.1.0 (#16337)

  • 将 Airflow 仓库的主分支重命名为 main (#16149)

  • 更新 Chart 版本至 1.1.0-rc1 (#16124)

此条目有帮助吗?