joseph-max-coalfire opened a new pull request, #26945:
URL: https://github.com/apache/airflow/pull/26945

   
   
   <!--
   Thank you for contributing! Please make sure that your code changes
   are covered with tests. And in case of new features or big changes
   remember to adjust the documentation.
   
   Feel free to ping committers for the review!
   
   In case of an existing issue, reference it using one of the following:
   
   closes: #ISSUE
   related: #ISSUE
   
   How to write a good git commit message:
   http://chris.beams.io/posts/git-commit/
   -->
   
   closes: #26812 
   Adding a nodePort declaration to the chart/values.schema.json file to allow 
users to explicitly define exactly which port the nodePort setting should use 
when deploying with the Helm chart. 
   
   This is important for users who have external load balancers and 
firewalls/security groups that have predefined traffic ports for Airflow. (e.g. 
a load balancer is expecting the airflow-webserver to listen on port 31000, and 
it's set up via Terraform, so I'd rather be able to specify a known port in 
Terraform beforehand rather than have to grab a new port every time I build 
Airflow)
   
   Tested locally on minikube with the following values.yaml override. 
   ```
   webserver:
       service:
         type: NodePort
         ports:
           - name: airflow-ui
             port: 80
             targetPort: airflow-ui
             nodePort: 31000
   ```
   
   Cluster comes up successfully with airflow-webserver service listening on 
expected nodePort. Output of the deployed `airflow-webserver` service object's 
YAML below:
   ```
   Name:                     airflow-webserver
   Namespace:                default
   Labels:                   app.kubernetes.io/managed-by=Helm
                             chart=airflow-1.7.0-dev
                             component=webserver
                             heritage=Helm
                             release=airflow
                             tier=airflow
   Annotations:              meta.helm.sh/release-name: airflow
                             meta.helm.sh/release-namespace: default
   Selector:                 component=webserver,release=airflow,tier=airflow
   Type:                     NodePort
   IP Family Policy:         SingleStack
   IP Families:              IPv4
   IP:                       10.104.151.191
   IPs:                      10.104.151.191
   Port:                     airflow-ui  80/TCP
   TargetPort:               airflow-ui/TCP
   NodePort:                 airflow-ui  31000/TCP
   Endpoints:                <none>
   Session Affinity:         None
   External Traffic Policy:  Cluster
   Events:                   <none>
   ```
   
   
   Also tested _without_ specifying a nodePort option (defaulting to ClusterIP) 
to ensure new schema doesn't break backwards compatibility.
   


-- 
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]

Reply via email to