jaruji opened a new issue, #37460:
URL: https://github.com/apache/airflow/issues/37460
### Official Helm Chart version
1.12.0 (latest released)
### Apache Airflow version
2.8.1
### Kubernetes Version
1.26.6
### Helm Chart configuration
```
config:
webserver:
expose_config: 'True'
logging:
remote_logging: 'True'
remote_base_log_folder: wasb-airflow/logs
remote_wasb_log_container: airflow
remote_log_conn_id: wasb_default
images:
airflow:
# define custom airflow image here (with PyPi packages installed)
repository: org.azurecr.io/internal-airflow
# CHANGE THIS when updating
tag: "0.2.0"
executor: KubernetesExecutor
fernetKeySecretName: airflow-fernet-secret
webserverSecretKeySecretName: airflow-webserver-secret
createUserJob:
useHelmHooks: false
applyCustomEnv: false
migrateDatabaseJob:
enabled: true
useHelmHooks: false
applyCustomEnv: false
jobAnnotations:
"argocd.argoproj.io/hook": Sync
useStandardNaming: true
dags:
gitSync:
enabled: true
repo: [email protected]:ORG/custom-airflow.git
branch: master
subPath: "dags"
sshKeySecret: airflow-ssh-secret
ingress:
web:
enabled: true
annotations:
cert-manager.io/cluster-issuer: "letsencrypt"
# The path for the web Ingress
path: "/"
# The pathType for the above path (used only with Kubernetes v1.19 and
above)
pathType: "ImplementationSpecific"
# The hostnames or hosts configuration for the web Ingress
# Set in argoCD application yaml
hosts: []
# # The hostname for the web Ingress (can be templated)
# - name: ""
# # configs for web Ingress TLS
# tls:
# # Enable TLS termination for the web Ingress
# enabled: false
# # the name of a pre-created Secret containing a TLS private key
and certificate
# secretName: ""
# The Ingress Class for the web Ingress (used only with Kubernetes
v1.19 and above)
ingressClassName: "nginx"
```
### Docker Image customizations
```
#### Use the specified Apache Airflow image as a base
FROM apache/airflow:2.8.1
##### Install dependencies required for building pymssql
USER root
RUN apt-get update && apt-get install -y \
freetds-dev \
build-essential \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update -y \
&& apt-get install -y \
libglib2.0-0 \
libnss3 \
libnspr4 \
libdbus-1-3 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon0 \
libatspi2.0-0 \
libxcomposite1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libpango-1.0-0 \
libcairo2 \
libasound2 \
&& rm -rf /var/lib/apt/lists/*
#### Copy the requirements file into the container
COPY requirements.txt /
COPY .env /
#### Switch back to the airflow user
USER airflow
#### Install the requirements, including Apache Airflow
RUN pip install --no-cache-dir "apache-airflow==${AIRFLOW_VERSION}" -r
/requirements.txt
RUN pip install python-dotenv
#install azure provider for airflow, needed for remote logging to azure blob
RUN pip install apache-airflow-providers-microsoft-azure
RUN playwright install
```
### What happened
When deploying the chart using ArgoCD, everything seems to more or less work
correctly. But after a while, the argoCD app reverts to OutOfSync and Missing
statuses. This persists until the chart is re-synced. When the sync if
successfully finished, everything displays correctly - synced, etc... but it
always reverts back to OutOfSync and the health status goes to Missing, which
can be confusing. I have not found out what the cause of this is yet.
### What you think should happen instead
After the successful helm chart deploy through ArgoCD, correctly display
that the app is Healthy and Synced.
### How to reproduce
I assume using the provided configurations to deploy the chart to a
kubernetes cluster should be enough to reproduce - you also need to add the
argoCD app config for airflow into your argoCD apps.
The argocd airflow app config:
```
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: airflow
namespace: {{ .Values.argocdNamespace }}
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: {{ .Values.projects.infra }}
source:
repoURL: {{ .Values.repoUrl }}
targetRevision: {{ .Values.targetRevision }}
path: infrastructure/airflow
helm:
valuesObject:
ingress:
web:
hosts:
- name: "airflow.{{ .Values.ingress.host }}"
tls:
enabled: true
secretName: "airflow-ingress-secret"
destination:
server: https://kubernetes.default.svc
namespace: "airflow"
syncPolicy:
syncOptions:
- CreateNamespace=true
```
### Anything else
_No response_
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [X] I agree to follow this project's [Code of
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]