Please see the Helm docs on Submariner's website.
Create a fork of the original repository, clone it locally and checkout a new branch from master.
Example:
git clone https://github.com/myuser/submariner-charts.git
cd submariner-charts
git checkout -b new-feature
Now you can modify the helm charts according to your needs.
Before serving the modified charts, the charts must be packaged for local usage.
helm package ./charts/submariner
helm package ./charts/submariner-k8s-broker
Note: if you just installed helm, you have to init the helm, by running
helm init --client-only
Serve the packaged charts through a local helm repository:
docker run -d --rm --name helm-repo -p 8080:8080 -v $PWD:/charts -e DEBUG=true -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts chartmuseum/chartmuseum
or
sudo podman run -d --rm --name helm-repo -p 8080:8080 -v $PWD:/charts -e DEBUG=true -e STORAGE=local -e STORAGE_LOCAL_ROOTDIR=/charts chartmuseum/chartmuseum
Get the container internal ip:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' helm-repo
The local container will serve the charts locally on port 8080.
Get logs for the container:
docker logs -f helm-repo
Init helm
helm init --client-only
Add your local repository to helm
internal_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' helm-repo)
helm repo add test-repo http://$internal_ip:8080
List the repos:
helm repo list
You should be able to see test-repo in the list
Search the new repo for submariner charts:
helm search -l test-repo
You can test your helm-charts with e2e tests from the shipyard repository.
In the file scripts/shared/lib/deploy_helm
change the line from:
helm repo add submariner-latest https://submariner-io.github.io/submariner-charts/charts
to
internal_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' helm-repo)
helm repo add submariner-latest http://$internal_ip:8080