<p>I want to install istio with istioctl. My customizations will be numerous, so I dont think it would be helpful to use this syntax: <code>istioctl manifest apply --set addonComponents.grafana.enabled=true</code></p>

<p>I figured that the best way to do it is to copy a profile from <code>istio-1.5.1/install/kubernetes/operator/profiles</code></p>

<p>How can I add a custom profile to: </p>

<pre><code>[root@localhost profiles]# istioctl profile list
Istio configuration profiles:
    remote
    separate
    default
    demo
    empty
    minimal
</code></pre>

<p>So that I can: <code>istioctl manifest apply --set profile=mynewprofile</code></p>

<p><code>istio manifests apply --set addonComponents.grafana.enabled=true</code> would translate to</p>

<pre><code>apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  addonComponents:
    grafana:
      enabled: true
</code></pre>

<p>Istio uses the CR IstioOperator to pass values for installation. All customization options listed <a href="https://istio.io/docs/reference/config/istio.operator.v1alpha1/" rel="nofollow noreferrer">here</a> are available. Some examples can  be found in their documentation under <a href="https://istio.io/docs/setup/install/istioctl/#configure-component-settings" rel="nofollow noreferrer">Installation Configuration Profiles</a> and within their <a href="https://github.com/istio/istio/releases" rel="nofollow noreferrer">releases</a> under <code>install/kubernetes/operator/profiles</code>. </p>

<p>You can make custom profiles by referencing a path to another CR. Let's say you turned the file above into a-new-profile.yaml.</p>

<pre><code>istioctl manifest apply --set installPackagePath=&lt; path to istio releases &gt;/istio-1.5.1/install/kubernetes/operator/charts \
    --set profile=path/to/a-new-profile.yaml
</code></pre>

<p>After that, you would have your new profile set and ready to use. See their section <a href="https://istio.io/docs/setup/install/istioctl/#install-from-external-charts" rel="nofollow noreferrer">install-from-external-charts</a> for more information. </p>
