Skip to content

Alves0611/full-devsecops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

157 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ DevSecOps Pipeline - Kubernetes DevOps & Security

Pipeline Status Security Kubernetes Docker

A complete DevSecOps pipeline implementing security best practices, automation, and deployment on Kubernetes with AWS EKS.

🎯 Overview

This project demonstrates the implementation of a robust and secure DevSecOps pipeline, integrating multiple security tools, test automation, and Kubernetes deployment. The pipeline ensures that every commit goes through rigorous security checks before being deployed to production.

πŸ—οΈ System Architecture

DevSecOps Pipeline Architecture

πŸš€ Key Features

πŸ”’ Integrated Security (Security-First)

  • πŸ” Secrets Detection - Talisman to identify exposed credentials
  • πŸ›‘οΈ Vulnerability Analysis - Trivy for dependency and container scanning
  • πŸ“‹ OPA Policies - Conftest for Kubernetes manifest validation
  • πŸ” Kubesec - K8s-specific security analysis
  • πŸ•·οΈ DAST Testing - OWASP ZAP for dynamic security testing

πŸ§ͺ Code Quality

  • βœ… Unit Tests - Complete coverage with JaCoCo
  • 🧬 Mutation Testing - PIT to validate test quality
  • πŸ“Š Static Analysis (SAST) - SonarQube for code metrics
  • πŸšͺ Quality Gate - Automatic quality validation
  • πŸ”— Integration Tests - Automated end-to-end validation

☸️ Kubernetes & Cloud

  • πŸš€ Automated Deploy - AWS EKS with controlled rollout
  • πŸ“ˆ Health Checks - Application health monitoring
  • πŸ”„ Automatic Rollback - Recovery in case of failures
  • πŸ“’ Notifications - Slack integration for pipeline status

πŸ› οΈ Technology Stack

Category Tools Version
Backend Spring Boot, Java 2.2.1, Java 8
Container Docker Latest
Orchestration Kubernetes, AWS EKS Latest
CI/CD GitHub Actions Latest
Security Trivy, OWASP ZAP, Kubesec, OPA, Talisman Latest
SAST SonarQube Latest
Testing JUnit, JaCoCo, PIT Latest
Monitoring Slack, GitHub Security Latest

πŸ“‹ DevSecOps Pipeline

Phase 1: Security Scanning πŸ”’

- Talisman: Secrets detection in commits
- Trivy: Vulnerability scanning in code

Phase 2: Testing & Build πŸ§ͺ

- Unit Tests: JUnit with JaCoCo coverage
- Mutation Testing: PIT for test quality
- Maven Build: Compilation and packaging

Phase 3: SAST Analysis πŸ”

- SonarQube: Static code analysis
- Quality Gate: Quality metrics validation
- Coverage Integration: JaCoCo reports integration

Phase 4: Containerization 🐳

- Docker Build: Containerized image creation
- Docker Push: Registry upload
- Image Tagging: Versioning with Git SHA

Phase 5: Kubernetes Security ☸️

- Kubesec: Manifest security analysis
- Trivy K8s: Kubernetes configuration scanning
- OPA Conftest: Policy validation

Phase 6: Deployment πŸš€

- EKS Deploy: AWS cluster deployment
- Rollout Monitoring: Deployment tracking
- Health Checks: Health verification

Phase 7: Integration Testing πŸ”—

- Port Forward: Access to deployed service
- API Testing: Endpoint validation
- Payload Verification: Functionality tests

Phase 8: DAST Scanning πŸ•·οΈ

- OWASP ZAP Baseline: Basic security scan
- OWASP ZAP Full: Complete vulnerability scan
- Report Generation: Detailed HTML reports

Phase 9: Notifications πŸ“’

- Slack Integration: Status notifications
- Pipeline Summary: Complete results summary

πŸƒβ€β™‚οΈ How to Run

Prerequisites

  • Docker
  • kubectl
  • AWS CLI configured
  • Active EKS cluster

1. Clone Repository

git clone https://github.com/gabriel/kubernetes-devops-security.git
cd kubernetes-devops-security

2. Configure GitHub Secrets

# Required secrets:
AWS_ACCESS_KEY_ID: "your-access-key"
AWS_SECRET_ACCESS_KEY: "your-secret-key"
EKS_CLUSTER_NAME: "cluster-name"
DOCKER_USERNAME: "your-dockerhub-username"
DOCKER_PASSWORD: "your-dockerhub-password"
SLACK_WEBHOOK_URL: "slack-webhook-url"
SONAR_TOKEN: "sonarqube-token"
SONAR_HOST_URL: "sonarqube-url"

3. Run Pipeline

# Push to feature/* branch to trigger pipeline
git checkout -b feature/new-feature
git add .
git commit -m "feat: new feature"
git push origin feature/new-feature

πŸ“Š Metrics and Reports

Test Coverage

  • JaCoCo: Code coverage reports
  • PIT: Test quality analysis
  • Threshold: 50% mutation score

Static Analysis (SAST)

  • SonarQube: Code quality metrics
  • Quality Gate: Automatic quality validation
  • Coverage Integration: JaCoCo reports integration

Security

  • Trivy: SARIF reports in GitHub Security
  • OWASP ZAP: HTML vulnerability reports
  • Kubesec: Manifest security scores

Deployment

  • Rollout Status: Real-time monitoring
  • Health Checks: Automatic health verification
  • Rollback: Automatic recovery on failures

πŸ”§ Advanced Configuration

Pipeline Customization

# Adjust scan severity
severity: "CRITICAL,HIGH,MEDIUM"

# Configure notification channels
SLACK_CHANNEL: "github-actions-channel"

# Customize OPA policies
opa-policies/
β”œβ”€β”€ docker-security.rego
└── opa-k8s-security.rego

Custom Scripts

scripts/
β”œβ”€β”€ kubesec-scan.sh          # Kubesec scan
β”œβ”€β”€ integration-test.sh      # Integration tests
β”œβ”€β”€ k8s-deployment.sh        # Kubernetes deploy
└── k8s-deployment-rollout-status.sh  # Rollout status

🎯 Implemented Benefits

πŸ”’ Security

  • βœ… Shift-Left Security: Security integrated from development
  • βœ… Compliance: OPA policies for compliance
  • βœ… Vulnerability Management: Automatic detection and correction
  • βœ… Secrets Management: Prevention of credential leakage

⚑ Automation

  • βœ… Zero-Touch Deployment: Completely automated deployment
  • βœ… Self-Healing: Automatic rollback on failures
  • βœ… Continuous Monitoring: Continuous health monitoring
  • βœ… Feedback Loop: Real-time notifications

πŸ“ˆ Quality

  • βœ… Code Quality: Automated quality metrics
  • βœ… Test Coverage: Comprehensive test coverage
  • βœ… Mutation Testing: Test quality validation
  • βœ… Static Analysis: Continuous static analysis

πŸ† Achieved Results

  • πŸš€ 100% Automated: Completely automated pipeline
  • πŸ›‘οΈ 7 Security Layers: Multiple security verifications
  • ⚑ Deploy in < 5min: Fast and reliable deployment
  • πŸ“Š 95%+ Coverage: High test coverage
  • πŸ”„ Zero Downtime: Deployment without service interruption

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors