Comment 4 for bug 1982921

Revision history for this message
John A Meinel (jameinel) wrote :

So looking at what you've posted:
applications:
  istio-ingressgateway:
    charm: istio-gateway
    channel: latest/edge
    scale: 1
    trust: true
    _github_repo_name: istio-operators
    options:
      kind: ingress
    revision: 74

vs
$ juju info istio-ingressgateway
...
  1.5/edge: 24 2022-01-20 (24) 9MB

So there is no revision 74 to deploy from latest/edge. Notably, there is no 'latest/edge' channel at all, just a 1.5/edge.

Which also matches charmhub:
https://charmhub.io/istio-ingressgateway

Now there might have been a revision 74 from Charm Store (though my understanding is that charmhub revisions are always >= their charm store counterparts.)

istio-pilot looks plausible:
  istio-pilot:
    charm: istio-pilot
    channel: latest/edge
    trust: true
    scale: 1
    _github_repo_name: istio-operators
    options:
      default-gateway: kubeflow-gateway
    revision: 95

vs
$ juju info istio-pilot
...
channels: |
  latest/stable: 34 2021-12-03 (34) 44MB
  latest/candidate: 69 2022-04-06 (69) 33MB
  latest/beta: 34 2021-12-03 (34) 44MB
  latest/edge: 101 2022-07-28 (101) 33MB

So it does seem plausible that the revision you're asking for exists (though if it was never actually `charmcraft released` then it is a hidden revision that Juju cannot ask for.

training-operator can also likely have the request
  training-operator:
    charm: training-operator
    channel: 1.3/edge
    scale: 1
    trust: true
    _github_repo_name: training-operator
    revision: 12
    #series: kubernetes
vs
$ juju info training-operator
...
channels: |
  latest/stable: 6 2022-01-20 (6) 7MB
  latest/candidate: 8 2022-04-05 (8) 9MB
  latest/beta: ↑
  latest/edge: 16 2022-07-12 (16) 9MB
  1.3/stable: 12 2022-06-30 (12) 9MB
  1.3/candidate: ↑
  1.3/beta: ↑
  1.3/edge: 12 2022-06-29 (12) 9MB

Directly deploying them at those revisions seems to work (except for instio-ingressgateway that doesn't have that revision, but maybe that was a typo and you meant 24 vs 74 and 1.5/edge vs latest/edge):
$ juju deploy training-operator --channel 1.3/edge --revision 12
Located charm "training-operator" in charm-hub, revision 12
Deploying "training-operator" from charm-hub charm "training-operator", revision 12 in channel 1.3/edge on focal
$ juju deploy istio-pilot --channel latest/edge --revision 95
Located charm "istio-pilot" in charm-hub, revision 95
Deploying "istio-pilot" from charm-hub charm "istio-pilot", revision 95 in channel edge on focal
$ juju deploy istio-pilot --channel latest/edge --revision 95
Located charm "istio-pilot" in charm-hub, revision 95
Deploying "istio-pilot" from charm-hub charm "istio-pilot", revision 95 in channel edge on focal
$ juju deploy istio-ingressgateway --channel 1.5/edge --revision 24
Located charm "istio-ingressgateway" in charm-hub, revision 24
Deploying "istio-ingressgateway" from charm-hub charm "istio-ingressgateway", revision 24 in channel 1.5/edge on focal

$ juju status
Model Controller Cloud/Region Version SLA Timestamp
test mk8s microk8s/localhost 2.9.33 unsupported 13:14:28-04:00

App Version Status Scale Charm Channel Rev Address Exposed Message
istio-ingressgateway active 1 istio-ingressgateway 1.5/edge 24 no
istio-pilot waiting 1 istio-pilot edge 95 10.152.183.111 no installing agent
training-operator active 1 training-operator 1.3/edge 12 10.152.183.66 no

Unit Workload Agent Address Ports Message
istio-ingressgateway/0* active idle
istio-pilot/0* waiting idle 10.1.236.201 Missing istio-ingressgateway-workload service, deferring this event
training-operator/0* active idle 10.1.236.200

Now the question, is does/doesn't this work from a bundle:
$ cat test.bundle
name: istio
bundle: kubernetes
applications:
  istio-ingressgateway:
    charm: istio-gateway
    channel: 1.5/edge
    scale: 1
    trust: true
    options:
      kind: ingress
    revision: 24
  istio-pilot:
    charm: istio-pilot
    channel: latest/edge
    trust: true
    scale: 1
    options:
      default-gateway: kubeflow-gateway
    revision: 95
  training-operator:
    charm: training-operator
    channel: 1.3/edge
    scale: 1
    trust: true
    revision: 12
relations:
  - [istio-ingressgateway:istio-pilot, istio-pilot:istio-pilot]

$ juju deploy ./test.bundle --trust
Located charm "istio-gateway" in charm-hub, channel 1.5/edge
Located charm "istio-pilot" in charm-hub, channel edge
Located charm "training-operator" in charm-hub, channel 1.3/edge
Executing changes:
- upload charm istio-gateway from charm-hub with revision 24 with architecture=amd64
ERROR cannot deploy bundle: cannot add charm "istio-gateway": series required for charm-hub charms (bad request)

Now, we actually deployed all of those from 'focal' so lets try that:
$ head test.bundle
name: istio
bundle: kubernetes
applications:
  istio-ingressgateway:
    charm: istio-gateway
    series: focal
...
$ juju deploy ./test.bundle --trust
ERROR cannot deploy bundle: the provided bundle has the following errors:
series for application "istio-ingressgateway" not valid for Kubernetes bundles
series for application "istio-pilot" not valid for Kubernetes bundles
series for application "training-operator" not valid for Kubernetes bundles

So this finally worked for me:
$ cat test.bundle
name: istio
applications:
  istio-ingressgateway:
    charm: istio-gateway
    series: focal
    channel: 1.5/edge
    scale: 1
    trust: true
    # v-- this option doesn't exist
    # options:
    # kind: ingress
    revision: 24
  istio-pilot:
    charm: istio-pilot
    series: focal
    channel: latest/edge
    trust: true
    scale: 1
    options:
      default-gateway: kubeflow-gateway
    revision: 95
  training-operator:
    charm: training-operator
    series: focal
    channel: 1.3/edge
    scale: 1
    trust: true
    revision: 12
relations:
  - [istio-ingressgateway:istio-pilot, istio-pilot:istio-pilot]

$ juju deploy ./test.bundle --trust
Located charm "istio-gateway" in charm-hub, channel 1.5/edge
Located charm "istio-pilot" in charm-hub, channel edge
Located charm "training-operator" in charm-hub, channel 1.3/edge
Executing changes:
- upload charm istio-gateway from charm-hub for series focal with revision 24 with architecture=amd64
- deploy application istio-ingressgateway from charm-hub on focal with 1.5/edge using istio-gateway
  added resource oci-image
- upload charm istio-pilot from charm-hub for series focal with revision 95 with architecture=amd64