saltstack / saltstack/salt

[BUG] Using `signed-by` does not support `key_text` with `pkgrepo`/`aptpkg`

Open
#67,038 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-triage
Dominant language
Python
Stars
15.7k
Forks
5.6k
Avg merge
2d 44m
Merged PRs (30d)
80

Description

Description
With the deprecation of apt-key repositories are now supposed to used the signed-by option. If the name of the pkgrepo.managed state contains the signed-by option with the key_url option, then Salt handles creating the correct keyfile on disk (at the location specified by the signed-by option.

However, if the the key_text option is used instead of key_url then Salt does not create the key file.

I would expect that using key_text to provide the repository signing key would behave the same as using key_url.

Setup

# state/repo.sls
salt-repo:
  pkgrepo.managed:
    - name: deb [arch=amd64 signed-by=/etc/apt/keyrings/saltstack.asc] https://packages.broadcom.com/artifactory/saltproject-deb/ stable main
    - aptkey: False
    - key_text: |-
        -----BEGIN PGP PUBLIC KEY BLOCK-----

        mQGNBGci/cMBDADsa9xvghXwRxkGp/mZTR8W6iWpUlFskk3UdkaqX8DfUxYtiGqT
        9U7uRmttWbE6qUiyQ9in6K0N3KYb+jXa+Wfv+Kcrsn/v9lclautrwomgQeG0fKDC
        TOqUC5kJQ2DdB7UAC7RIA5aEGHRnbU9oAzQgij/niPLn1nxbLp4PeP46RifJ4VJO
        ltQWm/B/ADycvA7g+IIT8VKq6mf6aioILOfuPLvwB1QZ+u+R4C7Vb30pDDnP1C6+
        rJjAzroSbEaLhtnkMvZGv7ftO3ZRnn/jozpVaYolTPxQDsf7XMHyZyFc/VXHiRIt
        gLbquV9XiCFclMiyjvTD4Gx3hyWb10P0tmQJnlpiR1fnYa6uXE4YwGHW7uZIYZ5d
        XLfjy5EbNbEcTsrap7sGUo0hjEfEzLEsyNg8QCpDAv5RxdaNibYjPYO/oP3QXs+U
        L7ejq3G1Jgi5XToq2iRxLA/D5oAKID0pPp/p6KCjeP3cYnvztncZIZtDbFlCQNyg
        3pKXFlCF+j1LDVUAEQEAAbQlTlJFIFBhY2thZ2VzIDxzZXJ2ZXJzQG5yZS50YXMu
        Z292LmF1PokB1AQTAQoAPhYhBJQu3JYeg3K3nYGV9keZKSwHmcuuBQJnIv3DAhsD
        BQkJZgGABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEEeZKSwHmcuufgIMAMen
        voY9WpSVJy7WtOLRkJpap0xuB96vMw1uIm8EdRSd3GQBU8E/zQMP9DH+U2KqGvAH
        KvRcn3ZHbvKrKNjAJYLjbZWF55qY5uYPuZZqRTpiv5OFP81SNwahRwFKEoWUfQY9
        +p7jb7aybgcWG1N2ETYiRzCOSiNCL2xcm7oA55rCeTMh0pMQA5V5utjx7j3DBok+
        r3ZVS96HPJwmjo2tKmaJ+vswLSPhhIG4MqT2i32c6+GH7Kf2hIrXBSX0nuLr3dsg
        Ih97Zma4YOW8i/Y2m4ABp1X9URY8a0LcOzc+ooFKCMxkWy2VAr4JCueU+1g6Ad78
        B3Jl7ru9mhdMUYWM4/PMbW0ae9J38nNqK5sFZkvVK14yQWualJdq6Yjq0kQ6fNLr
        JDKRgXwsN4boX2/zqL4jz5iriQsEhCJrsketK3qdG1KYoqaZVbdPQW59SizygojP
        NneKHa4gbFd6eCRvl6F/vRzS1urgfoRhMULsEWAgkjQTjuHLOYPonxdmBhmeWbkB
        jQRnIv3DAQwAyij8bFVfqhk3lnH3WzEvLOqDhm+TdZZRO8rPI88K9T94F1UJeJU9
        XsH0DkTeJPhvxMBO39sYxPjOv2j+NnTjerlKNAfJPqRV6VnTn2ZEDHjD23qZmg3h
        TmSmKj4Bfy9VlAx1nxDOR59BVy3Xvi3t3VSkzJb2pKzFOHHkn8wYNkiNQQtOY/ha
        8eW4jqZJ2SzdDb0bXRObELWTZKczLPZujM+8gHnFXtvFlKq0GUOmPmvxe4OjhWF5
        ypGohyTyrit1Tedl+0qYthx/4d6OhLTkMIFYvimW0YbunEO+TXMv2PdQtvYD1a/o
        PH186TIFOpm66Ww0VdCvwdfl8k3RS8i7CWbu7PzY6oBozfPtOaG5Ysin1DhVJeL6
        hO60tgZOVlwgQqxbUC62SVIKBJUincSFhKszTo7RERpcG2QxSnJd1oxWrdfHrm3g
        oVuG79Y2ZMwJzglo1xtUfSUu1zkZswzoZth+oHvt/6oUxR1I2cnwB0hstDGxSz6y
        LBcm43Qr1ogFABEBAAGJAbwEGAEKACYWIQSULtyWHoNyt52BlfZHmSksB5nLrgUC
        ZyL9wwIbDAUJCWYBgAAKCRBHmSksB5nLrs+bDAC8nE73k0CcN5pkWAACxBlxE/9v
        hlcVecOECE5DL+bvXy5G8j8i4u1itVSC28o9u/sTC82cNCHgig0OD5N/wrrBQTQ3
        VTqyzqNhjD+7OEF8p+9ad45Ga94WNfq4ZAFCoCKs3mSBD7oXgnH2Z9ejWHx5MqDN
        MWm31P0WW7cA47EzC/0/+z2IL6KduiS1kIdQmFDKCl+4UXahYWqqLCLyDot31uC4
        5UKMAW5IliAFnqsLLhvdjRTSf0qAhmwf2aWV7ywUjc19zXzEPfv+RTPPFU2lKZVk
        DtZXqqpruRzxHLuPI1Z9E2QdOFX8zW6AZIYmdm9ZP9CyTlkLc2sMPURgDVvR28Lh
        dna5MsN1/gWNErDO7Rnu2ltXkeN4bTqFf6iSmOoqOw9nhyAYhK0BgOkS1FkwJlOl
        QlhV6M/oK9K0/2ruoEcDXJjkfeoBMysGeoFrbvtT1O4kNOBO5HzlINNmMwj1wfws
        EqGmQ6Sl69OS1WO0WkeusKoSZUkjsZXE9O1DGFg=
        =93R0
        -----END PGP PUBLIC KEY BLOCK-----

Please be as specific as possible and give set-up details.

  • on-prem machine
  • VM (Virtualbox, KVM, etc. please specify) - Virtualbox
  • VM running on a cloud service, please be explicit and add details
  • container (Kubernetes, Docker, containerd, etc. please specify)
  • or a combination, please be explicit
  • jails if it is FreeBSD
  • classic packaging
  • onedir packaging
  • used bootstrap to install

Steps to Reproduce the behavior

root@ubuntu2204:~# salt-call --output-diff state.apply test.repo -l debug
[DEBUG   ] Reading configuration from /etc/salt/minion
[DEBUG   ] Including configuration from '/etc/salt/minion.d/_schedule.conf'
[DEBUG   ] Reading configuration from /etc/salt/minion.d/_schedule.conf
[DEBUG   ] Including configuration from '/etc/salt/minion.d/f_defaults.conf'
[DEBUG   ] Reading configuration from /etc/salt/minion.d/f_defaults.conf
[DEBUG   ] Using cached minion ID from /etc/salt/minion_id: ubuntu2204.salt-vm.example.com
[WARNING ] Insecure logging configuration detected! Sensitive data may be logged.
[DEBUG   ] Configuration file path: /etc/salt/minion
[DEBUG   ] Grains refresh requested. Refreshing grains.
[DEBUG   ] Reading configuration from /etc/salt/minion
[DEBUG   ] Including configuration from '/etc/salt/minion.d/_schedule.conf'
[DEBUG   ] Reading configuration from /etc/salt/minion.d/_schedule.conf
[DEBUG   ] Including configuration from '/etc/salt/minion.d/f_defaults.conf'
[DEBUG   ] Reading configuration from /etc/salt/minion.d/f_defaults.conf
[DEBUG   ] The functions from module 'core' are being loaded by dir() on the loaded module
[DEBUG   ] The functions from module 'disks' are being loaded by dir() on the loaded module
[DEBUG   ] The functions from module 'extra' are being loaded by dir() on the loaded module
[DEBUG   ] The functions from module 'lvm' are being loaded by dir() on the loaded module
[DEBUG   ] The functions from module 'mdadm' are being loaded by dir() on the loaded module
[DEBUG   ] The functions from module 'minion_process' are being loaded by dir() on the loaded mo
dule
[DEBUG   ] The functions from module 'opts' are being loaded by dir() on the loaded module
[DEBUG   ] Override  __utils__: <module 'salt.loaded.int.grains.zfs' from '/opt/saltstack/salt/l
ib/python3.10/site-packages/salt/grains/zfs.py'>
[DEBUG   ] The functions from module 'zfs' are being loaded by dir() on the loaded module
[DEBUG   ] The functions from module 'zfs' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded zfs.is_supported
[DEBUG   ] Connecting to master. Attempt 1 of 1
[DEBUG   ] "salt" Not an IP address? Assuming it is a hostname.
[DEBUG   ] Master URI: tcp://192.168.50.10:4506
[DEBUG   ] Initializing new AsyncAuth for ('/etc/salt/pki/minion', 'ubuntu2204.salt-vm.example.com', 'tcp://192.168.50.10:4506')
[DEBUG   ] Generated random reconnect delay between '1000ms' and '11000ms' (6208)
[DEBUG   ] Setting zmq_reconnect_ivl to '6208ms'
[DEBUG   ] Setting zmq_reconnect_ivl_max to '11000ms'
[DEBUG   ] salt.crypt.get_rsa_key: Loading private key
[DEBUG   ] salt.crypt._get_key_with_evict: Loading private key
[DEBUG   ] Loaded minion key: /etc/salt/pki/minion/minion.pem
[DEBUG   ] SaltEvent PUB socket URI: /var/run/salt/minion/minion_event_0207ba741a_pub.ipc
[DEBUG   ] SaltEvent PULL socket URI: /var/run/salt/minion/minion_event_0207ba741a_pull.ipc
[DEBUG   ] Decrypting the current master AES key
[DEBUG   ] salt.crypt.get_rsa_key: Loading private key
[DEBUG   ] Loaded minion key: /etc/salt/pki/minion/minion.pem
[DEBUG   ] salt.crypt.verify_signature: Loading public key
[DEBUG   ] <salt.crypt.AsyncAuth object at 0x7f8d371edfc0> Got new master aes key.
[DEBUG   ] Closing AsyncReqChannel instance
[DEBUG   ] Connecting the Minion to the Master publish port, using the URI: tcp://192.168.50.10:
4505
[DEBUG   ] <salt.transport.zeromq.PublishClient object at 0x7f8d371ee0e0> connecting to tcp://19
2.168.50.10:4505
[DEBUG   ] Sending event: tag = __master_connected; data = {'master': 'salt', '_stamp': '2024-11
-06T00:26:21.387669'}
[DEBUG   ] salt.crypt.get_rsa_key: Loading private key
[DEBUG   ] Loaded minion key: /etc/salt/pki/minion/minion.pem
[DEBUG   ] Closing IPCMessageClient instance
[DEBUG   ] Determining pillar cache
[DEBUG   ] Initializing new AsyncAuth for ('/etc/salt/pki/minion', 'ubuntu2204.salt-vm.example.com', 'tcp://192.168.50.10:4506')
[DEBUG   ] salt.crypt.get_rsa_key: Loading private key
[DEBUG   ] Loaded minion key: /etc/salt/pki/minion/minion.pem
[DEBUG   ] Closing AsyncReqChannel instance
[DEBUG   ] The functions from module 'jinja' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded jinja.render
[DEBUG   ] The functions from module 'yaml' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded yaml.render
[DEBUG   ] The functions from module 'state' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded state.apply
[DEBUG   ] The functions from module 'direct_call' are being loaded by dir() on the loaded modul
e
[DEBUG   ] LazyLoaded direct_call.execute
[DEBUG   ] The functions from module 'config' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded config.option
[DEBUG   ] The functions from module 'saltutil' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded saltutil.is_running
[DEBUG   ] Override  __grains__: <module 'salt.loaded.int.module.grains' from '/opt/saltstack/sa
lt/lib/python3.10/site-packages/salt/modules/grains.py'>
[DEBUG   ] The functions from module 'grains' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded grains.get
[DEBUG   ] Initializing new AsyncAuth for ('/etc/salt/pki/minion', 'ubuntu2204.salt-vm.example.com', 'tcp://192.168.50.10:4506')
[DEBUG   ] Gathering pillar data for state run
[DEBUG   ] Finished gathering pillar data for state run
[INFO    ] Loading fresh modules for state activity
[DEBUG   ] The functions from module 'jinja' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded jinja.render
[DEBUG   ] The functions from module 'yaml' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded yaml.render
[DEBUG   ] In saltenv 'base', looking at rel_path 'test/repo.sls' to resolve 'salt://test/repo.s
ls'
[DEBUG   ] In saltenv 'base', ** considering ** path '/var/cache/salt/minion/files/base/test/rep
o.sls' to resolve 'salt://test/repo.sls'
[DEBUG   ] compile template: /var/cache/salt/minion/files/base/test/repo.sls
[DEBUG   ] Jinja search path: ['/var/cache/salt/minion/files/base']
[PROFILE ] Time (in seconds) to render '/var/cache/salt/minion/files/base/test/repo.sls' using '
jinja' renderer: 0.0029001235961914062
[INFO    ] Rendered data from file: /var/cache/salt/minion/files/base/test/repo.sls:
salt-repo:
  pkgrepo.managed:
    - name: deb [arch=amd64 signed-by=/etc/apt/keyrings/saltstack.asc] https://packages.broadcom
.com/artifactory/saltproject-deb/ stable main
    - aptkey: False
    - key_text: |-
        -----BEGIN PGP PUBLIC KEY BLOCK-----

        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
        EqGmQ6Sl69OS1WO0WkeusKoSZUkjsZXE9O1DGFg=
        =93R0
        -----END PGP PUBLIC KEY BLOCK-----

[PROFILE ] Time (in seconds) to render '/var/cache/salt/minion/files/base/test/repo.sls' using '
yaml' renderer: 0.002646923065185547
[DEBUG   ] The functions from module 'config' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded config.option
[DEBUG   ] The functions from module 'pkg' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded pkg.mod_repo
[DEBUG   ] The functions from module 'pkgrepo' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded pkgrepo.managed
[INFO    ] Running state [deb [arch=amd64 signed-by=/etc/apt/keyrings/saltstack.asc] https://pac
kages.broadcom.com/artifactory/saltproject-deb/ stable main] at time 11:26:21.915034
[INFO    ] Executing state pkgrepo.managed for [deb [arch=amd64 signed-by=/etc/apt/keyrings/salt
stack.asc] https://packages.broadcom.com/artifactory/saltproject-deb/ stable main]
[DEBUG   ] The functions from module 'cmd' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded cmd.run_stdout
[INFO    ] Executing command apt-key in directory '/root'
[DEBUG   ] stdout: OK
[DEBUG   ] stderr: Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead
 (see apt-key(8)).
[INFO    ] Executing command apt-get in directory '/root'
[DEBUG   ] The functions from module 'test' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded test.ping
[INFO    ] {'repo': 'deb [arch=amd64 signed-by=/etc/apt/keyrings/saltstack.asc] https://packages
.broadcom.com/artifactory/saltproject-deb/ stable main'}
[INFO    ] Completed state [deb [arch=amd64 signed-by=/etc/apt/keyrings/saltstack.asc] https://p
ackages.broadcom.com/artifactory/saltproject-deb/ stable main] at time 11:26:31.067904 (duration
_in_ms=9152.869)
[DEBUG   ] File /var/cache/salt/minion/accumulator/140244474677520 does not exist, no need to cl
eanup
[DEBUG   ] Closing AsyncReqChannel instance
[DEBUG   ] The functions from module 'state' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded state.check_result
[DEBUG   ] Initializing new AsyncAuth for ('/etc/salt/pki/minion', 'ubuntu2204.salt-vm.example.com', 'tcp://192.168.50.10:4506')
[DEBUG   ] Closing AsyncReqChannel instance
[DEBUG   ] The functions from module 'highstate' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded highstate.output
[DEBUG   ] The functions from module 'nested' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded nested.output
local:
----------
          ID: salt-repo
    Function: pkgrepo.managed
        Name: deb [arch=amd64 signed-by=/etc/apt/keyrings/saltstack.asc] https://packages.broadc
om.com/artifactory/saltproject-deb/ stable main
      Result: True
     Comment: Configured package repo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/saltstack.asc
] https://packages.broadcom.com/artifactory/saltproject-deb/ stable main'
     Started: 11:26:21.915035
    Duration: 9152.869 ms
     Changes:   
              ----------
              repo:
                  deb [arch=amd64 signed-by=/etc/apt/keyrings/saltstack.asc] https://packages.br
oadcom.com/artifactory/saltproject-deb/ stable main

Summary for local
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:   9.153 s

Expected behavior
I expected the a keyfile would be created at /etc/apt/keyrings/saltstack.asc.

Screenshots
N/A

Versions Report

Salt Version:
          Salt: 3006.9
 
Python Version:
        Python: 3.10.14 (main, Jun 26 2024, 11:44:37) [GCC 11.2.0]
 
Dependency Versions:
          cffi: 1.14.6
      cherrypy: 18.6.1
  cryptography: 42.0.5
      dateutil: 2.8.1
     docker-py: Not Installed
         gitdb: Not Installed
     gitpython: Not Installed
        Jinja2: 3.1.4
       libgit2: Not Installed
  looseversion: 1.0.2
      M2Crypto: Not Installed
          Mako: Not Installed
       msgpack: 1.0.2
  msgpack-pure: Not Installed
  mysql-python: Not Installed
     packaging: 22.0
     pycparser: 2.21
      pycrypto: Not Installed
  pycryptodome: 3.19.1
        pygit2: Not Installed
  python-gnupg: 0.4.8
        PyYAML: 6.0.1
         PyZMQ: 23.2.0
        relenv: 0.17.0
         smmap: Not Installed
       timelib: 0.2.4
       Tornado: 4.5.3
           ZMQ: 4.3.4
 
System Versions:
          dist: ubuntu 22.04 jammy
        locale: utf-8
       machine: x86_64
       release: 5.15.0-25-generic
        system: Linux
       version: Ubuntu 22.04 jammy

Additional context
N/A

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with state/repo.sls using pkgrepo.managed, key_text, signed-by, and aptkey: False, starting with the salt-call state.apply test.repo command shown. Trace the pkgrepo/aptpkg handling for key_text versus key_url; done means the signed-by key file is created at /etc/apt/keyrings/saltstack.asc and the repository applies successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, ubuntu
Domain
devops, infrastructure
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.