Sridhar GaddamandMiguel Angel Ajo Pelayo d38625a9fd Modify updateStrategy for Route-agent Pods
Currently, the updateStrategy for Route-agent pods is set to RollingUpdate
with maxUnavailable as 1. Because of this, when the route-agent DaemonSet
is updated, the Pods are updated one after the other. While the rolling
update strategy is good for user-facing services, for route-agent DaemonSet
its not the most suitable one as it takes time for all the route-agent pods
to be updated in a large cluster.

Ideally, it would have been great if "Recreate" updateStrategy was supported
for DaemonSets, but unfortunately K8s does not support it. But an alternate
way to achieve something similar is to configure rollingUpdate.maxUnavailable
to 100% so that the DaemonSet controller can update all the route-agent Pods
in a single go.

https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/#daemonset-update-strategy

Fixes issue: https://github.com/submariner-io/submariner/issues/734

Signed-Off-by: Sridhar Gaddam <sgaddam@redhat.com>
2020-08-21 10:05:46 +02:00
2020-08-20 14:36:53 -04:00
2019-09-26 12:54:02 +03:00
2019-09-05 14:12:53 +03:00
2019-03-11 22:06:52 -07:00
2020-04-16 09:40:21 -04:00

submariner-charts

Please see https://github.com/submariner-io/submariner for more information. This is only a supporting repository for Submariner

Dev workflow.

Prerequisites

Create a fork and checkout.

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.

Serve the modified charts

Before serving the modified charts, the charts must be packaged for local usage.

helm package ./submariner
helm package ./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

Use the modified charts

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

Modify submariner e2e tests helm deployment script to use your local 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
S
Description
No description provided
Readme
10 MiB
Languages
Shell 47.9%
Go Template 19.2%
Makefile 19%
Go 13.9%