Metadata-Version: 2.4
Name: cybergoatz-azure-lib
Version: 1.0.1
Summary: Cybegoatz platform Azure Driver Python lib
Project-URL: GitHub, https://github.com/cybergoatz/backend-azure-lib
Author-email: Chainscore Labs <hello@chainscore.finance>, Kartik <kartik@chainscorelabs.com>
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.9
Requires-Dist: azure-identity>=1.23.0
Requires-Dist: azure-mgmt-compute>=34.1.0
Requires-Dist: azure-mgmt-network>=28.1.0
Requires-Dist: azure-mgmt-resource>=23.3.0
Requires-Dist: crczp-python-commons~=1.0.1
Requires-Dist: jinja2>=3.1.3
Requires-Dist: pyyaml>=6.0.2
Description-Content-Type: text/markdown

# cybergoatz-azure-lib

Python library that serves as the Azure driver for CyberGoatz Platform sandbox provisioning.
It is intended to be an installable component consumed by `backend-terraform-client`, not a
stand-alone application.

This is not a strict AWS/OpenStack port. The implementation is intentionally Azure-shaped:

- Linux-first
- SSH-first
- Azure VM, NIC, subnet, VNet, NSG, and Public IP provisioning through OpenTofu/Terraform
- Azure-managed SSH public key resources for cloud-side key lifecycle
- compatibility acceptance of `x509` keypair create/get/delete calls even though VM provisioning remains SSH-based

## Key design choices

- The library implements `CrczpCloudClientBase` from `crczp-python-commons`.
- Sandboxes are rendered into a dedicated Azure virtual network with subnets for all topology
  networks.
- The MAN node receives a public IP so the existing platform can keep using
  `topology_instance.ip` as the SSH target.
- SSH keypairs are persisted as Azure SSH public key resources and then injected into rendered VM
  definitions during template creation.
- Legacy `x509` keypair lifecycle calls are accepted as a compatibility path so higher layers can
  stay provider-agnostic while Azure remains SSH-first.

## Expected Azure image format

Topology image references should be either:

- an Azure image resource ID
- a URN in the form `publisher:offer:sku:version`

## Contents

- `cybergoatz/azure_driver` -- Azure cloud client implementation
- `pyproject.toml` -- package metadata
- `tox.ini` -- lint and test configuration