Skip to content

The Infrastructure as Code Provider Development Framework

License

Notifications You must be signed in to change notification settings

GuanceCloud/iacker

Repository files navigation

Iacker

NOTE: This project is a work in progress. DON'T USE IT TO PRODUCTION.

Go Report Card GoDoc License

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.

Introduction

Features

  • 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.

Real-world example

We used it to create the Terraform Provider for Guance Cloud and other related services and tools.

Logo

Roadmap

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

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

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

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

Developer Guide

See the hack folder to understand how to build this project.

Contributing

We welcome contributions to Iacker. Please see the Contributing Guidelines for more information.