Skip to content

DevOps Pipeline v2 #6

Open
Open
@tushar5526

Description

@tushar5526

Project Details

Samagra DevOps was made with the aim to standardize and ease the process of deploying projects on our servers. Its design majorly focuses on being a modular and lightly coupled architecture that can be used both on public cloud providers and restricted environments of government serves without not internet.

Our first iteration of this pipeline is done and currently being rigorously used at https://github.com/Unified-Learner-Passbook/ULP-devops and now we are looking forward to the next iteration of this pipeline.

Read more about devops pipeline and its architecture here - https://samagra-development.github.io/Samagra-DevOps-Guide/introduction.html

Features to be implemented

  • Dockerizing the components of the DevOps pipeline (Jenkins Server, Vault, private registry) to easily reproduce the setup on any restricted environment and server along with one-click deployment of pipelines in Jenkins.
  • A script generator that generates templates for ansible roles for new services to be onboarded in the DevOps pipeline
  • Writing a comprehensive guide for the DevOps pipeline for developers to easily understand the whole process of onboarding new services.
  • Secure the private registry and setup basic Auth in it, so that it can be accessed over public IP if needed.
  • Modify existing ansible roles to add service configurations on each docker swarm node (which are mounted as volumes in the containers) or research and implement other ways to share service configurations on different docker swarm nodes. (Hashicorp Vault is used to store the secrets or environment variables, but some services need specific configuration files (.yml, .json) to be mounted as well for them to work)
  • Clean up and refactor ansible roles.

Learning Path

Complexity

Medium

Skills Required

Python or JS for CLI script. Jenkins, Docker, Ansible for working on v2 of pipeline.

Name of Mentors

@tushar5526

Project Size

8 weeks

Product Setup

https://samagra-development.github.io/Samagra-DevOps-Guide/setup.html

Milestones

  • Reproducing the CI-CD setup locally
  • Dockerizing the components of the pipeline and writing a docker-compose.
  • Setting up a CLI/bash script for one-click deployment of roles and jobs
  • Writing a CLI script to setup a template for ansible roles and associated variables
  • Writing docs for the new changes

C4GT

This issue is nominated for Code for GovTech (C4GT) 2023 edition.
C4GT is India's first annual coding program to create a community that can build and contribute to global Digital Public Goods. If you want to use Open Source GovTech to create impact, then this is the opportunity for you! More about C4GT here: https://codeforgovtech.in/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions