It’s good to hear this feedback from users, it helps us make the docs and product better. Sorry for the confusion in the docs, we need to make these clearer. Operator is now suitable for production use. You can think of the operator as an istioctl install
command being run from a pod in the cluster - these two share most of the same code under the hood. By design, the IstioOperator CRD has always been intended to be the definitive input into either the operator or istioctl
, and you can easily move between these two models of operation, using the same CR as the input. The IstioOperator CRD replaces values.yaml (strictly speaking IstioOperator.MeshConfig replaces the dynamic config part and IstioOperator.Component.K8s replaces k8s settings).
istioctl
creates a copy of the installation CR in the cluster which it calls installed-state
. This is likely to be used for some sanity checks going forward and can be used if you ever lose track of what is installed in the cluster.
manifest generate
can be used to install Istio along with kubectl apply
, but while the YAML is the same, the sequencing of resource application is different from istioctl install
and some checks are not performed. manifest generate
is intended as more of an auditing tool if you want to inspect/track the actual resources being applied to the cluster. If you want to generate and apply the YAML yourself without istioctl or the operator you’re better off using Helm v3 because that will be tested more going forward.
Lastly, istioctl install
is just the new name for istioctl manifest apply
and the latter is being deprecated. We had some strong feedback that istioctl manifest apply
was confusing and wordy, so it was changed, although manifest apply
is more representative of what the command is actually doing.
Here are the relevant PRs updating the docs if you’re interested: