apache / airflow

Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
https://airflow.apache.org/
Apache License 2.0
36.51k stars 14.14k forks source link

Argo Incompatibility Discovered? (Missing apiVersion and kind in volumeClaimTemplates) #41766

Closed darth-drew closed 1 month ago

darth-drew commented 1 month ago

Official Helm Chart version

1.15.0 (latest released)

Apache Airflow version

2.9.3

Kubernetes Version

1.25.16 and greater

Helm Chart configuration

images: 
  airflow:
    repository: <redacted>/apache/airflow
    tag: 2.9.3
  statsd:
    repository: <redacted>/quay.io/prometheus/statsd-exporter
    tag: v0.26.1
  redis:
    repository: <redacted>/redis
    # Redis is limited to 7.2-bookworm due to licencing change
    # https://redis.io/blog/redis-adopts-dual-source-available-licensing/
    tag: 7.2-bookworm
# Detailed default security context for airflow deployments
securityContexts:
  pod: 
    seccompProfile:
      type: RuntimeDefault
    runAsNonRoot: true
    runAsUser: 50000
    fsGroup: 0
  containers: 
    seccompProfile:
      type: RuntimeDefault
    runAsNonRoot: true
    runAsUser: 50000
    capabilities:
      drop: ["ALL"]
    allowPrivilegeEscalation: false
statsd:
  securityContexts:
    pod:
      seccompProfile:
        type: RuntimeDefault
      runAsNonRoot: true
      runAsUser: 50000
redis:
  persistence:
    size: 10Gi
    storageClassName: aws-gp3
  password: <redacted>
  uid: 50000
  securityContexts:
    pod:
      seccompProfile:
        type: RuntimeDefault
      runAsNonRoot: true
      runAsUser: 50000
    containers:
      seccompProfile:
        type: RuntimeDefault
      runAsNonRoot: true
      runAsUser: 50000
      capabilities:
        drop: ["ALL"]
      allowPrivilegeEscalation: false

#https://airflow.apache.org/docs/helm-chart/stable/index.html#installing-the-chart-with-argo-cd-flux-rancher-or-terraform
createUserJob:
  useHelmHooks: false
  applyCustomEnv: false
migrateDatabaseJob:
  useHelmHooks: false
  applyCustomEnv: false
  jobAnnotations:
    "argocd.argoproj.io/hook": Sync
useStandardNaming: true
webserverSecretKey: <redacted>
fernetKey: <redacted>

keda:
  enabled: true

Docker Image customizations

No response

What happened

When deploying via ArgoCD, the statefulsets for redis, triggerer, and worker were unable to sync due to the below screenshot. In order to get a successful "sync", I had to update redis-statefulset, triggerer-deployment, and worker-deployment template files and include those two lines under volumeClaimTemplates. I don't believe this is an argocd issue, rather a template issue. Should this be required? Is there a better place to make the change? I didn't find it in the values.yaml file. Capture

What you think should happen instead

Argo is able to successfully sync.

How to reproduce

Helm chart deployed with argocd but unable to synchronize successfully.

Anything else

Behavior occurs unless templates are updated manually

Are you willing to submit PR?

Code of Conduct

boring-cyborg[bot] commented 1 month ago

Thanks for opening your first issue here! Be sure to follow the issue template! If you are willing to raise PR to address this issue please do so, no need to wait for approval.

darth-drew commented 1 month ago

https://github.com/apache/airflow/pull/41767 https://github.com/apache/airflow/pull/41768 https://github.com/apache/airflow/pull/41769

Sorry, a little clumsy