charm overrides snap-store-proxy setting

Bug #1905011 reported by Michał Ajduk on 2020-11-20
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Grafana Charm
Undecided
Unassigned
Snap Layer
Undecided
Stuart Bishop

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 grafana-1
created machine 21

2. ubuntu@inf1az1cz202904rz:~$ juju ssh 21
root@grafana-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@grafana-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 grafana --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

Michał Ajduk (majduk) wrote :

Root cause is https://bugs.launchpad.net/layer-snap/+bug/1882868

Root cause is https://bugs.launchpad.net/layer-snap/+bug/1882868
Reporting it here as after fixing the SNAP layer issue, this charm needs to be rebuilt.

Stuart Bishop (stub) wrote :
Changed in layer-snap:
status: New → In Progress
assignee: nobody → Stuart Bishop (stub)
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers