<p>About two year ago i installed a k8s cluster and added Istio. Currently i can’t remember how i installed it (operator or using <code>istioctl</code>). At this moment when i ask for the version i get:</p>
<pre class="lang-bash prettyprint-override"><code>./bin/istioctl version
client version: 1.11.3
control plane version: 1.11.3
data plane version: 1.11.3 (352 proxies)
</code></pre>
<p>I have the following namespaces related to istio:</p>
<pre class="lang-bash prettyprint-override"><code>kubectl get ns | grep istio
istio-operator        Active   726d
istio-system          Active   726d
</code></pre>
<p>iside our gitops i have an <code>IstioOperator</code> yaml:</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: istiocontrolplane
  namespace: istio-system
spec:
  profile: default
  meshConfig:
    accessLogFile: /dev/stdout
    extensionProviders: # https://istio.io/v1.9/docs/reference/config/istio.mesh.v1alpha1/#MeshConfig-ExtensionProvider-EnvoyExternalAuthorizationHttpProvider
      - name: xxxx
        envoyExtAuthzHttp:
          service: oauth2-proxy-xxxx.keycloak.svc.cluster.local
          port: 4180
          includeHeadersInCheck:
            - authorization
            - cookie
          headersToUpstreamOnAllow:
            - authorization
            - path
            - cookie
            - x-auth-request-access-token
            - x-auth-request-user
            - x-auth-request-email
          headersToDownstreamOnDeny:
            - content-type
            - set-cookie
  components:
    ingressGateways:
      - name: istio-ingressgateway
        k8s:
          hpaSpec:
            minReplicas: 2
          service:
            type: NodePort
            ports:
              - name: http2
                nodePort: 32080
                port: 80
                protocol: TCP
                targetPort: 8080
              - name: https
                nodePort: 32443
                port: 443
                protocol: TCP
                targetPort: 8443
    pilot:
      k8s:
        hpaSpec:
          minReplicas: 2
</code></pre>
<p>Inside the <code>istio-operator</code> i have the following items (mited the replicaset and services)</p>
<pre class="lang-bash prettyprint-override"><code>k -n istio-operator get all
NAME                                         READY   STATUS    RESTARTS       AGE
pod/istio-operator-1-12-5-65c9f7bf96-qcdsc   1/1     Running   0              15m
pod/istio-operator-1-14-1-9874cfdcb-bwtwg    1/1     Running   3 (51d ago)    83d
pod/istio-operator-58dc7d74f5-pbkcs          1/1     Running   48 (48d ago)   83d

NAME                                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/istio-operator          1/1     1            1           726d
deployment.apps/istio-operator-1-12-5   1/1     1            1           15m
deployment.apps/istio-operator-1-14-1   1/1     1            1           146d
</code></pre>
<p>Inside <code>istio-system</code> i have the following deployments:</p>
<pre class="lang-bash prettyprint-override"><code>NAME                   READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS    IMAGES                           SELECTOR
istio-ingressgateway   2/2     2            2           726d   istio-proxy   docker.io/istio/proxyv2:1.11.3   app=istio-ingressgateway,istio=ingressgateway
istiod                 2/2     2            2           726d   discovery 
</code></pre>
<p>I want to clean this mess up and move to version 14.1 (our k8s version is <code>v1.22.13</code>)</p>
<p>So my questions;</p>
<ul>
<li>what method of installation did i follow (or did i mix them through the last years)</li>
<li>how to clean and remove the older versions.</li>
<li>actually any tips that can help me &quot;clean&quot; this mess i created</li>
</ul>
<p>p.s. I am using custom <code>EnvoyFilter</code> for oauth2 and for redirecting (using lua)</p>

jen
<p>Can you refer to this <a href="https://stackoverflow.com/questions/54261468/u">SO</a> and If you uninstall and reinstall Istio, any resources that were created when Istio was initially installed will be deleted and will not be recreated. This includes Kubernetes objects such as Services, Deployments, ConfigMaps, and Secrets. In addition, any custom configurations or settings that were created for Istio will be lost, and will need to be re-created when Istio is reinstalled. For this reason, it is important to back up any configurations or settings before uninstalling Istio in a production environment.</p>
<p>The recommended way to <a href="https://istio.io/latest/docs/setup/additional-setup/customize-installation/" rel="nofollow noreferrer">install Istio</a> is to use istioctl with a custom IstioOperator. This allows you to configure the control plane as well as manage the Istio installation in a declarative way.</p>
