Pipelines Strategy

Objective

We will be using Github actions for our CI/CD execution.
We will be defining pipeline strategy for Infrastructure as well as for applications.

Contents
1. Infrastructure Pipeline
2. Application Pipeline

1. Infrastructure Pipeline:

For deploying & bringing up the Infrastructure on Cloud we are using IAC (Terraform).
To bring the environment UP with a single click & all security compliance below is the defined flow:


Various open source tools used:
1. Slack Bot: For Push & success notification.

2. tflint: TFLint is a framework and each feature is provided by plugins, the key features are as follows:

  • Find possible errors (like illegal instance types) for Major Cloud providers (AWS/Azure/GCP).

  • Warn about deprecated syntax, unused declarations.

  • Enforce best practices, naming conventions.

3. Terrascan: A static code analyser for Infrastructure as Code.

4. tfsec: tfsec uses static analysis of your terraform code to spot potential misconfigurations.
Checks for misconfigurations across all major (and some minor) cloud providers

tfsec: šŸ”˜ Hundreds of built-in rules šŸ”˜ Scans modules (local and remote) šŸ”˜ Evaluates HCL expressions as well as literal values šŸ”˜ Evaluates Terraform functions e.g. concat() šŸ”˜ Evaluates relationships between Terraform resources šŸ”˜ Compatible with the Terraform CDK šŸ”˜ Applies (and embellishes) user-defined Rego policies šŸ”˜ Supports multiple output formats: CLI, JSON, SARIF, CSV, CheckStyle, and JUnit. šŸ”˜ Configurable (via CLI flags and/or config file) šŸ”˜ Very fast, capable of quickly scanning huge repositories šŸ”˜ Plugins for popular IDEs available (JetBrains, VSCode and Vim) šŸ”˜ Community-driven


5. Terraform: An IAC tool for creations of various resources on Cloud

Flow Diagram for Infra Pipeline



NOTE: Will be updating the page as & when we enhance the process.

The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)