| # Istio |
| |
| Istio provides an alternative way to control ingress traffic into the cluster. |
| In addition, it allows to finetune the traffic inside the cluster and provides |
| a huge repertoire of load balancing and routing mechanisms. |
| |
| ***note |
| Currently, only the Gerrit replica chart allows using istio out of the box. |
| *** |
| |
| ## Install istio |
| |
| An example configuration based on the default profile provided by istio can be |
| found under `./istio/src/`. Some values will have to be adapted to the respective |
| system. These are marked by comments tagged with `TO_BE_CHANGED`. |
| To install istio with this configuration, run: |
| |
| ```sh |
| kubectl apply -f istio/istio-system-namespace.yaml |
| istioctl install -f istio/gerrit.profile.yaml |
| ``` |
| |
| To install Gerrit using istio for networking, the namespace running Gerrit has to |
| be configured to enable sidecar injection, by setting the `istio-injection: enabled` |
| label. An example for such a namespace can be found at `./istio/namespace.yaml`. |
| |
| ## Uninstall istio |
| |
| To uninstall istio, run: |
| |
| ```sh |
| istioctl uninstall -f istio/gerrit.profile.yaml |
| ``` |
| |
| ## Restricting access to a list of allowed IPs |
| |
| In development setups, it might be wanted to allow access to the setup only from |
| specified IPs. This can be done by patching the `spec.loadBalancerSourceRanges` |
| value of the service used for the IngressGateway. A patch doing that can be |
| uncommented in `istio/gerrit.profile.yaml`. |