Skip to main content

A cloud information discovery tool for EGI FedCloud

Project description

Cloud Information provider

Python tests GitHub release

The Cloud Information provider generates a representation of cloud resources following the GlueSchema representation.

The provider extracts information from a cloud deployment using public APIs and formats as a JSON.

Currently supported cloud middleware:

  • OpenStack

Installation

Use pip:

pip install cloud-info-provider

From source

Source-based installation is not recommended for production usage, but it is handy for testing or development purpose. Get the source by cloning this repository and run with uv

uv run cloud-info-provider-service

Usage

cloud-info-provider-service <openstack authentication options> <site_config>

Site configuration

The cloud-info-provider uses a YAML file describe the basic information of the cloud site to represent. This file follows the specification in the fedcloud-catchall-operations for site descriptions:

---
gocdb: "<NAME OF THE SITE IN GOCDB>"
endpoint: "https://example.com:5000/v3"
# the images is ignored by the cloud-info-provider
images:
vos:
  - name: "<VO name>"
    auth:
      project_id: "<project id for the VO>"
  - name: ...

Middleware

Dynamic information is obtained with the middleware providers. Use the --middleware option for specifying the provider to use (see the command help for exact names).

Each dynamic provider has its own command-line options for specifying how to connect to the underlying service. Use the --help option for a complete listing of options.

OpenStack

The openstack provider require a working keystone endpoint and valid credentials to access that endpoint. It uses keystoneauth so any Keystone authentication method available in that library can be used. The configured user for authentication must be a member of every project configured in your shares. Authentication options largely depend on the authentication method used, default is username/password. For example, using OpenID Connect against a EGI Check-in integrated endpoint:

cloud-info-provider-service --middleware openstack \
    --os-auth-type v3oidcaccesstoken \
    --os-identity-provider egi.eu --os-protocol oidc \
    --os-access-token $ACCESS_TOKEN \
    --os-auth-url https://<keystone-endpoint>:5000/v3

Other extra options for the providers (defaults should be OK):

  • --select-flavors {all,public,private} Select all (default), public or private flavors. For more details see OpenStack flavors documentation.

  • --all-images If set, include information about all images (including snapshots), otherwise only publish images with EGI registry metadata, ignoring the others.

Support for specialized hardware (GPU & InfiniBand) through OpenStack properties

The openstack provider is able to gather additional GPU and InfiniBand information made available through flavor's and image's metadata. To this end, this provider allows passing CLI options (--property-*) to match the metadata keys. As an example, the option --property-flavor-gpu-vendor gpu:vendor will seek for gpu-vendor key in the flavor definition (properties field), while --property-image-gpu-driver gpu:driver:version will fetch the value associated with the gpu:driver:version key in the list of images obtained.

For the InfiniBand case, there is an additional option (--property-flavor-infiniband-value) that also checks the value obtained from the metadata. Only if they match, InfiniBand is considered as supported.

Use the --help option for the whole list of available GPU and InfiniBand properties.

CAs

The provider will use your python default CAs for checking and connecting to your endpoints and GOCDB, so please make sure those CAs include the IGTF CAs. The location of the CAs depending on how you installed the different python packages (using deb/rpm packages or pip).

For debian-based systems (e.g. Ubuntu), use the following:

cd /usr/local/share/ca-certificates
for f in /etc/grid-security/certificates/*.pem ; do
    ln -s $f $(basename $f .pem).crt
done
update-ca-certificates

For RH-based systems (e.g. CentOS), you can include the IGTF CAs with:

cd /etc/pki/ca-trust/source/anchors
ln -s /etc/grid-security/certificates/*.pem .
update-ca-trust extract

Otherwise, you need to add the IGTF CAs to the internal requests bundle:

cat /etc/grid-security/certificates/*.pem >> $(python -m requests.certs)

Creating releases

  1. Create a PR to update the changelog to reflect the changes since last version and any other needed changes for the release
    • Version should follow SemVer like 0.42.0
  2. Once merged, create a release with a tag vX.Y.Z, fill in as description of the release the changelog. As soon as the tag is pushed to the repository, packages will be available at GitHub.

Acknowledgement

This work recieved funding from the EOSC-hub project (Horizon 2020) under Grant number 777536.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloud_info_provider-1.0.2.tar.gz (116.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cloud_info_provider-1.0.2-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

Details for the file cloud_info_provider-1.0.2.tar.gz.

File metadata

  • Download URL: cloud_info_provider-1.0.2.tar.gz
  • Upload date:
  • Size: 116.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cloud_info_provider-1.0.2.tar.gz
Algorithm Hash digest
SHA256 801a2238403d03ee9623e3c6bea0e6d07d7c4ddd4a19e00b0d76af77d5773517
MD5 4740cde56491c0c39b8aaf5a8cc28b53
BLAKE2b-256 226e345035718248f14e8d5b40e472bfa1c23a9a343e48b9ad20c506390090a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloud_info_provider-1.0.2.tar.gz:

Publisher: publish.yml on EGI-Federation/cloud-info-provider

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cloud_info_provider-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for cloud_info_provider-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8b2d976c37724e2c8327fde518730d6757ad45b7cda85d14ad17986ddb47dbef
MD5 d525e7a138cf9ad3cd682535f984982f
BLAKE2b-256 cd3ed9f18999339e49ed1abe4ad4b4282974582f4bb6e2fc6ea2f003f35cfb7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloud_info_provider-1.0.2-py3-none-any.whl:

Publisher: publish.yml on EGI-Federation/cloud-info-provider

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page