Sign inSign up

reaventech/pipelines-api

By reaventech

Updated 6 months ago

all-in-one DevOps automation engine for orchestrating deployments, health checks, and operations

Image
Integration & delivery
0

1.2K

reaventech/pipelines-api repository overview


🚀 Reaventech Pipelines API

Reaventech Pipelines API is your all-in-one DevOps automation engine for orchestrating deployments, health checks, and operational tasks across Kubernetes, Docker, and Azure environments. Designed for reliability and scalability, it streamlines CI/CD workflows and infrastructure management for modern cloud-native applications.


🌟 Features

  • Centralized Deployment Management:
    Trigger, monitor, and manage deployments across multiple environments and namespaces from a single API.

  • Automated Health Checks:
    Built-in health monitoring for containers, endpoints, and services—ensuring your deployments are always healthy.

  • Script-Driven Automation:
    Modular Bash scripts handle packaging, Docker operations, health checks, and log management.

  • Kubernetes & Docker Integration:
    Seamless interaction with Kubernetes clusters and Docker hosts for image management, rollouts, and scaling.

  • Azure-Ready:
    Native support for Azure Container Registry and AKS, leveraging service principals for secure automation.

  • Robust Logging:
    Aggregated, base64-encoded logs for every deployment step, providing deep operational insights.


🏗️ Architecture Overview

  • Deployment Scripts:
    Scripts like jobs.sh and projects.sh automate building, tagging, pushing, and deploying Docker images. Rollbacks and backups are built-in for safe releases.

  • Health Monitoring:
    Custom health checks for each project type—whether pinging endpoints, inspecting containers, or querying REST APIs.

  • Containerized Core:
    Runs as a lightweight Python container with all necessary tools (curl, Docker, socat, etc.), using host networking for low-latency operations.

  • Kubernetes & Azure Integration:
    Uses kubectl and Azure CLI for cluster management, image updates, and credential handling.


🚦 Quick Start

1. Run in Production (/devops/secrets.sh should be present)
docker run -d --name pipelines-api \
  -v /devops/pipelines:/pipelines \
  -v /devops/secrets.sh:/app/secrets.sh \
  -v /devops/logs/socat_server.log:/app/socat_server.log \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/www:/var/www \
  -v /packages:/packages \
  -e PORT="3366" \
  --network host \
  --privileged \
  --restart unless-stopped reaventech/pipelines-api:${release_tag}
2. Run Locally
sudo docker run -d --name pipelines-api \
  -v /home/metaf6/code/rea-dockers/pipelines-scripts:/pipelines \
  -e LOG_FILE="/app/socat_server.log" \
  -e CLUSTER="yours" \
  -e RESOURCE_GROUP="" \
  -e SP_ID="" \
  -e SP_SECRET="" \
  -e TENANT_ID="" \
  -e TARGET_CLUSTER="yours" \
  -e REGISTRY="yours.azurecr.io" \
  -e DOMAIN="yours" \
  -e PORT=3366 \
  -p 3366:3366 \
  --restart unless-stopped reaventech/pipelines-api:local

🔍 Health Check Example

curl http://localhost:3366/bitbucket/pipelines/health/id/test/test

⚙️ Environment Variables Local

VariableDescription
LOG_FILEPath to log file
CLUSTERTarget Kubernetes cluster name
RESOURCE_GROUPAzure resource group for AKS
SP_IDAzure Service Principal ID
SP_SECRETAzure Service Principal Secret
TENANT_IDAzure Tenant ID
TARGET_CLUSTERTarget cluster for deployment
REGISTRYDocker/Azure Container Registry URL
DOMAINDomain name for deployment
PORTAPI server port (default: 3366)

⚙️ Environment Variables Deployment (/devops/secrets.sh should be present)

export DOMAIN="yours.com"
##
##
##
## K8s
export SP_ID=''
export SP_SECRET=''
export TENANT_ID=''
export RESOURCE_GROUP='yours'
export CLUSTER="yours"
##
##
##
## Storage Account: Containers
export AZURE_STORAGE_ACCOUNT_TENANT_ID=''
export AZURE_STORAGE_ACCOUNT_CLIENT_ID=''
export AZURE_STORAGE_ACCOUNT_SECRET=''
##
##
##
## ACR
export ACR_USERNAME='yours'
export ACR_PASSWORD=''
export REGISTRY="yours.azurecr.io"
##
##
##
## SMTP
export CONTACT_API_USER_PASSWORD=''
##
##
##
## Logs
export LOG_FILE="/app/socat_server.log"

🛡️ Security & Access

  • Runs behind Nginx as a reverse proxy.
  • Bearer Token authentication is required for all API requests.

📦 Use Cases

  • Automated CI/CD for microservices
  • Multi-environment deployments (dev, staging, prod)
  • Health monitoring and self-healing
  • Azure Kubernetes Service (AKS) automation
  • Docker image management and rollbacks

📚 Documentation

  • Scripts: See /pipelines-scripts and /devops for automation logic.
  • API Reference: [Coming soon]

🤝 Contributing

Pull requests and issues are welcome! Please see CONTRIBUTING.md for guidelines.


📝 License

MIT License. See LICENSE for details.


Reaventech Pipelines API — Modern DevOps, simplified.

Tag summary

Content type

Image

Digest

sha256:4eba00271

Size

365.7 MB

Last updated

6 months ago

docker pull reaventech/pipelines-api