-
Notifications
You must be signed in to change notification settings - Fork 14.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enables Kerberos sidecar support #11130
Enables Kerberos sidecar support #11130
Conversation
593990c
to
336b1e4
Compare
cc: @jaketf |
336b1e4
to
c789fbb
Compare
c789fbb
to
effeee9
Compare
Can you add some docs to: https://github.com/apache/airflow/blob/master/chart/README.md ? You probably just need to write an additional 2-3 sentences and copy the description of this PR. |
I also think it is worth adding a "Hardening container environment" section to Kerberos to describe good practices/recommendations. The excerpts from the security posture that we have written will be helpful for this. Not everyone who uses Kubernetes uses Helm. For example, I have heard about projects that only use Terraform. |
effeee9
to
5eeb154
Compare
I decided to only add a general concept description to the new CC @dimberman -> for the far future when we get to release the Helm Chart we'd need to add much more documentation on the supported cases as the information there is rather a mixed-bag of different kinds of information. - some about installing, some about using, few features are described but many are not. Good to remember as a point that should be fulfilled when we release the chart. |
Please re-review :). I made the test pass with it and added the documentation. |
@potiuk I think it is also worth adding information about it on the page with the title "Kerberos". I imagine that a person who would like to start using Kerberos, eg @jaketf 2 months ago, will find this page, read it and will not be able to ensure security for Kerberos in container environment. He doesn't necessarily have to use the production image, but he may want to use any docker image. This concept is universal and independent of the Production Docker image and Helm Chart. This can be done using a Docker image from Astronomer, Puckel, or any other image. If I would like to start using Kerberos, I would like to have all the information on the "Kerberos" page or there should at least be a link on this page to get more information. |
Or another example: |
Some of the users of Airflow are using Kerberos to authenticate their worker workflows. Airflow has a basic support for Kerberos for some of the operators and it has support to refresh the temporary kerberos tokens via `airflow kerberos` command. This change adds support for the Kerberos side-car that connects to the Kerberos Key Distribution Center and retrieves the token using Keytab that should be deployed as Kubernetes Secret. It uses shared volume to share the temporary token. The nice thing about setting it up as a sidecar is that the Keytab is never shared with the workers - the secret is only mounted by the sidecar and the workers have only access to the temporary token. Depends on apache#11129
5eeb154
to
8941354
Compare
Sure. Good idea @mik-laj I did not even know it existed. I think the best way will be to link from the Kerberos page to the "production-deployment.rst". Unfortunately, I have no idea how to link to particular sections between the docs, but I am sure you can help with that. I looked at similar doc links and tried to make the similar link but I am not sure if it will work I had to fix some spelling mistakes, so I tried to add the link from the Unfortunately, I have very little time to understand how sphinx details and links work, so I would be really happy if you can help in it, I know you are our local expert, so I'd appreciate if you can suggest any changes to the .rst document that could make the links more useful. I'd really appreciate if you can help with that since you have all the sphinx experience. |
More information about ref: https://www.sphinx-doc.org/en/1.5/markup/inline.html#role-ref |
Cool. Thanks. really helpful I just did not have time to read all the docs and find it. Really appreciate it. |
* Adds missing schema for kerberos sidecar configuration The kerberos support added in #11130 did not have schema added to the values.yml. This PR fixes it. Co-authored-by: Jacob Ferriero <[email protected]> * Update chart/values.schema.json Co-authored-by: Jacob Ferriero <[email protected]>
Follow up to apache#11130 : we shouldn't mount the `kerberos-keytab` secret in the worker deployment if we are not using kerberos in the first place. (the previous behavior is breaking the chart)
Follow up to apache#11130 : we shouldn't mount the `kerberos-keytab` volume in the worker deployment if we are not using kerberos in the first place. (the previous behavior is breaking the chart)
Follow up to #11130 : we shouldn't mount the `kerberos-keytab` volume in the worker deployment if we are not using kerberos in the first place. (the previous behavior is breaking the chart)
Follow up to apache#11130 : we shouldn't mount the `kerberos-keytab` volume in the worker deployment if we are not using kerberos in the first place. (the previous behavior is breaking the chart)
Some of the users of Airflow are using Kerberos to authenticate their worker workflows. Airflow has a basic support for Kerberos for some of the operators and it has support to refresh the temporary Kerberos tokens via `airflow kerberos` command. This change adds support for the Kerberos side-car that connects to the Kerberos Key Distribution Center and retrieves the token using Keytab that should be deployed as Kubernetes Secret. It uses shared volume to share the temporary token. The nice thing about setting it up as a sidecar is that the Keytab is never shared with the workers - the secret is only mounted by the sidecar and the workers have only access to the temporary token. Depends on #11129 (cherry picked from commit 4d2a787)
* Adds missing schema for kerberos sidecar configuration The kerberos support added in #11130 did not have schema added to the values.yml. This PR fixes it. Co-authored-by: Jacob Ferriero <[email protected]> * Update chart/values.schema.json Co-authored-by: Jacob Ferriero <[email protected]> (cherry picked from commit 9142eed)
Some of the users of Airflow are using Kerberos to authenticate their worker workflows. Airflow has a basic support for Kerberos for some of the operators and it has support to refresh the temporary Kerberos tokens via `airflow kerberos` command. This change adds support for the Kerberos side-car that connects to the Kerberos Key Distribution Center and retrieves the token using Keytab that should be deployed as Kubernetes Secret. It uses shared volume to share the temporary token. The nice thing about setting it up as a sidecar is that the Keytab is never shared with the workers - the secret is only mounted by the sidecar and the workers have only access to the temporary token. Depends on #11129 (cherry picked from commit 4d2a787)
* Adds missing schema for kerberos sidecar configuration The kerberos support added in #11130 did not have schema added to the values.yml. This PR fixes it. Co-authored-by: Jacob Ferriero <[email protected]> * Update chart/values.schema.json Co-authored-by: Jacob Ferriero <[email protected]> (cherry picked from commit 9142eed)
Some of the users of Airflow are using Kerberos to authenticate their worker workflows. Airflow has a basic support for Kerberos for some of the operators and it has support to refresh the temporary Kerberos tokens via `airflow kerberos` command. This change adds support for the Kerberos side-car that connects to the Kerberos Key Distribution Center and retrieves the token using Keytab that should be deployed as Kubernetes Secret. It uses shared volume to share the temporary token. The nice thing about setting it up as a sidecar is that the Keytab is never shared with the workers - the secret is only mounted by the sidecar and the workers have only access to the temporary token. Depends on #11129 (cherry picked from commit 4d2a787)
* Adds missing schema for kerberos sidecar configuration The kerberos support added in #11130 did not have schema added to the values.yml. This PR fixes it. Co-authored-by: Jacob Ferriero <[email protected]> * Update chart/values.schema.json Co-authored-by: Jacob Ferriero <[email protected]> (cherry picked from commit 9142eed)
Some of the users of Airflow are using Kerberos to authenticate their worker workflows. Airflow has a basic support for Kerberos for some of the operators and it has support to refresh the temporary Kerberos tokens via `airflow kerberos` command. This change adds support for the Kerberos side-car that connects to the Kerberos Key Distribution Center and retrieves the token using Keytab that should be deployed as Kubernetes Secret. It uses shared volume to share the temporary token. The nice thing about setting it up as a sidecar is that the Keytab is never shared with the workers - the secret is only mounted by the sidecar and the workers have only access to the temporary token. Depends on #11129 (cherry picked from commit 4d2a787)
* Adds missing schema for kerberos sidecar configuration The kerberos support added in #11130 did not have schema added to the values.yml. This PR fixes it. Co-authored-by: Jacob Ferriero <[email protected]> * Update chart/values.schema.json Co-authored-by: Jacob Ferriero <[email protected]> (cherry picked from commit 9142eed)
Some of the users of Airflow are using Kerberos to authenticate their worker workflows. Airflow has a basic support for Kerberos for some of the operators and it has support to refresh the temporary Kerberos tokens via `airflow kerberos` command. This change adds support for the Kerberos side-car that connects to the Kerberos Key Distribution Center and retrieves the token using Keytab that should be deployed as Kubernetes Secret. It uses shared volume to share the temporary token. The nice thing about setting it up as a sidecar is that the Keytab is never shared with the workers - the secret is only mounted by the sidecar and the workers have only access to the temporary token. Depends on apache#11129 (cherry picked from commit 4d2a787)
* Adds missing schema for kerberos sidecar configuration The kerberos support added in apache#11130 did not have schema added to the values.yml. This PR fixes it. Co-authored-by: Jacob Ferriero <[email protected]> * Update chart/values.schema.json Co-authored-by: Jacob Ferriero <[email protected]> (cherry picked from commit 9142eed)
Follow up to apache#11130 : we shouldn't mount the `kerberos-keytab` volume in the worker deployment if we are not using kerberos in the first place. (the previous behavior is breaking the chart) (cherry picked from commit 4c54718)
Enables Kerberos sidecar support
Some of the users of Airflow are using Kerberos to authenticate
their worker workflows. Airflow has a basic support for Kerberos
for some of the operators and it has support to refresh the
temporary kerberos tokens via
airflow kerberos
command.This change adds support for the Kerberos side-car that connects
to the Kerberos Key Distribution Center and retrieves the
token using Keytab that should be deployed as Kubernetes Secret.
It uses shared volume to share the temporary token. The nice
thing about setting it up as a sidecar is that the Keytab
is never shared with the workers - the secret is only mounted
by the sidecar and the workers have only access to the temporary
token.
Depends on #11129
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in UPDATING.md.