We can start delivering value to the teams even if we haven't figured everything out. By deploying the webserver pods to Kubernetes and integrating them with the an-db1001 database, we provide everyone with a public wikimedia.org subdomain and OIDC authentication, instead of relying on ssh tunneling to access the airflow UI.
For each instance:
- allow ingress traffic to the airflow instances coming from the DSE_KUBEPODS subnet
- Create the k8s namespaces
- Create the k8s user kubeconfigs
- Create the wikimedia.org public subdomains
- Create the OIDC/CAS configuration
- Create the config section in the private repo
- Deploy the application
- modify modules/profile/manifests/airflow.pp to support an optional secret secret_key and populate the webserver.secret_key config with it if found
- add the secret key already found in /etc/helmfile-defaults/private/dse-k8s_services/airflow-analytics-test/dse-k8s-eqiad.yaml on the deployment secret to /srv/git/private/hieradata
- Enable ATS traffic redirection and caching
Instances:
- airflow-analytics-test
[ ] airflow-analytics
[ ] airflow-analytics-product
[ ] airflow-search
[ ] airflow-research
[ ] airflow-platform-eng
[ ] airflow-wmde
Update: I've reduced the scope to the initial test instance and will split out the production instances to their own tasks (or logically associate multiple instances in the same task, if that makes sense).
Procedure to follow: https://wikitech.wikimedia.org/wiki/Data_Platform/Systems/Airflow/Kubernetes#Migrating_an_existing_instance