NOTE: This project is a work in progress. DON'T USE IT TO PRODUCTION.
Iacker is a development framework to help cloud-native developers hugging with the infrastructure as a code's world.
The goal is to implement the open features for service providers.
- Open API: Expose Cloud Control and GraphQL API to the developer.
- Open Provider: Auto-generate provider code for Terraform, Pulumi, CDK, KubeVela, Crossplane, etc.
- Open Integration: Create libraries for Cobra, Apollo, and software development kits for various languages.
- Model-driven: Define the resource schema by CUE and unified specification.
- Developer-first: All workflows in code, collaborate with others with GitOps workflow.
- Generator-oriented: Build your own generator using the unified specification. Many popular IaC tools are provided.
We used it to create the Terraform Provider for Guance Cloud and other related services and tools.
All the features are described in the proposals
folder. It is inspired by the GRFC Template used in Google. You can find the implementation status in the table below.
The proposal workflow is described in the Guance Cloud Proposal Governance Guidelines.
Architecture defines the basic concepts and principles of Iacker architecture.
# | Title | How-tos |
---|---|---|
A001 | API as Code in Iacker | How Iacker governance our API |
A002 | Resource Management Specification | How to define a new cloud resource |
A003 | Generator Framework | How to build developer tools by Iacker |
A004 | Resource Management Server | How to develop once, run as multiple protocols |
At Iacker, we use a unified resource management framework to expose various protocols for different use cases.
Protocols describe the protocols used in Iacker. Please follow the protocol specification (coming soon) to add a new protocol.
# | Title | How-tos |
---|---|---|
P001 | Cloud Control API | Cloud Control API and the implementations |
Developer tools are the core of developer experience infrastructure (DXI). It provides tools to help developers build, test, and deploy their API callings.
# | Title | How-tos |
---|---|---|
T001 | Resource Explorer | How to discover and interact with cloud resource |
T002 | Terraform Provider | How to build the engineering capability for X as Code world |
See the hack folder to understand how to build this project.
We welcome contributions to Iacker. Please see the Contributing Guidelines for more information.