Install istio-knative-kserve components

Deploy istio if it is not already running in aizen-infra namespace

helm repo add istio https://istio-release.storage.googleapis.com/charts
helm install istio-base istio/base -n istio-system --create-namespace
helm install istiod istio/istiod -n istio-system
helm install istio-ingress istio/gateway -n istio-system

Deploy knative, kserve if it is not already running in aizen-infra namespace

kubectl -n aizen-infra apply -f https://github.com/knative/serving/releases/download/knative-v1.17.0/serving-crds.yaml
kubectl -n aizen-infra apply -f $HELMCHART_LOCATION/aizen/charts/infra/charts/istio-knative-kserve/serving-core.yaml
kubectl apply -f $HELMCHART_LOCATION/aizen/charts/infra/charts/istio-knative-kserve/net-istio.yaml

#Install cert manager
helm repo add jetstack https://charts.jetstack.io --force-update
helm install -n aizen-infra \
  cert-manager jetstack/cert-manager \
  --version v1.17.2 \
  --set crds.enabled=true

helm install -n aizen-infra kserve-crd oci://ghcr.io/kserve/charts/kserve-crd --version v0.15.0
helm install -n aizen-infra kserve oci://ghcr.io/kserve/charts/kserve --version v0.15.0

#install gateway APIs
kubectl -n aizen-infra apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml

Note

Check if istio-injection is enabled on your namespace

kubectl get namespace -L istio-injection

Note

Helm upgrade command fails if istio-injection is enabled on your namespace. This is due to the conflicts it encounters during upgrade.

Solution to fix the failing upgrade, is to temporarily disable automatic injection on the namespace, complete the upgrade and then enable istio-injection on the namespace

kubectl label namespace < namespace > istio-injection-

helm upgrade ...

kubectl label namespace < namespace > istio-injection=enabled

To enable injection at pod level

spec:
   predictor:
     annotations:
        sidecar.istio.io/inject: "true"