Skip to content
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

Add a section for pre-commit in README.md #3009

Merged
merged 6 commits into from
Feb 24, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 46 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,23 @@
- [Overview of the Kubeflow Platform](#overview-of-the-kubeflow-platform)
- [Kubeflow components versions](#kubeflow-components-versions)
- [Installation](#installation)
* [Prerequisites](#prerequisites)
* [Install with a single command](#install-with-a-single-command)
* [Install individual components](#install-individual-components)
* [Connect to your Kubeflow Cluster](#connect-to-your-kubeflow-cluster)
* [Change default user name](#change-default-user-name)
* [Change default user password](#change-default-user-password)
- [Prerequisites](#prerequisites)
- [Install with a single command](#install-with-a-single-command)
- [Install individual components](#install-individual-components)
- [Connect to your Kubeflow Cluster](#connect-to-your-kubeflow-cluster)
- [Change default user name](#change-default-user-name)
- [Change default user password](#change-default-user-password)
- [Upgrading and extending](#upgrading-and-extending)
- [Release process](#release-process)
- [CVE Scanning](#cve-scanning)
- [Pre-commit Hooks](#pre-commit-hooks)
- [Frequently Asked Questions](#frequently-asked-questions)

<!-- tocstop -->

## Overview of the Kubeflow Platform

This repository is owned by the [Manifests Working Group](https://github.com/kubeflow/community/blob/master/wg-manifests/charter.md).
This repository is owned by the [Platform/Manifests Working Group](https://github.com/kubeflow/community/blob/master/wg-manifests/charter.md).
If you are a contributor authoring or editing the packages please see [Best Practices](https://kubectl.docs.kubernetes.io/references/kustomize/).
You can join the CNCF Slack and access our meetings at the [Kubeflow Community](https://www.kubeflow.org/docs/about/community/) website. Our channel on the CNCF Slack is here [**#kubeflow-platform**](https://app.slack.com/client/T08PSQ7BQ/C073W572LA2). You can also find there our [biweekly meetings](https://bit.ly/kf-wg-manifests-meet), including the commentable [Agenda](https://bit.ly/kf-wg-manifests-notes).

Expand Down Expand Up @@ -73,7 +74,9 @@ used from the different projects of Kubeflow:

This is for the installation from scratch. For the in-place upgrade guide please jump to the [Upgrading and extending](#upgrading-and-extending) section.

The Manifests WG provides two options for installing Kubeflow official components and common services with kustomize. The aim is to help end users install easily and to help distribution owners build their opinionated distributions from a tested starting point:
Although our master branch has extended automated tests and is already quite stable, please consider using a stable [release tag / branch](https://github.com/kubeflow/manifests/releases) if you want a more conservative experience.

We provide two options for installing the offii Kubeflow components and common services with kustomize. The aim is to help end users install easily and to help distribution owners build their opinionated distributions from a tested starting point:

1. Single-command installation of all components under `apps` and `common`
2. Multi-command, individual components installation for `apps` and `common`
Expand Down Expand Up @@ -172,9 +175,9 @@ ensure CRDs are installed first
```

This is because a kustomization applies both a CRD and a CR very quickly, and the CRD
hasn't become [`Established`](https://github.com/kubernetes/apiextensions-apiserver/blob/a7ee7f91a2d0805f729998b85680a20cfba208d2/pkg/apis/apiextensions/types.go#L276-L279) yet. You can learn more about this in https://github.com/kubernetes/kubectl/issues/1117 and https://github.com/helm/helm/issues/4925.
has not yet become [`Established`](https://github.com/kubernetes/apiextensions-apiserver/blob/a7ee7f91a2d0805f729998b85680a20cfba208d2/pkg/apis/apiextensions/types.go#L276-L279) yet. You can learn more about this in <https://github.com/kubernetes/kubectl/issues/1117> and <https://github.com/helm/helm/issues/4925>.

If you bump into this error we advise to re-apply the kustomization of the component.
If you bump into this error, we advise to re-apply the manifests of the component.

---

Expand All @@ -199,7 +202,7 @@ Error from server (InternalError): error when creating "STDIN": Internal error o
```
This is because the webhook is not yet ready to receive requests. Wait a couple of seconds and retry applying the manifests.

For more troubleshooting info also check out https://cert-manager.io/docs/troubleshooting/webhook/
For more troubleshooting info also check out <https://cert-manager.io/docs/troubleshooting/webhook/>

#### Istio

Expand Down Expand Up @@ -280,9 +283,9 @@ kustomize build common/dex/overlays/oauth2-proxy | kubectl apply -f -
kubectl wait --for=condition=ready pods --all --timeout=180s -n auth
```

To connect to your desired identity providers (LDAP,GitHub,Google,Microsoft,OIDC,SAML,GitLab) please take a look at https://dexidp.io/docs/connectors/oidc/.
To connect to your desired identity providers (LDAP,GitHub,Google,Microsoft,OIDC,SAML,GitLab) please take a look at <https://dexidp.io/docs/connectors/oidc/>.
We recommend to use OIDC in general, since it is compatible with most providers as for example azure in the following example.
You need to modify https://github.com/kubeflow/manifests/blob/master/common/dex/overlays/oauth2-proxy/config-map.yaml and add some environment variables in https://github.com/kubeflow/manifests/blob/master/common/dex/base/deployment.yaml by adding a patch section in your main Kustomization file. For guidance please check out [Upgrading and extending](#upgrading-and-extending).
You need to modify <https://github.com/kubeflow/manifests/blob/master/common/dex/overlays/oauth2-proxy/config-map.yaml> and add some environment variables in <https://github.com/kubeflow/manifests/blob/master/common/dex/base/deployment.yaml> by adding a patch section in your main Kustomization file. For guidance please check out [Upgrading and extending](#upgrading-and-extending).

```yaml
apiVersion: v1
Expand Down Expand Up @@ -656,6 +659,36 @@ The Kubeflow security working group follows a responsible disclosure policy for
- Try to provide a fix or mitigation strategy
- Publicly disclose the CVE details

## Pre-commit Hooks

This repository uses pre-commit hooks to ensure code quality and consistency. The following hooks are configured:

1. **Black** - Python code formatter

2. **Yamllint** - YAML file linter

3. **Shellcheck** - Shell script static analysis

To use these hooks:

1. Install pre-commit:

```bash
pip install pre-commit
```

2. Install the git hooks:

```bash
pre-commit install
```

The hooks will run automatically on `git commit`. You can also run them manually:

```bash
pre-commit run
```

## Frequently Asked Questions

- **Q:** What versions of Istio, Knative, Cert-Manager, Argo, ... are compatible with Kubeflow? \
Expand Down