From 7cf679776c6c6be729123ff1ff5976ac3c019600 Mon Sep 17 00:00:00 2001 From: Oleg Soloviov Date: Wed, 29 Oct 2025 22:08:57 +0000 Subject: [PATCH 1/4] Docs: update Helm Chart page to show usage without cloning Polaris github repo --- helm/polaris/README.md | 55 ++++++++++++++----- helm/polaris/README.md.gotmpl | 57 ++++++++++++++------ site/content/in-dev/unreleased/helm.md | 74 +++++++++++++++----------- 3 files changed, 126 insertions(+), 60 deletions(-) diff --git a/helm/polaris/README.md b/helm/polaris/README.md index bbfc8557df..cdd4385444 100644 --- a/helm/polaris/README.md +++ b/helm/polaris/README.md @@ -46,12 +46,14 @@ A Helm chart for Apache Polaris (incubating). The below instructions assume Minikube and Helm are installed. -Start the Minikube cluster, build and load image into the Minikube cluster: - +Start the Minikube cluster: ```bash minikube start eval $(minikube docker-env) +``` +If you have cloned Polaris git repository, you may want to build and load image into the Minikube cluster: +```bash ./gradlew \ :polaris-server:assemble \ :polaris-server:quarkusAppPartsBuild --rerun \ @@ -60,10 +62,24 @@ eval $(minikube docker-env) -Dquarkus.container-image.build=true ``` +Otherwise load ready images from Docker Hub: +```bash +minikube image pull apache/polaris:latest +minikube image pull apache/polaris-admin-tool:latest +``` + ### Installing the chart locally The below instructions assume a local Kubernetes cluster is running and Helm is installed. +> [!NOTE] +> The exampled below assume that you have cloned Polaris git repository, which contains Helm chart in `helm/polaris` directory. +> If you do not want to clone the repository or want to use official release of Helm chart, you can download it from [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): +> ```bash +> helm pull polaris --repo https://downloads.apache.org/incubator/polaris/helm-chart --version 1.2.0-incubating --untar --untardir ./helm +> ``` +> It will unpack the chart into `./helm/polaris` directory, so that scripts below can be used as is. + #### Common setup Create the target namespace: @@ -75,7 +91,11 @@ Create all the required resources in the `polaris` namespace. This usually inclu database, Kubernetes secrets, and service accounts. The Polaris chart does not create these resources automatically, as they are not required for all Polaris deployments. The chart will fail if these resources are not created beforehand. You can find some examples in the -`helm/polaris/ci/fixtures` directory, but beware that these are primarily intended for tests. +`helm/polaris/ci/fixtures` directory, but beware that these are primarily intended for tests. E.g. you can run the command: +```bash +kubectl apply --namespace polaris -f helm/polaris/ci/fixtures/ +kubectl wait --namespace polaris --for=condition=ready pod --selector=app.kubernetes.io/name=postgres --timeout=120s +``` Below are two sample deployment models for installing the chart: one with a non-persistent backend and another with a persistent backend. @@ -105,26 +125,29 @@ helm upgrade --install --namespace polaris \ kubectl wait --namespace polaris --for=condition=ready pod --selector=app.kubernetes.io/name=polaris --timeout=120s ``` -To access Polaris and Postgres locally, set up port forwarding for both services (This is needed for bootstrap processes): +To access Polaris and Postgres locally, set up port forwarding for both services (this might be needed if you want to use Polaris command line tool or if you want to bootstrap the catalog by calling Polaris admin tool locally): ```bash -kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') 8181:8181 +kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') 8181:8181 & -kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=postgres -o jsonpath='{.items[0].metadata.name}') 5432:5432 +kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=postgres -o jsonpath='{.items[0].metadata.name}') 5432:5432 & ``` -Run the catalog bootstrap using the Polaris admin tool. This step initializes the catalog with the required configuration: +Run the catalog bootstrap using the Polaris admin tool in minikube docker environment. This step initializes the catalog with the required configuration: ```bash -container_envs=$(kubectl exec -it -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') -- env) -export QUARKUS_DATASOURCE_USERNAME=$(echo "$container_envs" | grep quarkus.datasource.username | awk -F '=' '{print $2}' | tr -d '\n\r') -export QUARKUS_DATASOURCE_PASSWORD=$(echo "$container_envs" | grep quarkus.datasource.password | awk -F '=' '{print $2}' | tr -d '\n\r') -export QUARKUS_DATASOURCE_JDBC_URL=$(echo "$container_envs" | grep quarkus.datasource.jdbc.url | sed 's/postgres/localhost/2' | awk -F '=' '{print $2}' | tr -d '\n\r') - -java -jar runtime/admin/build/quarkus-app/quarkus-run.jar bootstrap -c POLARIS,root,pass -r POLARIS +container_envs=$(kubectl exec -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') -- env) && \ +docker run --rm \ + -e QUARKUS_DATASOURCE_USERNAME="$(echo "$container_envs" | grep quarkus.datasource.username | awk -F '=' '{print $2}' | tr -d '\n\r')" \ + -e QUARKUS_DATASOURCE_PASSWORD="$(echo "$container_envs" | grep quarkus.datasource.password | awk -F '=' '{print $2}' | tr -d '\n\r')" \ + -e QUARKUS_DATASOURCE_JDBC_URL="jdbc:postgresql://$(kubectl get svc -n polaris postgres -o jsonpath='{.spec.clusterIP}'):5432/POLARIS" \ + apache/polaris-admin-tool:latest \ + bootstrap -c POLARIS,root,pass -r POLARIS ``` ### Uninstalling ```bash +kill $(lsof -ti :8181) $(lsof -ti :5432) + helm uninstall --namespace polaris polaris kubectl delete --namespace polaris -f helm/polaris/ci/fixtures/ @@ -167,8 +190,12 @@ the Polaris repo root: helm unittest helm/polaris ``` -You can also lint the chart using the Chart Testing tool, with the following command: +You can also lint the chart using the Chart Testing tool. You will need to install the [yamllint](https://github.com/adrienverge/yamllint) tool: +```bash +brew install yamllint +``` +Then you can lint the chart, with the following command: ```bash ct lint --charts helm/polaris ``` diff --git a/helm/polaris/README.md.gotmpl b/helm/polaris/README.md.gotmpl index 99feabb101..4c81fe4f28 100644 --- a/helm/polaris/README.md.gotmpl +++ b/helm/polaris/README.md.gotmpl @@ -48,12 +48,14 @@ weight: 675 The below instructions assume Minikube and Helm are installed. -Start the Minikube cluster, build and load image into the Minikube cluster: - +Start the Minikube cluster: ```bash minikube start eval $(minikube docker-env) +``` +If you have cloned Polaris git repository, you may want to build and load image into the Minikube cluster: +```bash ./gradlew \ :polaris-server:assemble \ :polaris-server:quarkusAppPartsBuild --rerun \ @@ -62,10 +64,24 @@ eval $(minikube docker-env) -Dquarkus.container-image.build=true ``` +Otherwise load ready images from Docker Hub: +```bash +minikube image pull apache/polaris:latest +minikube image pull apache/polaris-admin-tool:latest +``` + ### Installing the chart locally The below instructions assume a local Kubernetes cluster is running and Helm is installed. +> [!NOTE] +> The exampled below assume that you have cloned Polaris git repository, which contains Helm chart in `helm/polaris` directory. +> If you do not want to clone the repository or want to use official release of Helm chart, you can download it from [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): +> ```bash +> helm pull polaris --repo https://downloads.apache.org/incubator/polaris/helm-chart --version 1.2.0-incubating --untar --untardir ./helm +> ``` +> It will unpack the chart into `./helm/polaris` directory, so that scripts below can be used as is. + #### Common setup Create the target namespace: @@ -76,8 +92,12 @@ kubectl create namespace polaris Create all the required resources in the `polaris` namespace. This usually includes a Postgres database, Kubernetes secrets, and service accounts. The Polaris chart does not create these resources automatically, as they are not required for all Polaris deployments. The chart will -fail if these resources are not created beforehand. You can find some examples in the -`helm/polaris/ci/fixtures` directory, but beware that these are primarily intended for tests. +fail if these resources are not created beforehand. You can find some examples in the +`helm/polaris/ci/fixtures` directory, but beware that these are primarily intended for tests. E.g. you can run the command: +```bash +kubectl apply --namespace polaris -f helm/polaris/ci/fixtures/ +kubectl wait --namespace polaris --for=condition=ready pod --selector=app.kubernetes.io/name=postgres --timeout=120s +``` Below are two sample deployment models for installing the chart: one with a non-persistent backend and another with a persistent backend. @@ -107,26 +127,29 @@ helm upgrade --install --namespace polaris \ kubectl wait --namespace polaris --for=condition=ready pod --selector=app.kubernetes.io/name=polaris --timeout=120s ``` -To access Polaris and Postgres locally, set up port forwarding for both services (This is needed for bootstrap processes): +To access Polaris and Postgres locally, set up port forwarding for both services (this might be needed if you want to use Polaris command line tool or if you want to bootstrap the catalog by calling Polaris admin tool locally): ```bash -kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') 8181:8181 +kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') 8181:8181 & -kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=postgres -o jsonpath='{.items[0].metadata.name}') 5432:5432 +kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=postgres -o jsonpath='{.items[0].metadata.name}') 5432:5432 & ``` -Run the catalog bootstrap using the Polaris admin tool. This step initializes the catalog with the required configuration: +Run the catalog bootstrap using the Polaris admin tool in minikube docker environment. This step initializes the catalog with the required configuration: ```bash -container_envs=$(kubectl exec -it -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') -- env) -export QUARKUS_DATASOURCE_USERNAME=$(echo "$container_envs" | grep quarkus.datasource.username | awk -F '=' '{print $2}' | tr -d '\n\r') -export QUARKUS_DATASOURCE_PASSWORD=$(echo "$container_envs" | grep quarkus.datasource.password | awk -F '=' '{print $2}' | tr -d '\n\r') -export QUARKUS_DATASOURCE_JDBC_URL=$(echo "$container_envs" | grep quarkus.datasource.jdbc.url | sed 's/postgres/localhost/2' | awk -F '=' '{print $2}' | tr -d '\n\r') - -java -jar runtime/admin/build/quarkus-app/quarkus-run.jar bootstrap -c POLARIS,root,pass -r POLARIS +container_envs=$(kubectl exec -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') -- env) && \ +docker run --rm \ + -e QUARKUS_DATASOURCE_USERNAME="$(echo "$container_envs" | grep quarkus.datasource.username | awk -F '=' '{print $2}' | tr -d '\n\r')" \ + -e QUARKUS_DATASOURCE_PASSWORD="$(echo "$container_envs" | grep quarkus.datasource.password | awk -F '=' '{print $2}' | tr -d '\n\r')" \ + -e QUARKUS_DATASOURCE_JDBC_URL="jdbc:postgresql://$(kubectl get svc -n polaris postgres -o jsonpath='{.spec.clusterIP}'):5432/POLARIS" \ + apache/polaris-admin-tool:latest \ + bootstrap -c POLARIS,root,pass -r POLARIS ``` ### Uninstalling ```bash +kill $(lsof -ti :8181) $(lsof -ti :5432) + helm uninstall --namespace polaris polaris kubectl delete --namespace polaris -f helm/polaris/ci/fixtures/ @@ -169,8 +192,12 @@ the Polaris repo root: helm unittest helm/polaris ``` -You can also lint the chart using the Chart Testing tool, with the following command: +You can also lint the chart using the Chart Testing tool. You will need to install the [yamllint](https://github.com/adrienverge/yamllint) tool: +```bash +brew install yamllint +``` +Then you can lint the chart, with the following command: ```bash ct lint --charts helm/polaris ``` diff --git a/site/content/in-dev/unreleased/helm.md b/site/content/in-dev/unreleased/helm.md index ef82e8e675..8126949fe2 100644 --- a/site/content/in-dev/unreleased/helm.md +++ b/site/content/in-dev/unreleased/helm.md @@ -22,23 +22,7 @@ type: docs weight: 675 --- - - -![Version: 1.2.0-incubating-SNAPSHOT](https://img.shields.io/badge/Version-1.2.0--incubating--SNAPSHOT-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.2.0-incubating-SNAPSHOT](https://img.shields.io/badge/AppVersion-1.2.0--incubating--SNAPSHOT-informational?style=flat-square) - -A Helm chart for Apache Polaris (incubating). - -**Homepage:** - -## Source Code - -* +This page documents the Polaris Helm chart, which can be used to deploy Polaris on Kubernetes. ## Installation @@ -46,12 +30,14 @@ A Helm chart for Apache Polaris (incubating). The below instructions assume Minikube and Helm are installed. -Start the Minikube cluster, build and load image into the Minikube cluster: - +Start the Minikube cluster: ```bash minikube start eval $(minikube docker-env) +``` +If you have cloned Polaris git repository, you may want to build and load image into the Minikube cluster: +```bash ./gradlew \ :polaris-server:assemble \ :polaris-server:quarkusAppPartsBuild --rerun \ @@ -60,10 +46,25 @@ eval $(minikube docker-env) -Dquarkus.container-image.build=true ``` +Otherwise load ready images from Docker Hub: +```bash +minikube image pull apache/polaris:latest +minikube image pull apache/polaris-admin-tool:latest +``` + ### Installing the chart locally The below instructions assume a local Kubernetes cluster is running and Helm is installed. +{{< alert note >}} +The exampled below assume that you have cloned Polaris git repository, which contains Helm chart in `helm/polaris` directory. +If you do not want to clone the repository or want to use official release of Helm chart, you can download it from [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): +```bash +helm pull polaris --repo https://downloads.apache.org/incubator/polaris/helm-chart --version 1.2.0-incubating --untar --untardir ./helm +``` +It will unpack the chart into `./helm/polaris` directory, so that scripts below can be used as is. +{{< /alert >}} + #### Common setup Create the target namespace: @@ -75,7 +76,11 @@ Create all the required resources in the `polaris` namespace. This usually inclu database, Kubernetes secrets, and service accounts. The Polaris chart does not create these resources automatically, as they are not required for all Polaris deployments. The chart will fail if these resources are not created beforehand. You can find some examples in the -`helm/polaris/ci/fixtures` directory, but beware that these are primarily intended for tests. +`helm/polaris/ci/fixtures` directory, but beware that these are primarily intended for tests. E.g. you can run the command: +```bash +kubectl apply --namespace polaris -f helm/polaris/ci/fixtures/ +kubectl wait --namespace polaris --for=condition=ready pod --selector=app.kubernetes.io/name=postgres --timeout=120s +``` Below are two sample deployment models for installing the chart: one with a non-persistent backend and another with a persistent backend. @@ -107,26 +112,29 @@ helm upgrade --install --namespace polaris \ kubectl wait --namespace polaris --for=condition=ready pod --selector=app.kubernetes.io/name=polaris --timeout=120s ``` -To access Polaris and Postgres locally, set up port forwarding for both services (This is needed for bootstrap processes): +To access Polaris and Postgres locally, set up port forwarding for both services (this might be needed if you want to use Polaris command line tool or if you want to bootstrap the catalog by calling Polaris admin tool locally): ```bash -kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') 8181:8181 +kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') 8181:8181 & -kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=postgres -o jsonpath='{.items[0].metadata.name}') 5432:5432 +kubectl port-forward -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=postgres -o jsonpath='{.items[0].metadata.name}') 5432:5432 & ``` -Run the catalog bootstrap using the Polaris admin tool. This step initializes the catalog with the required configuration: +Run the catalog bootstrap using the Polaris admin tool in minikube docker environment. This step initializes the catalog with the required configuration: ```bash -container_envs=$(kubectl exec -it -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') -- env) -export QUARKUS_DATASOURCE_USERNAME=$(echo "$container_envs" | grep quarkus.datasource.username | awk -F '=' '{print $2}' | tr -d '\n\r') -export QUARKUS_DATASOURCE_PASSWORD=$(echo "$container_envs" | grep quarkus.datasource.password | awk -F '=' '{print $2}' | tr -d '\n\r') -export QUARKUS_DATASOURCE_JDBC_URL=$(echo "$container_envs" | grep quarkus.datasource.jdbc.url | sed 's/postgres/localhost/2' | awk -F '=' '{print $2}' | tr -d '\n\r') - -java -jar runtime/admin/build/quarkus-app/quarkus-run.jar bootstrap -c POLARIS,root,pass -r POLARIS +container_envs=$(kubectl exec -n polaris $(kubectl get pod -n polaris -l app.kubernetes.io/name=polaris -o jsonpath='{.items[0].metadata.name}') -- env) && \ +docker run --rm \ + -e QUARKUS_DATASOURCE_USERNAME="$(echo "$container_envs" | grep quarkus.datasource.username | awk -F '=' '{print $2}' | tr -d '\n\r')" \ + -e QUARKUS_DATASOURCE_PASSWORD="$(echo "$container_envs" | grep quarkus.datasource.password | awk -F '=' '{print $2}' | tr -d '\n\r')" \ + -e QUARKUS_DATASOURCE_JDBC_URL="jdbc:postgresql://$(kubectl get svc -n polaris postgres -o jsonpath='{.spec.clusterIP}'):5432/POLARIS" \ + apache/polaris-admin-tool:latest \ + bootstrap -c POLARIS,root,pass -r POLARIS ``` ### Uninstalling ```bash +kill $(lsof -ti :8181) $(lsof -ti :5432) + helm uninstall --namespace polaris polaris kubectl delete --namespace polaris -f helm/polaris/ci/fixtures/ @@ -169,8 +177,12 @@ the Polaris repo root: helm unittest helm/polaris ``` -You can also lint the chart using the Chart Testing tool, with the following command: +You can also lint the chart using the Chart Testing tool. You will need to install the [yamllint](https://github.com/adrienverge/yamllint) tool: +```bash +brew install yamllint +``` +Then you can lint the chart, with the following command: ```bash ct lint --charts helm/polaris ``` From 28a9eef2f8d85d5acecc0d2544b18ba938ecc28a Mon Sep 17 00:00:00 2001 From: olsoloviov <40199597+olsoloviov@users.noreply.github.com> Date: Thu, 30 Oct 2025 13:40:31 +0000 Subject: [PATCH 2/4] Apply suggestions from code review fix grammar Co-authored-by: Alexandre Dutra --- helm/polaris/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/polaris/README.md b/helm/polaris/README.md index cdd4385444..2d57d35842 100644 --- a/helm/polaris/README.md +++ b/helm/polaris/README.md @@ -73,8 +73,8 @@ minikube image pull apache/polaris-admin-tool:latest The below instructions assume a local Kubernetes cluster is running and Helm is installed. > [!NOTE] -> The exampled below assume that you have cloned Polaris git repository, which contains Helm chart in `helm/polaris` directory. -> If you do not want to clone the repository or want to use official release of Helm chart, you can download it from [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): +> The examples below assume that you have cloned Polaris git repository, which contains the Polaris Helm chart in the `helm/polaris` directory. +> If you do not want to clone the repository or want to use an official Helm chart release, you can download it from the [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): > ```bash > helm pull polaris --repo https://downloads.apache.org/incubator/polaris/helm-chart --version 1.2.0-incubating --untar --untardir ./helm > ``` From 0176a6d80595f71cdc9d3c790ecf4c403028ac63 Mon Sep 17 00:00:00 2001 From: Oleg Soloviov Date: Thu, 30 Oct 2025 14:43:24 +0000 Subject: [PATCH 3/4] docs: fix reviewer's suggestions --- helm/polaris/README.md | 8 +++----- helm/polaris/README.md.gotmpl | 12 +++++------- site/content/in-dev/unreleased/helm.md | 12 +++++------- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/helm/polaris/README.md b/helm/polaris/README.md index 2d57d35842..3a7302b083 100644 --- a/helm/polaris/README.md +++ b/helm/polaris/README.md @@ -165,11 +165,13 @@ The following tools are required to run the tests: * [Helm Unit Test](https://github.com/helm-unittest/helm-unittest) * [Chart Testing](https://github.com/helm/chart-testing) +* [yamllint](https://github.com/adrienverge/yamllint) Quick installation instructions for these tools: ```bash helm plugin install https://github.com/helm-unittest/helm-unittest.git brew install chart-testing +brew install yamllint ``` The integration tests also require some fixtures to be deployed. The `ci/fixtures` directory @@ -190,12 +192,8 @@ the Polaris repo root: helm unittest helm/polaris ``` -You can also lint the chart using the Chart Testing tool. You will need to install the [yamllint](https://github.com/adrienverge/yamllint) tool: -```bash -brew install yamllint -``` +You can also lint the chart using the Chart Testing tool, with the following command: -Then you can lint the chart, with the following command: ```bash ct lint --charts helm/polaris ``` diff --git a/helm/polaris/README.md.gotmpl b/helm/polaris/README.md.gotmpl index 4c81fe4f28..11093b79f1 100644 --- a/helm/polaris/README.md.gotmpl +++ b/helm/polaris/README.md.gotmpl @@ -75,8 +75,8 @@ minikube image pull apache/polaris-admin-tool:latest The below instructions assume a local Kubernetes cluster is running and Helm is installed. > [!NOTE] -> The exampled below assume that you have cloned Polaris git repository, which contains Helm chart in `helm/polaris` directory. -> If you do not want to clone the repository or want to use official release of Helm chart, you can download it from [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): +> The examples below assume that you have cloned Polaris git repository, which contains the Polaris Helm chart in the `helm/polaris` directory. +> If you do not want to clone the repository or want to use an official Helm chart release, you can download it from the [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): > ```bash > helm pull polaris --repo https://downloads.apache.org/incubator/polaris/helm-chart --version 1.2.0-incubating --untar --untardir ./helm > ``` @@ -167,11 +167,13 @@ The following tools are required to run the tests: * [Helm Unit Test](https://github.com/helm-unittest/helm-unittest) * [Chart Testing](https://github.com/helm/chart-testing) +* [yamllint](https://github.com/adrienverge/yamllint) Quick installation instructions for these tools: ```bash helm plugin install https://github.com/helm-unittest/helm-unittest.git brew install chart-testing +brew install yamllint ``` The integration tests also require some fixtures to be deployed. The `ci/fixtures` directory @@ -192,12 +194,8 @@ the Polaris repo root: helm unittest helm/polaris ``` -You can also lint the chart using the Chart Testing tool. You will need to install the [yamllint](https://github.com/adrienverge/yamllint) tool: -```bash -brew install yamllint -``` +You can also lint the chart using the Chart Testing tool, with the following command: -Then you can lint the chart, with the following command: ```bash ct lint --charts helm/polaris ``` diff --git a/site/content/in-dev/unreleased/helm.md b/site/content/in-dev/unreleased/helm.md index 8126949fe2..c53567f1fc 100644 --- a/site/content/in-dev/unreleased/helm.md +++ b/site/content/in-dev/unreleased/helm.md @@ -57,8 +57,8 @@ minikube image pull apache/polaris-admin-tool:latest The below instructions assume a local Kubernetes cluster is running and Helm is installed. {{< alert note >}} -The exampled below assume that you have cloned Polaris git repository, which contains Helm chart in `helm/polaris` directory. -If you do not want to clone the repository or want to use official release of Helm chart, you can download it from [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): +The examples below assume that you have cloned Polaris git repository, which contains the Polaris Helm chart in the `helm/polaris` directory. +If you do not want to clone the repository or want to use an official Helm chart release, you can download it from the [Apache Polaris Helm Chart repository](https://downloads.apache.org/incubator/polaris/helm-chart/): ```bash helm pull polaris --repo https://downloads.apache.org/incubator/polaris/helm-chart --version 1.2.0-incubating --untar --untardir ./helm ``` @@ -152,11 +152,13 @@ The following tools are required to run the tests: * [Helm Unit Test](https://github.com/helm-unittest/helm-unittest) * [Chart Testing](https://github.com/helm/chart-testing) +* [yamllint](https://github.com/adrienverge/yamllint) Quick installation instructions for these tools: ```bash helm plugin install https://github.com/helm-unittest/helm-unittest.git brew install chart-testing +brew install yamllint ``` The integration tests also require some fixtures to be deployed. The `ci/fixtures` directory @@ -177,12 +179,8 @@ the Polaris repo root: helm unittest helm/polaris ``` -You can also lint the chart using the Chart Testing tool. You will need to install the [yamllint](https://github.com/adrienverge/yamllint) tool: -```bash -brew install yamllint -``` +You can also lint the chart using the Chart Testing tool, with the following command: -Then you can lint the chart, with the following command: ```bash ct lint --charts helm/polaris ``` From 63741e9f4d343e381e78007dd5b428f2532873dc Mon Sep 17 00:00:00 2001 From: Oleg Soloviov Date: Sun, 2 Nov 2025 16:03:44 +0000 Subject: [PATCH 4/4] fix: add yamllint dependency for helm-lint make target --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e88271afd7..81f8564357 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ SHELL = /usr/bin/env bash -o pipefail BUILD_IMAGE ?= true DOCKER ?= docker MINIKUBE_PROFILE ?= minikube -DEPENDENCIES ?= ct helm helm-docs java21 git +DEPENDENCIES ?= ct helm helm-docs java21 git yamllint OPTIONAL_DEPENDENCIES := jq kubectl minikube VENV_DIR := .venv PYTHON_CLIENT_DIR := client/python @@ -217,7 +217,7 @@ helm-unittest: check-dependencies ## Run Helm chart unittest @helm unittest helm/polaris @echo "--- Helm chart unittest complete ---" -helm-lint: DEPENDENCIES := ct +helm-lint: DEPENDENCIES := ct yamllint .PHONY: helm-lint helm-lint: check-dependencies ## Run Helm chart lint check @echo "--- Running Helm chart linting ---"