https://github.com/osama-yusuf/octopilot
OctoPilot: A Helm chart, Tekton pipelines & ArgoCD to streamline deployment and CI/CD processes.
https://github.com/osama-yusuf/octopilot
deployment helm-chart kuberenetes microservice openshift
Last synced: about 2 months ago
JSON representation
OctoPilot: A Helm chart, Tekton pipelines & ArgoCD to streamline deployment and CI/CD processes.
- Host: GitHub
- URL: https://github.com/osama-yusuf/octopilot
- Owner: Osama-Yusuf
- License: mit
- Created: 2024-12-08T00:07:12.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-12-25T00:35:48.000Z (5 months ago)
- Last Synced: 2025-02-09T10:14:41.354Z (4 months ago)
- Topics: deployment, helm-chart, kuberenetes, microservice, openshift
- Language: Shell
- Homepage:
- Size: 367 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# OctoPilot: Helm Chart, Tekton Pipelines and ArgoCD Apps
![]()
OctoPilot integrates both Helm charts, Tekton pipelines & ArgoCD to streamline deployment and CI/CD processes.
## Table of Contents
- [Overview](#overview)
- [Table of Contents](#table-of-contents)
- [Configuration Philosophy](#configuration-philosophy)
- [Tekton Pipelines](#tekton-pipelines)
- [Features](#features)
- [Quick Start Guide](#quick-start-guide)
- [Installation](#installation)
- [Visiting your application](#visiting-your-application)
- [Resources Created](#resources-created)
- [Upgrading](#upgrading)
- [Uninstalling](#uninstalling)
- [Troubleshooting](#troubleshooting)
- [Upcoming Features](#upcoming-features)
- [External Secrets Management Support](#external-secrets-management-support)## Configuration Philosophy
The project follows a "configure once, deploy many" philosophy, where a single values file can define the deployment configuration for multiple microservices. This approach:
- Reduces configuration duplication across services
- Ensures consistency in deployment patterns
- Simplifies maintenance and updates
- Provides a standardized way to handle service-specific customizationsEach microservice can be configured through its own configuration file, inheriting common configurations while allowing for service-specific overrides when needed.
## Tekton Pipelines
This section provides an overview of Tekton pipelines included in the OctoPilot project. The pipelines are configured to build and deploy various microservices using Tekton tasks and pipelines defined in the `tekton` directory.
### Prerequisites
- Kubernetes cluster
- Tekton installed on the cluster
- kubectl configured to access your cluster
- Tekton CLI (tkn) installed### Running the Pipeline
To trigger a pipeline for a specific service, use the `run.sh` script with the appropriate service shorthand:
```bash
./run.sh
```Service shorthands:
- `fs` - Frontend Service
- `vs` - Backend ServiceExample:
```bash
./run.sh fs # Triggers pipeline for Frontend Service
```### Pipeline Components
The pipeline includes several tasks:
- Clone repository
- Build Docker images## Quick Start Guide
### Installation
To install the OctoPilot project, follow these steps:
1. Clone the repository:
```bash
git clone https://github.com/Osama-Yusuf/OctoPilot.git
cd OctoPilot
```2. Install necessary dependencies and tools (e.g., Helm, Tekton CLI).
3. Deploy the Helm chart:
```bash
helm install frontend -n default . -f helm-chart/values/frontend-values.yaml
```### Visiting your application
Once deployed, access your application via the provided service URL. Use `kubectl` to retrieve the service URL if necessary:
```bash
kubectl get svc
```### Resources Created
The deployment creates the following resources:
- Pods
- Services
- ConfigMaps
- Secrets
- HorizontalPodAutoscaler
- Deployment
- Route
- ServiceAccount### Uninstalling
To uninstall the deployment:
```bash
helm uninstall frontend
```### Troubleshooting
For troubleshooting common issues, refer to the logs of the pods and Tekton tasks:
```bash
kubectl logs
```## Upcoming Features
### External Secrets Management Support
Support for external secrets management is planned to enhance security and flexibility in handling sensitive information. The upcoming integrations include:
- **Sealed Secrets**: Integration with Bitnami's Sealed Secrets for encrypting secrets at rest.
- **HashiCorp Vault**: Support for dynamic secrets and centralized secret management.
- **AWS Secrets Manager**: Native integration with AWS secret management service.
- **External Secrets Operator**: Support for managing secrets across multiple providers.These integrations will allow you to:
- Store secrets securely in production environments.
- Manage secrets separately from application configuration.
- Follow security best practices for secret management.