istio / istio

Connect, secure, control, and observe services.
https://istio.io
Apache License 2.0
36.19k stars 7.79k forks source link

Istio 1.3.0: Fails to install with Helm 3 #17257

Closed KieranP closed 5 years ago

KieranP commented 5 years ago

Looks like Helm3 is stricter on apiVersion and causing issues:

Commands:

ISTIO_VERSION=1.3.0
curl -LO https://git.io/getLatestIstio | sh -
INSTALL_DIR=istio-$ISTIO_VERSION/install/kubernetes/helm
kubectl create namespace istio-system
helm3 upgrade -i istio-init $INSTALL_DIR/istio-init --namespace istio-system
helm3 upgrade -i istio $INSTALL_DIR/istio --namespace istio-system \
  --values $INSTALL_DIR/istio/values-istio-demo.yaml
kubectl label namespace default istio-injection=enabled

Result:

% ISTIO_VERSION=1.3.0
% curl -LO https://git.io/getLatestIstio | sh -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  2802  100  2802    0     0   2047      0  0:00:01  0:00:01 --:--:-- 2736k
% INSTALL_DIR=istio-$ISTIO_VERSION/install/kubernetes/helm
% kubectl create namespace istio-system
namespace/istio-system created
% helm3 upgrade -i istio-init $INSTALL_DIR/istio-init --namespace istio-system
Release "istio-init" does not exist. Installing it now.
NAME: istio-init
LAST DEPLOYED: 2019-09-20 19:45:55.037234 +1200 NZST m=+0.081714680
NAMESPACE: istio-system
STATUS: deployed
% helm3 upgrade -i istio $INSTALL_DIR/istio --namespace istio-system \
  --values $INSTALL_DIR/istio/values-istio-demo.yaml
Release "istio" does not exist. Installing it now.
NAME: istio
LAST DEPLOYED: 2019-09-20 19:46:40.514938 +1200 NZST m=+0.106486861
NAMESPACE: istio-system
STATUS: failed
Error: apiVersion "config.istio.io/v1alpha2" in istio/charts/mixer/templates/config.yaml is not available
waret commented 5 years ago

please check versions of crds after helm3 upgrade istio-init. Below is from my test:

# kubectl get crds -o custom-columns=name:.metadata.name,version:.spec.version
name                                   version
adapters.config.istio.io               v1alpha2
attributemanifests.config.istio.io     v1alpha2
authorizationpolicies.rbac.istio.io    v1alpha1
clusterrbacconfigs.rbac.istio.io       v1alpha1
destinationrules.networking.istio.io   v1alpha3
envoyfilters.networking.istio.io       v1alpha3
gateways.networking.istio.io           v1alpha3
handlers.config.istio.io               v1alpha2
httpapispecbindings.config.istio.io    v1alpha2
httpapispecs.config.istio.io           v1alpha2
instances.config.istio.io              v1alpha2
meshpolicies.authentication.istio.io   v1alpha1
policies.authentication.istio.io       v1alpha1
quotaspecbindings.config.istio.io      v1alpha2
quotaspecs.config.istio.io             v1alpha2
rbacconfigs.rbac.istio.io              v1alpha1
rules.config.istio.io                  v1alpha2
serviceentries.networking.istio.io     v1alpha3
servicerolebindings.rbac.istio.io      v1alpha1
serviceroles.rbac.istio.io             v1alpha1
sidecars.networking.istio.io           v1alpha3
templates.config.istio.io              v1alpha2
virtualservices.networking.istio.io    v1alpha3
KieranP commented 5 years ago

@waret So I also made an issue on helm, and they referred me to this ticket: https://github.com/helm/helm/issues/6451#issuecomment-532855139

According to them, istio-init is using a crd-install hook which is no longer supported in Helm3. So istio-init needs to be migrated to use other means to install custom CRDs.

KieranP commented 5 years ago

And according to this issue, looks like there is no plans to fix Helm3 support - https://github.com/istio/istio/issues/17167

So I'll go ahead and close this off then, as it seems neither party is wanting to patch either end to make this work :-)

kevinsingapore commented 4 years ago

image i got the same error. helm version: 3.0.0 istio: v1.4.1

borg286 commented 4 years ago

@waret your comment didn't seem to be addressed. It is not clear to me why this issue was closed. Namely, it seems helm 3 has the crds put into a folder rather than using a hook declaration. This issue was closed without sufficiently explaining what the hold up is. Why cant we just move the CRDs?