To clarify "Istio Operator Install" doc which seems to contain incorrect info

I am referring to the red alert shown in the docs of Istio / Istio Operator Install which says:

Prior to Istio 1.10.0, the namespace istio-system needs to be created before installing the operator. As of Istio 1.10.0, this is no longer required.


Here is what i did.

Removed all istio namespaces from GKE cluster.

$ kubectl delete namespace istio-operator istio-system

Installed istioctl version 1.10.2 in MacOS following Istio / Using the Istioctl Command-line Tool.

Then ran the following:

$ istioctl operator dump > operator_dump.yaml
$ kubectl apply -f operator_dump.yaml

Confirmed that the istio-operator is up & running

$ kubectl rollout status deployment/istio-operator -n=istio-operator
deployment "istio-operator" successfully rolled out

The Error

The next step involves applying the IstioOperator CRD following the docs in Istio / Istio Operator Install

kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: example-istiocontrolplane
spec:
  profile: demo
EOF

At this point i expect it to just work. But i got the following error:

Error from server (NotFound): error when creating "STDIN": namespaces "istio-system" not found

This behavior does not align with the alert given in the same doc which says as of Istio 1.10.0, the namespace istio-system no longer needs to be created beforehand


Can please help me understand the matter here. Or does the doc need revision?

Hi syedrakib,

Could you please raise an issue here?

https://github.com/istio/istio.io/issues/9892 was closed as having fixed this, but we’ll get Shamsher to comment.

Raised issue here https://github.com/istio/istio.io/issues/10321

This confusion has now been addressed by Rewrite operator install docs for clarity around creating namespace by craigbox · Pull Request #10343 · istio/istio.io · GitHub

The updated warning in Istio / Istio Operator Install now reads:

[…] As of Istio 1.10.0, the istioctl operator init will create the istio-system namespace. […] If you use something other than istioctl operator init , then the istio-system namespace needs to be created manually.