Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 

Repository files navigation

DevSecOps Pipeline Demo

A demonstration of secure CI/CD pipeline implementation with integrated security scanning and GitOps deployment practices.

πŸ“‹ Overview

This project showcases a complete DevSecOps pipeline that integrates security scanning tools directly into the CI/CD workflow. The pipeline includes static code analysis, container security scanning, and automated deployment to staging environments.

πŸ› οΈ Technologies Used

  • CI/CD: GitLab CI/CD
  • Container: Docker
  • Security Scanning: SonarQube, Trivy, CodeQL
  • Deployment: ArgoCD (GitOps)
  • Infrastructure: Kubernetes, Helm

πŸ“‚ Project Structure

devsecops-pipeline-demo/
β”œβ”€β”€ .gitlab-ci.yml          # Main CI/CD pipeline configuration
β”œβ”€β”€ Dockerfile              # Container build configuration
β”œβ”€β”€ sonar-project.properties # SonarQube configuration
β”œβ”€β”€ helm/                   # Helm charts for deployment
β”‚   β”œβ”€β”€ Chart.yaml
β”‚   β”œβ”€β”€ values.yaml
β”‚   └── templates/
β”œβ”€β”€ src/                    # Sample application code
β”‚   β”œβ”€β”€ app.js
β”‚   β”œβ”€β”€ package.json
β”‚   └── routes/
└── README.md

πŸ”’ Security Features

Static Code Analysis

  • SonarQube: Code quality and security vulnerability detection
  • CodeQL: Advanced semantic code analysis
  • ESLint: JavaScript/TypeScript linting with security rules

Container Security

  • Trivy: Container image vulnerability scanning
  • Dockerfile security: Best practices implementation
  • Base image scanning: Regular security updates

Pipeline Security

  • Secret management: Secured credential handling
  • Dependency scanning: Third-party library vulnerability checks
  • OWASP compliance: Following security best practices

πŸš€ Pipeline Stages

  1. Build Stage

    • Code compilation and dependency installation
    • Unit test execution
    • Code coverage analysis
  2. Security Scan Stage

    • Static code analysis with SonarQube
    • Container image scanning with Trivy
    • Dependency vulnerability check
  3. Package Stage

    • Docker image build and push
    • Helm chart validation
    • Artifact versioning
  4. Deploy Stage

    • GitOps deployment with ArgoCD
    • Staging environment deployment
    • Smoke testing

βš™οΈ Configuration

Environment Variables

# Required environment variables
SONAR_TOKEN: "your-sonarqube-token"
REGISTRY_URL: "your-container-registry"
ARGOCD_SERVER: "your-argocd-server"

Pipeline Configuration

# .gitlab-ci.yml example
stages:
  - build
  - security
  - package
  - deploy

variables:
  DOCKER_DRIVER: overlay2
  IMAGE_TAG: $CI_COMMIT_SHA

πŸ“Š Security Metrics

  • Code Coverage: > 80%
  • Security Score: A+ (SonarQube)
  • Container Vulnerabilities: 0 Critical, 0 High
  • OWASP Compliance: Level 2

πŸ”§ Local Development

  1. Clone the repository:

    git clone https://github.com/hamelin123/devsecops-pipeline-demo.git
    cd devsecops-pipeline-demo
  2. Install dependencies:

    npm install
  3. Run local security scan:

    # SonarQube local scan
    sonar-scanner
    
    # Trivy container scan
    trivy image node:16-alpine
  4. Build and test:

    docker build -t demo-app .
    docker run -p 3000:3000 demo-app

πŸ“ˆ Pipeline Results

Sample Pipeline Output

βœ… Build: SUCCESS (2m 30s)
βœ… Security Scan: PASSED (4m 15s)
   - SonarQube: Quality Gate PASSED
   - Trivy: 0 vulnerabilities found
βœ… Package: SUCCESS (1m 45s)
βœ… Deploy: SUCCESS (3m 20s)

Security Scan Results

  • Total Lines of Code: 2,847
  • Bugs: 0
  • Vulnerabilities: 0
  • Code Smells: 3 (minor)
  • Coverage: 85.2%

🎯 Key Features

  • Automated Security: Zero-touch security scanning
  • Fast Feedback: Quick pipeline execution (< 12 minutes)
  • GitOps Ready: ArgoCD integration for deployment
  • Scalable: Kubernetes-native deployment
  • Compliant: OWASP and industry standards

πŸ“š Documentation


🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Run security scans locally
  4. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ”’ Built with Security First Mindset

Made with ❀️ for DevSecOps Community

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors