openstack-image-manager 0.6.0__tar.gz → 0.20231219.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. {openstack-image-manager-0.6.0/openstack_image_manager.egg-info → openstack-image-manager-0.20231219.0}/PKG-INFO +6 -7
  2. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/README.md +1 -2
  3. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/almalinux.yml +8 -8
  4. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/centos.yml +8 -8
  5. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/cirros.yml +4 -0
  6. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/debian.yml +8 -8
  7. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/flatcar.yml +5 -0
  8. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/gardenlinux.yml +10 -0
  9. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/kubernetes.yml +16 -16
  10. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/rockylinux.yml +8 -8
  11. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/talos.yml +5 -0
  12. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/ubuntu.yml +16 -16
  13. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager/manage.py +16 -1
  14. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager/mirror.py +47 -36
  15. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0/openstack_image_manager.egg-info}/PKG-INFO +6 -7
  16. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager.egg-info/SOURCES.txt +0 -1
  17. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager.egg-info/requires.txt +4 -4
  18. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/requirements.txt +4 -4
  19. openstack-image-manager-0.6.0/etc/images/octavia.yml +0 -29
  20. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/LICENSE +0 -0
  21. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/MANIFEST.in +0 -0
  22. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/clearlinux.yml +0 -0
  23. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/fedora.yml +0 -0
  24. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/opensuse.yml +0 -0
  25. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/images/opnsense.yml +0 -0
  26. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/etc/schema.yaml +0 -0
  27. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager/__init__.py +0 -0
  28. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager/table.py +0 -0
  29. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager/update.py +0 -0
  30. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager.egg-info/dependency_links.txt +0 -0
  31. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager.egg-info/entry_points.txt +0 -0
  32. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/openstack_image_manager.egg-info/top_level.txt +0 -0
  33. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/pyproject.toml +0 -0
  34. {openstack-image-manager-0.6.0 → openstack-image-manager-0.20231219.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openstack-image-manager
3
- Version: 0.6.0
3
+ Version: 0.20231219.0
4
4
  Summary: OpenStack image manager
5
5
  Author-email: OSISM community <info@osism.tech>
6
6
  License: Apache License
@@ -223,14 +223,14 @@ Requires-Python: >=3.8
223
223
  Description-Content-Type: text/markdown
224
224
  License-File: LICENSE
225
225
  Requires-Dist: loguru==0.7.2
226
- Requires-Dist: minio==7.1.17
226
+ Requires-Dist: minio==7.2.0
227
227
  Requires-Dist: munch==4.0.0
228
228
  Requires-Dist: natsort==8.4.0
229
229
  Requires-Dist: openstacksdk==2.0.0
230
- Requires-Dist: paramiko==3.3.1
231
- Requires-Dist: patool==1.12
230
+ Requires-Dist: paramiko==3.4.0
231
+ Requires-Dist: patool==1.15.0
232
232
  Requires-Dist: requests==2.31.0
233
- Requires-Dist: ruamel.yaml==0.18.1
233
+ Requires-Dist: ruamel.yaml==0.18.5
234
234
  Requires-Dist: tabulate==0.9.0
235
235
  Requires-Dist: typer[all]==0.9.0
236
236
  Requires-Dist: yamale==4.0.4
@@ -239,7 +239,6 @@ Requires-Dist: yamale==4.0.4
239
239
 
240
240
  [![PyPi version](https://badgen.net/pypi/v/openstack-image-manager/)](https://pypi.org/project/openstack-image-manager/)
241
241
  [![PyPi license](https://badgen.net/pypi/license/openstack-image-manager/)](https://pypi.org/project/openstack-image-manager/)
242
+ [![Documentation](https://img.shields.io/static/v1?label=&message=documentation&color=blue)](https://osism.github.io/docs/guides/operations-guide/openstack/day2-operations/image-manager)
242
243
 
243
244
  Easily manage and keep up to date a large number of images on an OpenStack environment
244
-
245
- Documentation: <https://osism.github.io/docs/guides/operations-guide/openstack/image-manager>
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![PyPi version](https://badgen.net/pypi/v/openstack-image-manager/)](https://pypi.org/project/openstack-image-manager/)
4
4
  [![PyPi license](https://badgen.net/pypi/license/openstack-image-manager/)](https://pypi.org/project/openstack-image-manager/)
5
+ [![Documentation](https://img.shields.io/static/v1?label=&message=documentation&color=blue)](https://osism.github.io/docs/guides/operations-guide/openstack/day2-operations/image-manager)
5
6
 
6
7
  Easily manage and keep up to date a large number of images on an OpenStack environment
7
-
8
- Documentation: <https://osism.github.io/docs/guides/operations-guide/openstack/image-manager>
@@ -26,11 +26,11 @@ images:
26
26
  latest_url:
27
27
  https://repo.almalinux.org/almalinux/8/cloud/x86_64/images/AlmaLinux-8-GenericCloud-latest.x86_64.qcow2
28
28
  versions:
29
- - version: '20230524'
29
+ - version: '20231128'
30
30
  url:
31
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/almalinux-8/20230524-almalinux-8.qcow2
32
- checksum: sha256:c0ad09255d91288dac590d99c95197d83a2846f1bcbec3f4222fb04265a2a4d7
33
- build_date: 2023-05-24
31
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/almalinux-8/20231128-almalinux-8.qcow2
32
+ checksum: sha256:a1686bc537bce699b512e3233666f5b8f69ed797ff1ce0af52c17fdc52942621
33
+ build_date: 2023-11-28
34
34
  - name: AlmaLinux 9
35
35
  enable: true
36
36
  shortname: almalinux-9
@@ -57,8 +57,8 @@ images:
57
57
  latest_url:
58
58
  https://repo.almalinux.org/almalinux/9/cloud/x86_64/images/AlmaLinux-9-GenericCloud-latest.x86_64.qcow2
59
59
  versions:
60
- - version: '20230513'
60
+ - version: '20231113'
61
61
  url:
62
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/almalinux-9/20230513-almalinux-9.qcow2
63
- checksum: sha256:207d885ca8140e3106098e946cfc04088b0e21f50d24815051520d452eae0a50
64
- build_date: 2023-05-13
62
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/almalinux-9/20231113-almalinux-9.qcow2
63
+ checksum: sha256:6bbd060c971fd827a544c7e5e991a7d9e44460a449d2d058a0bb1290dec5a114
64
+ build_date: 2023-11-13
@@ -57,11 +57,11 @@ images:
57
57
  latest_url:
58
58
  https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-HEREBE\d+\.\dDRAGONS.x86_64.qcow2
59
59
  versions:
60
- - version: '20231003'
60
+ - version: '20231128'
61
61
  url:
62
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/centos-stream-8/20231003-centos-stream-8.qcow2
63
- checksum: sha256:5f98a3018e64ec334be3e350df59db29f6ad822688529304c7905594fff005f4
64
- build_date: 2023-10-03
62
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/centos-stream-8/20231128-centos-stream-8.qcow2
63
+ checksum: sha256:1ef05cc240dd41ef7a02906236bc4f0230dc701c474bb67b0e7c333ea2c01e71
64
+ build_date: 2023-11-28
65
65
  - name: CentOS Stream 9
66
66
  enable: true
67
67
  shortname: centos-stream-9
@@ -88,8 +88,8 @@ images:
88
88
  latest_url:
89
89
  https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-HEREBE\d+\.\dDRAGONS.x86_64.qcow2
90
90
  versions:
91
- - version: '20231002'
91
+ - version: '20231205'
92
92
  url:
93
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/centos-stream-9/20231002-centos-stream-9.qcow2
94
- checksum: sha256:d12bb6934dd207e242d6aa13f6a4ca4969449c14c3bbdd88a5ce5f5203597a40
95
- build_date: 2023-10-02
93
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/centos-stream-9/20231205-centos-stream-9.qcow2
94
+ checksum: sha256:233746d874702d00d202b8ac95f6dc881cd5e2b96cec2ed638c9b9faa42198a5
95
+ build_date: 2023-12-05
@@ -31,3 +31,7 @@ images:
31
31
  url: https://github.com/cirros-dev/cirros/releases/download/0.6.1/cirros-0.6.1-x86_64-disk.img
32
32
  checksum: "sha256:cc704ab14342c1c8a8d91b66a7fc611d921c8b8f1aaf4695f9d6463d913fa8d1"
33
33
  build_date: 2022-11-22
34
+ - version: '0.6.2'
35
+ url: https://github.com/cirros-dev/cirros/releases/download/0.6.2/cirros-0.6.2-x86_64-disk.img
36
+ checksum: "sha256:07e44a73e54c94d988028515403c1ed762055e01b83a767edf3c2b387f78ce00"
37
+ build_date: 2023-05-30
@@ -57,12 +57,12 @@ images:
57
57
  latest_url:
58
58
  https://cdimage.debian.org/cdimage/cloud/bullseye/latest/debian-11-genericcloud-amd64.qcow2
59
59
  versions:
60
- - version: '20231004'
60
+ - version: '20231013'
61
61
  url:
62
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/debian-11/20231004-debian-11.qcow2
62
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/debian-11/20231013-debian-11.qcow2
63
63
  checksum:
64
- sha512:83cb90b44232d6899369fa0980a81baf97a2ac5b188ffe373a74f4aa9ca7a5d13b80f6cc221fc31c3e556efb4f0aa254ea265c2d452d23e2e7f05efc7f3014fe
65
- build_date: 2023-10-04
64
+ sha512:651051664551425a1b731d5cb90cee33819ab8a3f955780efdb5e7045b057ec350345993a673f23a75c30aa2cb41409d0b6b5222a4f930028beaaa3c052ec0ec
65
+ build_date: 2023-10-13
66
66
  - name: Debian 12
67
67
  enable: true
68
68
  shortname: debian-12
@@ -88,9 +88,9 @@ images:
88
88
  latest_url:
89
89
  https://cdimage.debian.org/cdimage/cloud/bookworm/daily/latest/debian-12-genericcloud-amd64-daily.qcow2
90
90
  versions:
91
- - build_date: 2023-10-04
91
+ - build_date: 2023-12-11
92
92
  checksum:
93
- sha512:b594a146d0c85aa138b7fd4ba27cdf4c56fcceef2f90d6f4e1553d35c7faeab566df885ccaa2e48b2c9edf1d1926f0b997406f34729708069c6fad9ee1c73397
93
+ sha512:75a0f88e1306057f2208c508d8c2e60a715f7f831d151d6509f305598aad56019d0c3869fcd4a2a8004afbd9d0832cf700d918fb24d351dc0e5b4c9bdcf2d482
94
94
  url:
95
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/debian-12/20231004-debian-12.qcow2
96
- version: '20231004'
95
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/debian-12/20231211-debian-12.qcow2
96
+ version: '20231211'
@@ -28,3 +28,8 @@ images:
28
28
  source: https://stable.release.flatcar-linux.net/amd64-usr/3227.2.4/flatcar_production_openstack_image.img.bz2
29
29
  checksum: "sha256:774a4fd77da47a7c91714e6424891d6887ed7b9b72daadc40d56bb2f7527b4f5"
30
30
  build_date: 2022-10-27
31
+ - version: '3602.2.3'
32
+ url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/flatcar/3602.2.3/flatcar_production_openstack_image.img
33
+ source: https://stable.release.flatcar-linux.net/amd64-usr/3602.2.3/flatcar_production_openstack_image.img
34
+ checksum: "sha256:23b2d10aa0adf53d58bca0d9664338bdd308bef9e56f8393d39cb5e22bff4409"
35
+ build_date: 2023-12-11
@@ -2,6 +2,7 @@
2
2
  images:
3
3
  - name: Garden Linux
4
4
  enable: true
5
+ shortname: gardenlinux
5
6
  format: qcow2
6
7
  login: admin
7
8
  min_disk: 10
@@ -33,3 +34,12 @@ images:
33
34
  url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-image-gardenlinux/gardenlinux-amd64.934.10.qcow2
34
35
  checksum: "sha256:995e40bb7dcf044f82650f8131bc8b440215e5f1023c4edca81da585e7068b4f"
35
36
  build_date: 2023-08-28
37
+ - version: '934.11'
38
+ url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-image-gardenlinux/gardenlinux-amd64.934.11.qcow2
39
+ checksum: "sha256:616a217afe692ba8b6a9eca3a99291414b77a819c18430e6cba1b01a7ba6238b"
40
+ build_date: 2023-10-25
41
+ - version: '1312.1'
42
+ url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/gardenlinux/1312.1/openstack-gardener_prod-amd64-1312.1-c6ebc74e.qcow2
43
+ source: https://github.com/gardenlinux/gardenlinux/releases/download/1312.1/openstack-gardener_prod-amd64-1312.1-c6ebc74e.tar.xz
44
+ checksum: "sha256:12a67458959dabd8c4fa38f0224aa37f8e18629c218bbb716f411575a068663c"
45
+ build_date: 2023-11-22
@@ -22,19 +22,19 @@ images:
22
22
  provided_until: none
23
23
  tags: []
24
24
  versions:
25
- - version: '1.24.15'
26
- url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v1.24/ubuntu-2204-kube-v1.24.15.qcow2
27
- checksum: "sha256:12fbfead6400fae2fac20b8fae130e23afc351c44ad120deee2318b4bc7b2e59"
28
- build_date: 2023-06-15
29
- - version: '1.25.11'
30
- url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v1.25/ubuntu-2204-kube-v1.25.11.qcow2
31
- checksum: "sha256:7870a6c7c1761c572c070ca7b776b39344d8d2fd0dca28718fff433e9dca1a8f"
32
- build_date: 2023-06-21
33
- - version: '1.26.6'
34
- url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v1.26/ubuntu-2204-kube-v1.26.6.qcow2
35
- checksum: "sha256:0243eeee8a55ed9d9f920d4b168ec548541dc2504c996d58a20be5f6d6518409"
36
- build_date: 2023-06-21
37
- - version: '1.27.3'
38
- url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v1.27/ubuntu-2204-kube-v1.27.3.qcow2
39
- checksum: "sha256:857bbb11f29faba71f9f6dc1c44ed657507e422b42f589e1d96da2711c41d5bf"
40
- build_date: 2023-06-21
25
+ - version: '1.26.11'
26
+ url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v1.26/ubuntu-2204-kube-v1.26.11.qcow2
27
+ checksum: "sha256:ccab58db9581977b1455a27445f7e7f7238ca2457f13464e0d00586dd1f96d6a"
28
+ build_date: 2023-11-16
29
+ - version: '1.27.8'
30
+ url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v1.27/ubuntu-2204-kube-v1.27.8.qcow2
31
+ checksum: "sha256:cf597ab9ae457881bd182028efdc115db52332d72b7840a09165d55d5bf07444"
32
+ build_date: 2023-11-16
33
+ - version: '1.28.4'
34
+ url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v1.28/ubuntu-2204-kube-v1.28.4.qcow2
35
+ checksum: "sha256:ad9cb2fd07c0b9bd25e5476cc8daf0e9037f1b9d0bfef95ce2346f18f03bf58c"
36
+ build_date: 2023-11-16
37
+ - version: '1.29.0'
38
+ url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-k8s-capi-images/ubuntu-2204-kube-v1.29/ubuntu-2204-kube-v1.29.0.qcow2
39
+ checksum: "sha256:d6576f6f920e84070f86a67ca9b6b6c7e48b2baff32fde70840e3f7df09b87c4"
40
+ build_date: 2023-12-18
@@ -27,11 +27,11 @@ images:
27
27
  latest_url:
28
28
  https://download.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-GenericCloud.latest.x86_64.qcow2
29
29
  versions:
30
- - version: '20230518'
30
+ - version: '20231119'
31
31
  url:
32
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/rocky-8/20230518-rocky-8.qcow2
33
- checksum: sha256:086bf68f84c974cfcf533741c5be8752270df681a38f20423cf24b851d5edf77
34
- build_date: 2023-05-18
32
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/rocky-8/20231119-rocky-8.qcow2
33
+ checksum: sha256:d17f15a7649dd064795306c114b90fc5062e7d5fefa9e9f0bd6b7ce1aeac3ae5
34
+ build_date: 2023-11-19
35
35
  - name: Rocky 9
36
36
  enable: true
37
37
  shortname: rocky-9
@@ -59,8 +59,8 @@ images:
59
59
  latest_url:
60
60
  https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2
61
61
  versions:
62
- - version: '20230515'
62
+ - version: '20231113'
63
63
  url:
64
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/rocky-9/20230515-rocky-9.qcow2
65
- checksum: sha256:50510f98abe1b20a548102a05a9be83153b0bf634fc502d5c8d1f508f6de1430
66
- build_date: 2023-05-15
64
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/rocky-9/20231113-rocky-9.qcow2
65
+ checksum: sha256:7713278c37f29b0341b0a841ca3ec5c3724df86b4d97e7ee4a2a85def9b2e651
66
+ build_date: 2023-11-13
@@ -33,3 +33,8 @@ images:
33
33
  source: https://github.com/siderolabs/talos/releases/download/v1.4.5/openstack-amd64.tar.gz
34
34
  checksum: "sha256:fc7dc71a6acece93196c8bace15139469b7bfbe4fa7d001336da0fdda9b437c9"
35
35
  build_date: 2023-05-30
36
+ - version: '1.6.0'
37
+ url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/talos/1.6.0/openstack-amd64.raw
38
+ source: https://github.com/siderolabs/talos/releases/download/v1.6.0/openstack-amd64.raw.xz
39
+ checksum: "sha256:e3754c2338b4ce831db5442cf62deab260d56b64227a07cfc26e4b73eef5abaf"
40
+ build_date: 2023-12-15
@@ -179,11 +179,11 @@ images:
179
179
  latest_checksum_url: https://cloud-images.ubuntu.com/focal/current/SHA256SUMS
180
180
  latest_url: https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
181
181
  versions:
182
- - version: '20231003'
182
+ - version: '20231207'
183
183
  url:
184
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/ubuntu-20.04/20231003-ubuntu-20.04.qcow2
185
- checksum: sha256:9ad6b034f5cbb3492eb0148caee16cd73b63f2478bd2a6bc64503042b0f4035b
186
- build_date: 2023-10-03
184
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/ubuntu-20.04/20231207-ubuntu-20.04.qcow2
185
+ checksum: sha256:2b9d7a5caea114fa202614ddb8e5d3b947e42b070252072d502c396483af5bcf
186
+ build_date: 2023-12-07
187
187
  - name: Ubuntu 20.04 Minimal
188
188
  enable: true
189
189
  shortname: ubuntu-20.04-minimal
@@ -210,11 +210,11 @@ images:
210
210
  latest_url:
211
211
  https://cloud-images.ubuntu.com/minimal/releases/focal/release/ubuntu-20.04-minimal-cloudimg-amd64.img
212
212
  versions:
213
- - version: '20230921'
213
+ - version: '20231208'
214
214
  url:
215
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/ubuntu-20.04-minimal/20230921-ubuntu-20.04-minimal.qcow2
216
- checksum: sha256:a809d42ff539812149bd3dd9b8e2dfba611dff4fcfe14818423b32dc54d46bf9
217
- build_date: 2023-09-21
215
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/ubuntu-20.04-minimal/20231208-ubuntu-20.04-minimal.qcow2
216
+ checksum: sha256:42fc7f41eaeae416e949f6caa43385153ebee7c7e40bdcf6ed15a0f530cd8536
217
+ build_date: 2023-12-08
218
218
  - name: Ubuntu 22.04
219
219
  enable: true
220
220
  shortname: ubuntu-22.04
@@ -240,11 +240,11 @@ images:
240
240
  latest_checksum_url: https://cloud-images.ubuntu.com/jammy/current/SHA256SUMS
241
241
  latest_url: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
242
242
  versions:
243
- - version: '20230929'
243
+ - version: '20231211'
244
244
  url:
245
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/ubuntu-22.04/20230929-ubuntu-22.04.qcow2
246
- checksum: sha256:9d43e0311466f60b152059f97b75036e84bb20c1c3d8e0e2af7070e065b91c52
247
- build_date: 2023-09-29
245
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/ubuntu-22.04/20231211-ubuntu-22.04.qcow2
246
+ checksum: sha256:6d6af17f28c895d87e29092725370387c5e19efe57e58b96dc574feed4245f89
247
+ build_date: 2023-12-11
248
248
  - name: Ubuntu 22.04 Minimal
249
249
  enable: true
250
250
  shortname: ubuntu-22.04-minimal
@@ -271,8 +271,8 @@ images:
271
271
  latest_url:
272
272
  https://cloud-images.ubuntu.com/minimal/releases/jammy/release/ubuntu-22.04-minimal-cloudimg-amd64.img
273
273
  versions:
274
- - version: '20231003'
274
+ - version: '20231207'
275
275
  url:
276
- https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/ubuntu-22.04-minimal/20231003-ubuntu-22.04-minimal.qcow2
277
- checksum: sha256:f18fb7ceb7624545a4c70c1b683b3cfca70815afa1b92ebc08f8a9e49356c5d2
278
- build_date: 2023-10-03
276
+ https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-images/ubuntu-22.04-minimal/20231207-ubuntu-22.04-minimal.qcow2
277
+ checksum: sha256:a1af5cec732afebf21df98f7fa27c13ebc481d5afb2e732641e67a7d2a266642
278
+ build_date: 2023-12-07
@@ -1097,7 +1097,11 @@ class ImageManager:
1097
1097
  logger.info("Deactivating image '%s'" % image)
1098
1098
  self.conn.image.deactivate_image(cloud_image.id)
1099
1099
 
1100
- if self.CONF.hide and not self.CONF.dry_run:
1100
+ if (
1101
+ self.CONF.hide
1102
+ and not self.CONF.dry_run
1103
+ and cloud_image.visibility != "community"
1104
+ ):
1101
1105
  logger.info(
1102
1106
  "Setting visibility of '%s' to 'community'" % image
1103
1107
  )
@@ -1107,6 +1111,17 @@ class ImageManager:
1107
1111
  except Exception as e:
1108
1112
  logger.error("An Exception occurred: \n%s" % e)
1109
1113
  self.exit_with_error = True
1114
+ elif counter[image_name] <= last:
1115
+ logger.info(
1116
+ f"Image '{image}' will not be deleted, {counter[image_name]} <= {last}"
1117
+ )
1118
+ if (
1119
+ self.CONF.hide
1120
+ and not self.CONF.dry_run
1121
+ and cloud_image.visibility != "community"
1122
+ ):
1123
+ logger.info("Setting visibility of '%s' to 'community'" % image)
1124
+ self.conn.image.update_image(cloud_image.id, visibility="community")
1110
1125
  elif (
1111
1126
  counter[image_name] < last and self.CONF.hide and not self.CONF.dry_run
1112
1127
  ):
@@ -1,13 +1,14 @@
1
1
  # SPDX-License-Identifier: Apache-2.0
2
2
 
3
- import logging
4
3
  import os
5
4
  import patoolib
6
5
  import requests
7
6
  import shutil
7
+ import sys
8
8
  import typer
9
9
  import yaml
10
10
 
11
+ from loguru import logger
11
12
  from minio import Minio
12
13
  from minio.error import S3Error
13
14
  from os import listdir
@@ -36,41 +37,50 @@ def main(
36
37
  ),
37
38
  minio_bucket: str = typer.Option("openstack-images", help="Minio bucket"),
38
39
  ):
40
+
39
41
  if debug:
40
- level = logging.DEBUG
41
- logging.getLogger("paramiko").setLevel(logging.DEBUG)
42
+ level = "DEBUG"
42
43
  else:
43
- level = logging.INFO
44
- logging.getLogger("paramiko").setLevel(logging.WARNING)
45
- logging.basicConfig(
46
- format="%(asctime)s - %(message)s", level=level, datefmt="%Y-%m-%d %H:%M:%S"
44
+ level = "INFO"
45
+
46
+ log_fmt = (
47
+ "<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | "
48
+ "<level>{message}</level>"
49
+ )
50
+
51
+ logger.remove()
52
+ logger.add(sys.stderr, format=log_fmt, level=level, colorize=True)
53
+
54
+ client = Minio(
55
+ minio_server,
56
+ access_key=minio_access_key,
57
+ secret_key=minio_secret_key,
47
58
  )
48
59
 
60
+ result = client.bucket_exists(minio_bucket)
61
+ if not result:
62
+ logger.error(f"Create bucket '{minio_bucket}' first")
63
+ if not dry_run:
64
+ sys.exit(1)
65
+
49
66
  onlyfiles = []
50
67
  for f in listdir(images):
51
68
  if isfile(join(images, f)):
52
- logging.debug(f"Adding {f} to the list of files")
69
+ logger.debug(f"Adding {f} to the list of files")
53
70
  onlyfiles.append(f)
54
71
 
55
72
  all_images = []
56
- for file in onlyfiles:
73
+ for file in [x for x in onlyfiles if x.endswith(".yml")]:
74
+ logger.info(f"Processing file {file}")
57
75
  with open(join(images, file)) as fp:
58
76
  data = yaml.load(fp, Loader=yaml.SafeLoader)
59
77
  for image in data.get("images"):
60
- logging.debug(f"Adding {image['name']} to the list of images")
78
+ logger.debug(f"Adding {image['name']} to the list of images")
61
79
  all_images.append(image)
62
80
 
63
- client = Minio(
64
- minio_server,
65
- access_key=minio_access_key,
66
- secret_key=minio_secret_key,
67
- )
68
-
69
- result = client.bucket_exists(minio_bucket)
70
- if not result:
71
- logging.error(f"Create bucket '{minio_bucket}' first")
72
-
73
81
  for image in all_images:
82
+ logger.info(f"Processing image {image['name']}")
83
+
74
84
  if "versions" not in image:
75
85
  continue
76
86
 
@@ -80,7 +90,7 @@ def main(
80
90
  else:
81
91
  source = version["source"]
82
92
 
83
- logging.debug(f"source: {source}")
93
+ logger.debug(f"source: {source}")
84
94
 
85
95
  path = urlparse(source)
86
96
  url = urlparse(version["url"])
@@ -95,36 +105,37 @@ def main(
95
105
  if fileextension2 == ".tar":
96
106
  filename = os.path.basename(url.path)
97
107
 
98
- logging.debug(f"dirname: {dirname}")
99
- logging.debug(f"filename: {filename}")
108
+ logger.debug(f"dirname: {dirname}")
109
+ logger.debug(f"filename: {filename}")
100
110
 
101
111
  try:
102
112
  client.stat_object(minio_bucket, os.path.join(dirname, filename))
103
- logging.info(f"'{filename}' available in '{dirname}'")
113
+ logger.info(f"File {filename} available in bucket {dirname}")
104
114
  except S3Error:
105
- logging.info(f"'{filename}' not yet available in '{dirname}'")
115
+ logger.info(f"File {filename} not yet available in bucket {dirname}")
106
116
 
107
- logging.info(f"Downloading {version['source']}")
108
- response = requests.get(
109
- version["source"], stream=True, allow_redirects=True
110
- )
111
- with open(os.path.basename(path.path), "wb") as fp:
112
- shutil.copyfileobj(response.raw, fp)
113
- del response
117
+ if not isfile(os.path.basename(path.path)):
118
+ logger.info(f"Downloading {version['source']}")
119
+ response = requests.get(
120
+ version["source"], stream=True, allow_redirects=True
121
+ )
122
+ with open(os.path.basename(path.path), "wb") as fp:
123
+ shutil.copyfileobj(response.raw, fp)
124
+ del response
114
125
 
115
126
  if fileextension in [".bz2", ".zip", ".xz", ".gz"]:
116
- logging.info(f"Decompressing '{os.path.basename(path.path)}'")
127
+ logger.info(f"Decompressing {os.path.basename(path.path)}")
117
128
  patoolib.extract_archive(os.path.basename(path.path), outdir=".")
118
129
  os.remove(os.path.basename(path.path))
119
130
 
120
131
  if not dry_run:
121
- logging.info(f"Uploading '{filename}' to '{dirname}'")
132
+ logger.info(f"Uploading {filename} to bucket {dirname}")
122
133
  client.fput_object(
123
134
  minio_bucket, os.path.join(dirname, filename), filename
124
135
  )
125
136
  else:
126
- logging.info(
127
- f"Not uploading '{filename}' to '{dirname}' (dry-run enabled)"
137
+ logger.info(
138
+ f"Not uploading {filename} to bucket {dirname} (dry-run enabled)"
128
139
  )
129
140
 
130
141
  os.remove(filename)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openstack-image-manager
3
- Version: 0.6.0
3
+ Version: 0.20231219.0
4
4
  Summary: OpenStack image manager
5
5
  Author-email: OSISM community <info@osism.tech>
6
6
  License: Apache License
@@ -223,14 +223,14 @@ Requires-Python: >=3.8
223
223
  Description-Content-Type: text/markdown
224
224
  License-File: LICENSE
225
225
  Requires-Dist: loguru==0.7.2
226
- Requires-Dist: minio==7.1.17
226
+ Requires-Dist: minio==7.2.0
227
227
  Requires-Dist: munch==4.0.0
228
228
  Requires-Dist: natsort==8.4.0
229
229
  Requires-Dist: openstacksdk==2.0.0
230
- Requires-Dist: paramiko==3.3.1
231
- Requires-Dist: patool==1.12
230
+ Requires-Dist: paramiko==3.4.0
231
+ Requires-Dist: patool==1.15.0
232
232
  Requires-Dist: requests==2.31.0
233
- Requires-Dist: ruamel.yaml==0.18.1
233
+ Requires-Dist: ruamel.yaml==0.18.5
234
234
  Requires-Dist: tabulate==0.9.0
235
235
  Requires-Dist: typer[all]==0.9.0
236
236
  Requires-Dist: yamale==4.0.4
@@ -239,7 +239,6 @@ Requires-Dist: yamale==4.0.4
239
239
 
240
240
  [![PyPi version](https://badgen.net/pypi/v/openstack-image-manager/)](https://pypi.org/project/openstack-image-manager/)
241
241
  [![PyPi license](https://badgen.net/pypi/license/openstack-image-manager/)](https://pypi.org/project/openstack-image-manager/)
242
+ [![Documentation](https://img.shields.io/static/v1?label=&message=documentation&color=blue)](https://osism.github.io/docs/guides/operations-guide/openstack/day2-operations/image-manager)
242
243
 
243
244
  Easily manage and keep up to date a large number of images on an OpenStack environment
244
-
245
- Documentation: <https://osism.github.io/docs/guides/operations-guide/openstack/image-manager>
@@ -13,7 +13,6 @@ etc/images/fedora.yml
13
13
  etc/images/flatcar.yml
14
14
  etc/images/gardenlinux.yml
15
15
  etc/images/kubernetes.yml
16
- etc/images/octavia.yml
17
16
  etc/images/opensuse.yml
18
17
  etc/images/opnsense.yml
19
18
  etc/images/rockylinux.yml
@@ -1,12 +1,12 @@
1
1
  loguru==0.7.2
2
- minio==7.1.17
2
+ minio==7.2.0
3
3
  munch==4.0.0
4
4
  natsort==8.4.0
5
5
  openstacksdk==2.0.0
6
- paramiko==3.3.1
7
- patool==1.12
6
+ paramiko==3.4.0
7
+ patool==1.15.0
8
8
  requests==2.31.0
9
- ruamel.yaml==0.18.1
9
+ ruamel.yaml==0.18.5
10
10
  tabulate==0.9.0
11
11
  typer[all]==0.9.0
12
12
  yamale==4.0.4
@@ -1,12 +1,12 @@
1
1
  loguru==0.7.2
2
- minio==7.1.17
2
+ minio==7.2.0
3
3
  munch==4.0.0
4
4
  natsort==8.4.0
5
5
  openstacksdk==2.0.0
6
- paramiko==3.3.1
7
- patool==1.12
6
+ paramiko==3.4.0
7
+ patool==1.15.0
8
8
  requests==2.31.0
9
- ruamel.yaml==0.18.1
9
+ ruamel.yaml==0.18.5
10
10
  tabulate==0.9.0
11
11
  typer[all]==0.9.0
12
12
  yamale==4.0.4
@@ -1,29 +0,0 @@
1
- ---
2
- images:
3
- - name: OpenStack Octavia Amphora
4
- enable: false
5
- shortname: amphora
6
- format: qcow2
7
- login: ubuntu
8
- min_disk: 2
9
- min_ram: 512
10
- status: active
11
- visibility: shared
12
- multi: true
13
- meta:
14
- architecture: x86_64
15
- hw_disk_bus: scsi
16
- hw_rng_model: virtio
17
- hw_scsi_model: virtio-scsi
18
- hw_watchdog_action: reset
19
- os_distro: ubuntu
20
- replace_frequency: quarterly
21
- uuid_validity: last-3
22
- provided_until: none
23
- tags:
24
- - amphora
25
- versions:
26
- - version: 'ZED-2023-05-05'
27
- url: https://swift.services.a.regiocloud.tech/swift/v1/AUTH_b182637428444b9aa302bb8d5a5a418c/openstack-octavia-amphora-image/octavia-amphora-haproxy-zed.qcow2
28
- checksum: "sha256:f0ec47f052e9549b88b3ae86c805ab05036b2a711761b3e2595cb6325311588d"
29
- build_date: 2023-05-05