# Observability(O11y)-cd

O11y-cd contains code of continuous delivery for cloud observability infrastructure.

> Based on Pulumi, GitHub Actions and self-provisioning runner.

## Structure

- `./`: The root dir is a typescript project root that contains the `package.json` and `tsconfig.json`.

- `./src`: The source code dir contains the source code of the pulumi.
  - `./src/projects`: Each project is a deployment unit, such as eks, regional server, etc. It contains the entrypoint pulumi `index.tx` file. All project-specific pulumi code should be placed in `./src/projects/<project-name>`.
  - `./src/pkgs`: Shared package code. Different projects can import the shared modules to reduce boilerplate code.
- `./deployments`: Pulumi stack configs for each project. 
  - `./deployments/<project-name>/<stack-xxx>.yml`: Different stack configs for each project. Each stack yaml maps to a specific environment.

> **_Note_**: `./deployments/<project-name>` is based on `./src/projects/<project-name>/index.tx`

- `./manifests`: Shared kubernetes manifests.
- `./charts`: Shared helm charts.
