cloud-info-provider

EGI Cloud Information System Provider

https://github.com/egi-federation/cloud-info-provider

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

bdii egi glue opennebula-provider openstack python
Last synced: 6 months ago · JSON representation

Repository

EGI Cloud Information System Provider

Basic Info
  • Host: GitHub
  • Owner: EGI-Federation
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 1.14 MB
Statistics
  • Stars: 4
  • Watchers: 12
  • Forks: 14
  • Open Issues: 7
  • Releases: 24
Topics
bdii egi glue opennebula-provider openstack python
Created almost 12 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Authors Zenodo Copyright

README.md

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:

sh 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

sh uv run cloud-info-provider-service

Usage

shell 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:

```yaml

gocdb: "" endpoint: "https://example.com:5000/v3"

the images is ignored by the cloud-info-provider

images: vos: - name: "" auth: project_id: "" - 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:

sh 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:

sh 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:

sh 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:

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

Release management

Release management is documented in RELEASING.md

Acknowledgement

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

Owner

  • Name: EGI Federation
  • Login: EGI-Federation
  • Kind: organization
  • Email: contact@egi.eu
  • Location: Science Park, Amsterdam, The Netherlands

Advanced Computing for Research

GitHub Events

Total
  • Issues event: 9
  • Watch event: 1
  • Delete event: 12
  • Issue comment event: 22
  • Push event: 17
  • Pull request review comment event: 2
  • Pull request review event: 14
  • Pull request event: 32
  • Create event: 10
Last Year
  • Issues event: 9
  • Watch event: 1
  • Delete event: 12
  • Issue comment event: 22
  • Push event: 17
  • Pull request review comment event: 2
  • Pull request review event: 14
  • Pull request event: 32
  • Create event: 10

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 38
  • Total pull requests: 89
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 20 days
  • Total issue authors: 7
  • Total pull request authors: 11
  • Average comments per issue: 2.79
  • Average comments per pull request: 1.71
  • Merged pull requests: 72
  • Bot issues: 0
  • Bot pull requests: 12
Past Year
  • Issues: 2
  • Pull requests: 18
  • Average time to close issues: 4 months
  • Average time to close pull requests: 11 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.44
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 10
Top Authors
Issue Authors
  • enolfc (11)
  • gwarf (10)
  • alvarolopez (6)
  • arax (5)
  • brucellino (3)
  • cgimeno (1)
  • StephaneGerardVUB (1)
Pull Request Authors
  • gwarf (29)
  • dependabot[bot] (28)
  • enolfc (21)
  • alvarolopez (15)
  • arax (7)
  • brucellino (2)
  • orviz (2)
  • cgimeno (2)
  • scroogie (2)
  • Mamut3D (1)
  • cesga-rdiez (1)
Top Labels
Issue Labels
enhancement (21) bug (9) question (2) :blue_book: docs (1) help wanted (1) python (1)
Pull Request Labels
dependencies (28) github_actions (16) enhancement (13) python (12) bug (6) help wanted (1) :blue_book: docs (1) qa (1) WIP (1) hacktoberfest (1)

Dependencies

requirements.txt pypi
  • Mako *
  • PyYAML *
  • defusedxml *
  • pbr *
  • pyOpenSSL *
  • requests *
  • six *
  • stevedore *
test-requirements.txt pypi
  • bandit >=1.1.0,<=1.6.2 test
  • defusedxml * test
  • fixtures >=0.3.14 test
  • mock * test
  • pyOpenSSL * test
  • python-glanceclient * test
  • python-novaclient * test
  • requests * test
.github/workflows/packages.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v3 composite
.github/workflows/pre-release.yml actions
  • actions/checkout v4 composite
  • peter-evans/create-pull-request v5 composite
  • sean0x42/markdown-extract v2 composite
.github/workflows/python.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v3 composite
  • sean0x42/markdown-extract v2 composite
  • softprops/action-gh-release v1 composite
.github/workflows/superlinter.yml actions
  • actions/checkout v4 composite
  • super-linter/super-linter/slim v5 composite
setup.py pypi
pyproject.toml pypi