landscape-client doesn't support arm64, juju complains that the series doesn't match

Bug #2022950 reported by Bas de Bruijne
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Canonical Juju
Incomplete
Medium
Unassigned
Landscape Charm
New
Undecided
Unassigned

Bug Description

In test run https://solutions.qa.canonical.com/v2/testruns/babd9a7f-daf0-4240-ad0c-49d5f175fa15/, we deploy a bundle (https://oil-jenkins.canonical.com/artifacts/babd9a7f-daf0-4240-ad0c-49d5f175fa15/generated/generated/kubernetes-maas/bundle.yaml) where every application has its series defined as a work-around for LP: #2020899. In this bundle, the bundle series, machine series, vault series and landscape-client series are all "jammy", yet still the bundle fails to deploy with:

==========================
02:09:56 DEBUG juju.api monitor.go:35 RPC connection died
02:09:56 DEBUG juju.api monitor.go:35 RPC connection died
ERROR cannot deploy bundle: cannot add relation between "landscape-client:container" and "vault:juju-info": cannot add relation "landscape-client:container vault:juju-info": principal and subordinate applications' series must match
02:09:56 DEBUG cmd supercommand.go:537 error stack:
cannot add relation "landscape-client:container vault:juju-info": principal and subordinate applications' series must match
github.com/juju/juju/rpc.(*Conn).Call:178:
github.com/juju/juju/api.(*state).APICall:1251:
github.com/juju/juju/cmd/juju/application/deployer.(*bundleHandler).addRelation:1225: cannot add relation between "landscape-client:container" and "vault:juju-info"
github.com/juju/juju/cmd/juju/application/deployer.(*bundleHandler).handleChanges:619:
github.com/juju/juju/cmd/juju/application/deployer.bundleDeploy:104:
github.com/juju/juju/cmd/juju/application/deployer.(*deployBundle).deploy:177: cannot deploy bundle
==========================

Interestingly, we deploy the same bundle on focal where this issue does not show up.

tags: added: cdo-qa foundations-engine
Revision history for this message
John A Meinel (jameinel) wrote :

As far as I can tell, the actual issue is that Vault doesn't actually support jammy according to the metadata that I can find:
$ juju download vault --series jammy
ERROR "vault" does not support series "jammy" in channel "stable". Supported series are: bionic, cosmic, disco, eoan, focal, groovy, hirsute, impish, xenial.
$ juju deploy vault --series jammy
ERROR series "jammy" not supported by charm, supported series are: focal, bionic, xenial, impish, hirsute, groovy, eoan, disco, cosmic. Use --force to deploy the charm anyway.

While it is also a bug that we don't give a better error message, the issue is that we cannot deploy a jammy vault because it doesn't exist.

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

The issue might be a confusion between 'metadata.yaml' and 'manifest.yaml'. Because if I do:
```
$ juju info vault --series jammy
name: vault
publisher: OpenStack Charmers
summary: a tool for managing secrets
description: |
  Vault secures, stores, and tightly controls access to
  tokens, passwords, certificates, API keys, and other
  secrets in modern computing. Vault handles leasing, key
  revocation, key rolling, and auditing. Through a unified
  API, users can access an encrypted Key/Value store and
  network encryption-as-a-service, or generate AWS IAM/STS
  credentials, SQL/NoSQL databases, X.509 certificates,
  SSH credentials, and more.
store-url: https://charmhub.io/vault
charm-id: u3vtXfBTJwhYCwwvkzCs0YqdCfsOBMdO
supports: xenial, bionic, focal, groovy, hirsute, impish
```

That seems to say that we do a lookup according to Charmhub's rules, and it returns a charm binary that say that it doesn't actually support Jammy. I need to dig a bit more, but I think the short term resolution is that the charm needs to be updated.

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

If this is just a bad error message, then I think this is not a critical fix on Juju's side. It would be good to have a better error message, but we can't deploy the bundle because the charms don't support it.

Changed in juju:
importance: Undecided → Medium
status: New → Incomplete
Revision history for this message
John A Meinel (jameinel) wrote :

hm, digging a bit more, it seems that there *is* a jammy support version for 1.8/stable just not for stable:
$ juju download vault --series jammy --channel 1.8/stable
Fetching charm "vault" using "1.8/stable" channel and base "amd64/ubuntu/22.04"
Install the "vault" charm with:
    juju deploy ./vault_a26a6db.charm

If I do the work manually (not using a bundle), it does seem to work:
$ juju deploy vault --series jammy --channel 1.8/stable
Located charm "vault" in charm-hub, revision 108
Deploying "vault" from charm-hub charm "vault", revision 108 in channel 1.8/stable on jammy
$ juju deploy landscape-client --series jammy
Located charm "landscape-client" in charm-hub, revision 49
Deploying "landscape-client" from charm-hub charm "landscape-client", revision 49 in channel stable on jammy
$ juju relate vault landscape-client

Was all happy

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

So I tried to strip down the bundle.yaml to a minimal form, with just the vault charm and landscape-client, and having them both targeting series: jammy, and having all the other configuration, spaces, etc removed so that I could deploy it on LXD.

The issue is that 2.9.42 did it just fine. So I'm unable to reproduce what you were seeing with the bundle that you specified:

$ juju deploy ./bundle.yaml
Located charm "landscape-client" in charm-hub, channel stable
Located charm "vault" in charm-hub, channel 1.8/stable
Executing changes:
- upload charm landscape-client from charm-hub for series jammy with architecture=amd64
- deploy application landscape-client from charm-hub on jammy
- upload charm vault from charm-hub for series jammy from channel 1.8/stable with architecture=amd64
- deploy application vault from charm-hub on jammy with 1.8/stable
  added resource core
  added resource vault
- add new machine 5 (bundle machine 1)
- add relation landscape-client:container - vault:juju-info
- add unit vault/1 to new machine 5
- add unit vault/2 to new machine 6
- add unit vault/3 to new machine 7
Deploy of bundle completed.
jameinel@jammy:~/dev/tmp/series-broken
$ juju --version
2.9.42-ubuntu-amd64
jameinel@jammy:~/dev/tmp/series-broken
$ cat bundle.yaml
applications:
  landscape-client:
    charm: landscape-client
    options:
      account-name: standalone
      disable-unattended-upgrades: true
      url: ''
    series: jammy
  vault:
    channel: 1.8/stable
    charm: vault
    num_units: 3
    series: jammy
    to:
    - '1'
machines:
  '1':
    series: jammy
series: jammy
relations:
- ['landscape-client:container', 'vault:juju-info']

Revision history for this message
Bas de Bruijne (basdbruijne) wrote :

Looking back at the test runs we had over the weekend, it looks like we have had this same bundle deploy fine on amd64 but showing this error only on arm64.

Indeed, `juju info landscape --format yaml` shows that only amd64 is supported. However, the focal equivalent of this bundle (https://oil-jenkins.canonical.com/artifacts/a8c1cdfc-8724-4688-96ef-9bc3231d5ec0/generated/generated/kubernetes-maas/bundle.yaml) does deploy on arm64.

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

Just to make sure I understand, essentially the error you are getting is because there really isn't a version of the charm available for ARM64, and while getting "incompatible series" isn't the greatest error message, Juju isn't missing something from charmhub.

Revision history for this message
Bas de Bruijne (basdbruijne) wrote :

Correct, the only problem on the juju side is that the error message isn't great.

I'm linking the landscape-charms here too as a request to build the landscape-client for arm64.

summary: - juju thinks principal and subordinate applications' don't match while
- they do
+ landscape-client doesn't support arm64, juju complains that the series
+ doesn't match
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.