<p>I'm trying to install Istio on AKS under our company environment, which means we need to refer to the internal proxy of docker registries, and I'm following this link: <a href="https://learn.microsoft.com/en-us/azure/aks/servicemesh-istio-install?pivots=client-operating-system-macos" rel="nofollow noreferrer">https://learn.microsoft.com/en-us/azure/aks/servicemesh-istio-install?pivots=client-operating-system-macos</a> and <a href="https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/#IstioComponentSetSpec" rel="nofollow noreferrer">https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/#IstioComponentSetSpec</a></p>
<p>The version of Istio I'm trying to install is 1.6.13, not 1.7.x due to 1.7.x is not compatible with Kubeflow: <a href="https://github.com/kubeflow/kubeflow/issues/5434" rel="nofollow noreferrer">https://github.com/kubeflow/kubeflow/issues/5434</a></p>
<p>While constructing the IstioOperatorSpec, I'm able to get the basic to work by providing the hub argument, but I'm not able to enable <code>addonComponents</code> such as grafana because they require images from different <code>hub</code>. My question is, how to set <code>hub</code> argument for each <code>addonComponents</code></p>
<p>This one doesn't work since I provided <code>hub</code> argument under <code>addonComponents</code>:</p>
<pre><code>apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: istio-control-plane
spec:
  hub: INTERNAL_DOCKER_HUB_1
  profile: default
  addonComponents:
    grafana:
      enabled: true
      hub: INTERNAL_DOCKER_HUB_2
</code></pre>

<p>I would start with that <code>addonComponents</code> and <code>IstioComponent</code> are 2 differents things.</p>
<p>According to documentation:</p>
<p><a href="https://i.stack.imgur.com/sAqGl.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/sAqGl.png" alt="enter image description here" /></a></p>
<p>So AFAIK it's not possible to set <code>hub</code> in addonComponents, as it's not possible to configure with <a href="https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/#ExternalComponentSpec" rel="nofollow noreferrer">ExternalComponentSpec</a>.</p>
<hr />
<p>As mentioned in comments by @Joel and @Rinor</p>
<blockquote>
<p>Istio doesn't recommend to use their addons templates for anything else than PoC / demo purpose, they recommend that you create your own templates. Which perhaps would explain if there's no possibility to provide a specific hub. – Joel</p>
</blockquote>
<blockquote>
<p>Oh but the addons are removed from Istio, he'd have to manually replace the images in the samples if he's going to use those.</p>
</blockquote>
<p>That's actually the answer to your question, if you want to configure addons, change images, add things like persistence or advanced security settings you should consider creating your own addons and configure them with istio.</p>
<p>There are the addons <a href="https://github.com/istio/istio/tree/master/samples/addons" rel="nofollow noreferrer">yamls</a>, you can use it as a reference to build your own setup.</p>
<hr />
<p>Note that with istio 1.8 installation of addons with istioctl have been removed.</p>
<p>As mentioned <a href="https://istio.io/latest/blog/2020/addon-rework/#changes" rel="nofollow noreferrer">here</a>:</p>
<blockquote>
<p>Istio 1.8: Installation of addons by istioctl is removed.</p>
<p>Removed the bundled addon installations from istioctl and the operator. Istio does not install components that are not delivered by the Istio project. As a result, Istio will stop shipping installation artifacts related to addons. However, Istio will guarantee version compatibility where necessary. It is the user’s responsibility to install these components by using the official Integrations documentation and artifacts provided by the respective projects. For demos, users can deploy simple YAML files from the <a href="https://github.com/istio/istio/tree/release-1.8/samples/addons" rel="nofollow noreferrer">samples/addons/</a> directory.</p>
</blockquote>
<hr />
