Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cyse7125-su24-team10/helm-webapp-cve-consumer

The cve-consumer Helm chart deploys a robust Go-based application that processes CVE data from Kafka streams into a PostgreSQL database. It integrates secure Kafka communication with SASL authentication, offers efficient database interactions, and includes comprehensive health check endpoints.
https://github.com/cyse7125-su24-team10/helm-webapp-cve-consumer

aws docker go groovy helm jenkins kubernetes postgresql semantic-release

Last synced: 3 days ago
JSON representation

The cve-consumer Helm chart deploys a robust Go-based application that processes CVE data from Kafka streams into a PostgreSQL database. It integrates secure Kafka communication with SASL authentication, offers efficient database interactions, and includes comprehensive health check endpoints.

Awesome Lists containing this project

README

        

# Helm CVE Consumer

[![Amazon Web Services](https://img.shields.io/badge/Amazon%20Web%20Services-232F3E.svg?style=for-the-badge&logo=Amazon-Web-Services&logoColor=white)](https://aws.amazon.com/)
[![Golang](https://img.shields.io/badge/Go-00ADD8.svg?style=for-the-badge&logo=Go&logoColor=white)](https://golang.org/)
[![Jenkins](https://img.shields.io/badge/Jenkins-D24939.svg?style=for-the-badge&logo=Jenkins&logoColor=white)](https://www.jenkins.io/)
[![Groovy](https://img.shields.io/badge/Groovy-4298B8.svg?style=for-the-badge&logo=Apache-Groovy&logoColor=white)](https://groovy-lang.org/)
[![Docker](https://img.shields.io/badge/Docker-2496ED.svg?style=for-the-badge&logo=Docker&logoColor=white)](https://www.docker.com/)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-4169E1.svg?style=for-the-badge&logo=PostgreSQL&logoColor=white)](https://www.postgresql.org/)
[![Kubernetes](https://img.shields.io/badge/Kubernetes-326CE5.svg?style=for-the-badge&logo=Kubernetes&logoColor=white)](https://kubernetes.io/)
[![Helm](https://img.shields.io/badge/Helm-0F1689.svg?style=for-the-badge&logo=Helm&logoColor=white)](https://helm.sh/)
[![Semantic Release](https://img.shields.io/badge/Semantic%20Release-494949.svg?style=for-the-badge&logo=semantic-release&logoColor=white)](https://semantic-release.gitbook.io/)

### Helm Chart Summary for cve-consumer Application

**Description:**
The cve-consumer Helm chart deploys a robust Go-based application that processes CVE data from Kafka streams into a PostgreSQL database. It integrates secure Kafka communication with SASL authentication, offers efficient database interactions, and includes comprehensive health check endpoints. The application is configured via environment variables and dockerized for simplified deployment.

## Prerequisites
- A working kubernetes cluster you are authenticated to
- [Dockerhub account](https://hub.docker.com/) should be configured for the Jenkins job to upload docker images on and have a working personal access token
- Working personal access token for github repository
- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) installed on your machine
- Configure the webhooks as mentioned in the groovy scripts
- Set up releaserc locally

**Specifications:**
- **Horizontal Pod Autoscaler:** Scales between 1 to 6 pods based on CPU utilization.
- **Pod Disruption Budget:** Ensures at least 1 pod remains available during disruptions.
- **RBAC Role and RoleBinding:** Grants necessary permissions for pods, services, deployments.
- **Deployment:** Manages application deployment with replica count set via Helm values.
- **InitContainer:** Executes Flyway migrations on startup for database schema management.
- **Containers:** Runs the main application container with specified resource limits and environment variables.
- **Image Pull Secrets:** Pulls Docker images securely from Docker Hub using a PAT.
- **Network Policies:** Defines policies for network traffic, including ingress and egress rules.
- **Limit Range:** Enforces resource limits for CPU and memory within the Kubernetes namespace.
- **Secrets:** Manages sensitive data such as database passwords and Kafka credentials.
- **Service Account:** Assigns necessary permissions to the application within Kubernetes.

**Usage:**
To deploy the cve-consumer application using Helm, run the following command:
```
helm install cve-consumer ./cve-consumer -n cve-consumer
```
Replace `-n cve-consumer` with your desired namespace.

This Helm chart provides a streamlined setup for processing CVE data, ensuring reliability, efficiency, and ease of monitoring in Kubernetes environments.