1

Currently we deploy the custom istio ingress gateways(g/w) through helm using Spinnaker pipeline.(One time activity for every k8s namespace)

istio 1.6 is deprecating the helm way of creation of custom user g/w. Instead is asks to deploy it using istioctl command.

Since Spinnaker supports only Helm2 or Helm3 as rendering engine.

My specific ask is how can I now deploy the custom istio user g/w through helm pipeline using istioctl command?

  • Maybe you could try to install istio operator with helm as mentioned [here](https://istio.io/latest/docs/setup/install/standalone-operator/#prerequisites) and then install istio with operator as mentioned [here](https://istio.io/latest/docs/setup/install/standalone-operator/#install)? – Jakub Jul 15 '20 at 11:26
  • My requirement is to just deploy custom istio user g/w not the istio itself – Souvik Sarkhel Jul 23 '20 at 07:34
  • 1
    Then you could create istio operator yaml with your custom gateway, there is an [example](https://stackoverflow.com/a/61865633/11977760) where they changed default istio ingress gateway values with it. – Jakub Jul 23 '20 at 07:39
  • Yes that what I am doing now. I wanted to know whether it could be done directly in a Spinnaker stage with istioctl. Looks like it is not possible hence I created a wrapper Docker image which does everything and I am executing this docker image from Spinnaker stage – Souvik Sarkhel Jul 24 '20 at 07:41
  • Hi @SouvikSarkhel Do you think we can add a 'script' stage to run 'istioctl manifest generate -f ' to obtain the manifest and then deploy it? – Gauraang Khurana Oct 26 '20 at 18:17

1 Answers1

0

Since I didn't get much response. Let me answer it myself. Here's what I did:

  • I took a bitnami kubectl docker base image
  • Bundled on of the istio releases say 1.5.8 https://github.com/istio/istio/releases/download/1.5.8/istio-1.5.8-linux.tar.gz
  • Get the default manifest using istioctl manifest generate
  • Modify it accordingly to define a custom ingress-gateway
  • Run the following command in the entrypoint.sh for the Docker image istioctl manifest generate -f manifest.yaml | kubecl apply -f -
  • Create a docker image including all the steps
  • In Spinnaker pipeline create a stage which deploys based on K8s file. In the file define a Job and run the docker image created.

In this way once the job starts running it creates a K8s pod which internally creates the custom user istio ingress g/w.