Tencent, OCI, and OpenStack Providers
Relevant source files
The following files were used as context for generating this wiki page:
Tencent Cloud, Oracle Cloud Infrastructure (OCI), and OpenStack are supported cloud providers within the Cloud Custodian (c7n) ecosystem. These providers allow users to define and enforce policies for security, governance, and cost optimization across their respective cloud environments. Cloud Custodian consolidates ad-hoc management scripts into a unified rules engine that supports these platforms alongside primary providers like AWS, Azure, and GCP.
Sources: README.md:12-25, GOVERNANCE.md:7-15
Governance and Project Structure
Cloud Custodian organizes the project into functional areas, where Tencent Cloud and Oracle Cloud (OCI) are recognized as distinct areas. Each area is managed by at least one Area Maintainer responsible for triaging issues, reviewing pull requests, and ensuring the health of the specific provider code.
Maintainer Hierarchy
The following diagram illustrates the governance structure applicable to these provider areas:
The diagram shows the escalation and decision-making path from Contributors up to Core Maintainers for specific provider areas.
Sources: GOVERNANCE.md:7-38, GOVERNANCE.md:71-75
Technical Implementation and Dependencies
Each provider is packaged as a separate tool within the Cloud Custodian workspace. They rely on specific Python SDKs and libraries to interface with their respective cloud APIs.
Provider Package Details
| Provider | Package Name | Key Dependencies | Minimum Python |
|---|---|---|---|
| Tencent Cloud | c7n_tencentcloud | tencentcloud-sdk-python, cos-python-sdk-v5 | >= 3.9.2 |
| Oracle Cloud | c7n_oci | oci, pyopenssl | >= 3.9.2 |
| OpenStack | c7n_openstack | openstacksdk | >= 3.9.2 |
Sources: tools/c7n_tencentcloud/pyproject.toml:5-13, tools/c7n_oci/pyproject.toml:5-14, tools/c7n_openstack/pyproject.toml:5-10
Documentation and Schema Generation
The project utilizes a specialized Sphinx extension (c7n_sphinxext) to generate technical documentation and resource schemas for all providers. This system automates the rendering of available filters, actions, and resource types.
Documentation Workflow
The documentation generator processes provider-specific resource classes to produce consistent documentation.
Sources: tools/c7n_sphinxext/c7n_sphinxext/docgen.py:214-230, tools/c7n_sphinxext/c7n_sphinxext/docgen.py:317-340
Permission Lookups
The documentation generator performs automated permission lookups to identify required API permissions for specific filters and actions. If an element does not explicitly define permissions, the system uses a dummy resource type to simulate policy construction and extract required permissions.
| Provider | Dummy Resource Type used for Lookups |
|---|---|
| Tencent Cloud | ami |
| Oracle Cloud (OCI) | instance |
Sources: tools/c7n_sphinxext/c7n_sphinxext/docgen.py:58-69
Multi-Cloud Management Integration
The Tencent, OCI, and OpenStack providers integrate with c7n-org, a tool designed for multi-account and multi-region policy execution. This allows administrators to run a single policy across multiple subscriptions or projects in these clouds in parallel.
Sources: pyproject.toml:68-81, README.md:154-156
Summary
The Tencent, OCI, and OpenStack providers extend Cloud Custodian's governance capabilities to a broader range of cloud infrastructure. By adhering to a unified provider model, they offer consistent policy execution, automated documentation, and professional governance under the Cloud Custodian Project. These providers leverage native SDKs to ensure deep integration with their respective cloud services.
Sources: README.md:12-25, GOVERNANCE.md:7-15, pyproject.toml:68-81