Server status ...

magogi/prod/: mgf-cloud-0.1.5 metadata and description

Simple index

Cloud-resource interface for the Magogi Foundation — create + manage VMs and storage (Infomaniak Public Cloud first; AWS-ready). Ships a CLI + a local web GUI. Sibling of mgf-common under the mgf.* namespace.

author Bassam Alsanie, mgf-cloud contributors
classifiers
  • Development Status :: 3 - Alpha
  • Intended Audience :: Developers
  • Intended Audience :: System Administrators
  • License :: OSI Approved :: Apache Software License
  • Operating System :: MacOS
  • Operating System :: POSIX :: Linux
  • Programming Language :: Python :: 3
  • Programming Language :: Python :: 3.11
  • Programming Language :: Python :: 3.12
  • Programming Language :: Python :: 3.13
  • Topic :: Software Development :: Libraries
  • Topic :: System :: Systems Administration
  • Typing :: Typed
description_content_type text/markdown
keywords cloud, infomaniak, infrastructure, object-storage, openstack, vm
license Apache-2.0
license_file
  • LICENSE
  • NOTICE
project_urls
  • Homepage, https://codeberg.org/magogi-admin/mgf-cloud
  • Issues, https://codeberg.org/magogi-admin/mgf-cloud/issues
  • Changelog, https://codeberg.org/magogi-admin/mgf-cloud/src/branch/main/CHANGELOG.md
requires_dist
  • mgf-common<1.0,>=0.47
  • pydantic-settings<3,>=2.2
  • pydantic<3,>=2.6
  • pyyaml<8,>=6.0
  • boto3<2,>=1.34; extra == 'aws'
  • httpx>=0.27; extra == 'dev'
  • import-linter>=2.0; extra == 'dev'
  • mgf-standard<0.2,>=0.1.6; extra == 'dev'
  • mgf-test-supervisor<0.2,>=0.1.3; extra == 'dev'
  • mypy>=1.10; extra == 'dev'
  • pytest-cov>=5.0; extra == 'dev'
  • pytest-timeout<3,>=2.3; extra == 'dev'
  • pytest>=8.0; extra == 'dev'
  • ruff<0.16,>=0.4; extra == 'dev'
  • types-pyyaml<8,>=6.0; extra == 'dev'
  • openstacksdk<5,>=4; extra == 'infomaniak'
  • paramiko<4,>=3; extra == 'remote'
  • boto3<2,>=1.34; extra == 's3'
  • mgf-common[standards]<1.0,>=0.47; extra == 'standards'
  • fastapi>=0.110; extra == 'web'
  • jinja2<4,>=3.1; extra == 'web'
  • mgf-fastapi<0.7,>=0.6; extra == 'web'
  • python-multipart>=0.0.9; extra == 'web'
  • uvicorn>=0.30; extra == 'web'
requires_python >=3.11

Because this project isn't in the mirror_whitelist, no releases from root/pypi are included.

File Tox results History
mgf_cloud-0.1.5-py3-none-any.whl
Size
78 KB
Type
Python Wheel
Python
3
mgf_cloud-0.1.5.tar.gz
Size
882 KB
Type
Source

mgf-cloud — cloud-resource interface for the Magogi Foundation

Registry Python

Shape: Federation sibling of mgf-common under the mgf.* namespace. The single interface the federation uses to create and manage cloud VMs and storage — Infomaniak Public Cloud (OpenStack) today, AWS-ready by design. Ships a CLI (mgf-cloud) and a local web GUI (mgf-cloud web).

Owner/consumer: mgf-fed (the federation orchestrator) is the sole consumer + the owner of the resources mgf-cloud provisions. mgf-cloud is the mechanism; mgf-fed decides what.

What this provides

Area What
Compute VM lifecycle — create / list / show / delete / reboot / resize / snapshot / console; images, flavours, keypairs
Block storage volumes — create / attach / detach / delete / snapshot
Object storage Swift containers + objects (S3-compatible optional, [s3])
Networking floating IPs, security groups + rules
Bootstrap cloud-init / user-data at create time + SSH remote-exec / file-push ([remote]) to stand a host up
Providers one CloudProvider interface; [infomaniak] (OpenStack) now, an AWS stub for later
Surfaces the mgf-cloud CLI (+ --json / --dry-run / --yes) and a local single-user web GUI ([web])

Stateless by design — the cloud is the source of truth; federation resources are tagged mgf:owner. Importing mgf.cloud pulls no provider SDK; adapters load lazily, each behind its own extra, so the core stays light and importable.

Status

🚧 In active construction (0.1.x). The full surface has shipped: the provider-agnostic abstraction + resource models, the Infomaniak (OpenStack) adapter (compute / block / object / network), the mgf-cloud CLI, the layered clouds.yaml/OS_* config, cost estimation, the local web GUI, and the SSH remote/bootstrap layer — each heavy dependency behind its own extra so the core stays light. The 0.x window applies — pin tightly: mgf-cloud = ">=0.1,<0.2".

Install

pip install mgf-cloud                 # core: abstraction + CLI (fake provider)
pip install 'mgf-cloud[infomaniak]'   # + the Infomaniak (OpenStack) provider
pip install 'mgf-cloud[web]'          # + the local web GUI (DEPRECATED → mgf-cloud-app)
pip install 'mgf-cloud[remote]'       # + SSH bootstrap (paramiko)
pip install 'mgf-cloud[s3]'           # + S3-compatible object storage (boto3)

mgf-* siblings resolve from the Codeberg registry (PKG-06), not pypi.org.

Credentials (Infomaniak)

Infomaniak Public Cloud is standard OpenStack. Generate an Application Credential (Public Cloud Horizon → Identity → Application Credentials) and download the project clouds.yaml (API Access). mgf-cloud reads clouds.yaml / the OS_* environment. Never commit credentials — keep them under my_stuff/ (gitignored per AG-18). See docs/design/DESIGN.md for the full credential model.

Quick start

mgf-cloud version
mgf-cloud vm create web-prod --flavor a2-ram2-disk20 --image "Ubuntu 24.04 LTS" --dry-run
mgf-cloud vm list --json
mgf-cloud cost                    # current run-rate + accrued estimate
mgf-cloud web                     # local single-user GUI ([web] extra) — DEPRECATED

mgf-cloud web is deprecated. The local web console moved to its own brand-styled app, mgf-cloud-app (mgf.cloud_app, a thin consumer of this library). Run mgf-cloud-app instead. The [web] extra + mgf-cloud web still work during the transition and will be removed in a future minor.

Documentation

For the federation-wide engineering standards see mgf-standard/docs/standards/; this sibling inherits them by reference.

Conformance: L2 per mgf-standard/docs/standards/. Per-rule audit ledger: docs/inprogress/MGF_STANDARDS_CONFORMANCE.md. Every applicable MUST is met on the surface mgf-cloud owns; the two open items (PKG-01, WF-11) are fleet-infra deferrals tracked at mgf-standard, not owned defects. L3 distance: a full per-MUST file:line depth audit + the perf-baseline family.

Cross-references