Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uditgaurav/onboard_pipeline
https://github.com/uditgaurav/onboard_pipeline
Last synced: 18 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/uditgaurav/onboard_pipeline
- Owner: uditgaurav
- Created: 2023-10-26T06:10:56.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-11-03T06:20:09.000Z (about 1 year ago)
- Last Synced: 2023-11-03T15:40:22.191Z (about 1 year ago)
- Size: 14.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Chaos Onboarding Pipeline Documentation
## Overview
The `chaos-onboarding-pipeline` is designed to onboard chaos in a structured and automated manner. The pipeline consists of multiple stages and steps that deploy, configure, and validate the required components for harness chaos engineering in a Kubernetes environment.## Pipeline Details
### Pipeline Configuration
- **Name**: chaos-onboarding-pipeline
- **Identifier**: chaosonboardingpipeline
- **Project Identifier**: ChaosDev
- **Organization Identifier**: default
- **Tags**: None### Stages and Steps
#### Stage: Onboard Chaos
- **Identifier**: onboard_chaos
- **Type**: Custom
- **Description**: This stage encompasses several steps to deploy and configure the necessary components for harness chaos engineering.1. **Step: Create Onboard Util Pod**
- Executes a shell script to create a utility pod for onboarding.
- Validates the necessary environment variables before proceeding.
- Deploys a Kubernetes pod and waits until it's ready.
- Sets up AWS credentials within the pod for further AWS related actions.2. **Step: Create Project**
- Executes a command to create a new project using the onboard utility.3. **Step: Create App Dev and Staging Chaos Infrastructure**
- Executes commands to create chaos infrastructure for both development and staging environments.4. **Step: Annotate App Dev and Staging Infra With Role ARN**
- Executes commands to annotate the chaos infrastructures with AWS IAM role ARN for permissions.5. **Step: Create Experiments**
- Executes a script to convert hub templates to JSON and create chaos experiments.6. **Step: Delete Onboard Util Pod**
- Deletes the onboard utility pod to clean up the resources.### Environment Variables
| Variable Name | Description | Type | Default Value |
|------------------------------------|---------------------------------------------------------------|------------------------------|-------------------------------|
| HARNESS_API_KEY | Provide the harness api token. | Secret | harness_pat_token_secret |
| ORGANISATION_ID | Provide the target organisation id. | String | |
| ACCOUNT_ID | Provide the target account id. | String | |
| PROJECT_ID | Provide the target project id to be created by the pipeline and used further. | String (Runtime Input) | ChaosDev |
| INFRA_NAMESPACE_DEV | Infra namespace for dev. | String | app1-dev |
| INFRA_NAME_DEV | Infra name for dev. | String | app1-dev |
| INFRA_NAME_STAGING | Infra name for staging. | String | app1-stg |
| INFRA_NAMESPACE_STAGING | Infra namespace for staging. | String | app1-stg |
| ONBOARDING_NAMESPACE | Onboarding namespace. | String | default |
| ONBOARDING_SERVICE_ACCOUNT_NAME | Onboarding service account name. | String | chaos-onboard-util |
| AWS_ACCESS_KEY_ID | The access key id for the AWS account. | Secret | Should be created via secret. |
| AWS_SECRET_ACCESS_KEY | The secret access key for the AWS account. | Secret | Should be created via secret. |
| CHAOSHUB_NAME | Name of the chaoshub that has the target experiment. | String (Runtime Input) | Enterprise ChaosHub |
| EXPERIMENT_NAME | Target experiment name from the given chaoshub. | String (Runtime Input) | nginx-pod-delete |The table above provides the description for each environment variable, its type, and default value where applicable. Please note that some of the variables require a runtime input or should be created as secrets prior to executing the pipeline. You can modify any String variable to Runtime Variable as per the requirement.
## Conclusion
The `chaos-onboarding-pipeline` is structured to facilitate the onboarding process of harness chaos engineering within a Kubernetes environment. Through the defined stages and steps, the pipeline automates the deployment, configuration, and validation of necessary components, ensuring a streamlined onboarding process.