charm overrides snap-store-proxy setting

Bug #1905009 reported by Michał Ajduk
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Etcd Charm
Invalid
Undecided
Unassigned
Snap Layer
Invalid
Undecided
Unassigned

Bug Description

This charm overwrites snap-store-proxy (the proxy ID) provided by juju model.

Environment:

ubuntu@inf1az1cz202904rz:~$ juju model-config | grep snap
lxd-snap-channel default latest/stable
snap-http-proxy default ""
snap-https-proxy default ""
snap-store-assertions controller |-
snap-store-proxy controller ybyGkIokvRuSLPx5gR1ICivkACadQNK1
snap-store-proxy-url default ""

charm snap config:
  channel:
    default: stable
    description: The snap channel to install from.
    source: default
    type: string
    value: stable
  snap_proxy:
    default: ""
    description: |
      DEPRECATED. Use snap-http-proxy and snap-https-proxy model configuration settings. HTTP/HTTPS web proxy for Snappy to use when accessing the snap store.
    source: default
    type: string
    value: ""
  snap_proxy_url:
    default: ""
    description: |
      DEPRECATED. Use snap-store-proxy model configuration setting. The address of a Snap Store Proxy to use for snaps e.g. http://snap-proxy.example.com
    source: default
    type: string
    value: ""
  snapd_refresh:
    default: ""
    description: |
      How often snapd handles updates for installed snaps. The default (an empty string) is 4x per day. Set to "max" to check once per month based on the charm deployment date. You may also set a custom string as described in the 'refresh.timer' section here:
        https://forum.snapcraft.io/t/system-options/87
    source: default
    type: string
    value: ""

Steps to reproduce:
1. ubuntu@inf1az1cz202904rz:~$ juju add-machine etcd-1
created machine 21

2. ubuntu@inf1az1cz202904rz:~$ juju ssh 21
root@etcd-1:~# snap install core
2020-11-20T10:35:11Z INFO Waiting for automatic snapd restart...
core 16-2.47.1 from Canonical✓ installed

3. root@etcd-1:~# snap get core proxy
Key Value
proxy.http
proxy.https
proxy.store ybyGkIokvRuSLPx5gR1ICivkACadQNK1

Up until this stage everything is fine and the OS is set uo use the snapstore.

4. juju add-unit etcd --to 21
Juju logs:
2020-11-20 10:46:14 INFO juju-log Initializing Snap Layer

5. After this operation the proxy.store setting is removed:
root@graylog-1:~# snap get core proxy
Key Value
proxy.http
proxy.https
proxy.store

Root cause is at snap.py:
def configure_snap_store_proxy():
    # Do nothing if we don't have kernel support yet
    if not kernel_supported():
        return

    if not reactive.is_flag_set('config.changed.snap_proxy_url'):
        return
    ensure_snapd_min_version('2.30')
    snap_store_proxy_url = hookenv.config()['snap_proxy_url']
    if snap_store_proxy_url:
        bundle, store_id = download_assertion_bundle(snap_store_proxy_url)
        try:
            subprocess.check_output(
                ['snap', 'ack', bundle],
                stdin=subprocess.DEVNULL,
                universal_newlines=True,
            )
        except subprocess.CalledProcessError as e:
            raise InvalidBundleError(
                'snapd could not ack the proxy assertion: ' + e.output)
    else:
        store_id = '' # THIS OVERWRITES THE STORE ID IF IT IS SET

Revision history for this message
Cory Johns (johnsca) wrote :

This is a duplicate of https://bugs.launchpad.net/layer-snap/+bug/1882868 but definitely needs to be fixed, and this has more details. I'm going to mark it as Invalid here, but link to it in the other bug and raise the priority on that.

Cory Johns (johnsca)
Changed in charm-etcd:
status: New → Invalid
Changed in layer-snap:
status: New → Invalid
Revision history for this message
Michał Ajduk (majduk) wrote :

This is reported as a bug for the charm as the charm needs to be rebuilt after the SNAP layer change.

Revision history for this message
George Kraft (cynerva) wrote :

The etcd charm was added to https://bugs.launchpad.net/layer-snap/+bug/1882868 as an affected project and we will track rebuilding the etcd charm there.

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.