Introduction
- Course Introduction
- Problem Statement Meeting with XYZ Team
- Basics of CICD
- Introducing GitLab CICD
- Create GitLab Account
Architecture & Core Concepts
- GitLab CI CD Core Components
- Create and Run a Basic Pipeline
- Types of Runners
- Types of Executors
- GitLab CICD Architecture SaaS
- Run Jobs with Shared Runners
- Install Third Party Libraries using before script
- Executing Shell Scripts in a Job
- Pipeline with Multiple Dependent Jobs
- Using stage vs stages Keyword
- Artifacts Storing Job Data
- Using needs Keyword
- Working with Variables at different levels
- Masking Variables using Project Settings
- Exploring Predefined CICD Variables
- Intro to Merge Requests
- Raise a Merge Request amp Use rules at Job level
- Use rules at Workflow Level
- Pipeline Schedules
- Resource Groups
- Use Job Timeout
- Use Job Images
- Parallel Matrix
- Skipping Pipeline Trigger
Continuous Integration with GitLab
- Project Status Meeting 1
- NodeJS Application Overview
- Run and Test NodeJS App on Local Machine
- Understanding XYZ Team DevOps Pipeline
- Import Git Repo
- Pipeline Configure Unit Testing
- Artifacts Unit Test Reports
- Pipeline Configure Coverage and Archive Reports
- Ignoring Job Failure
- Exploring Reports through Merge Request
- Caching Dependencies
- Invalidate Cache
- Project Status Meeting 2
- What are Services
- Run Unit Testing amp Code Coverage Jobs using Services
- Docker Build
- Docker Test
- Docker Push
- Publish Image to Gitlab Container Registry
- Project Status Meeting 3
Continuous Deployment with GitLab
- Understanding Deployment Pipeline
- Kubernetes A Brief Overview
- Exploring Kubernetes Cluster
- Job Setup Kubectl
- Job Configuring Kubeconfig file
- Job Replace Placeholders Tokens
- Job Create Secret and Deploy to K8S Dev Environment
- Job Fetch Ingress URL amp Integration testing
- Understand Gitlab Environments
- Environment and Deployments
- Connecting a Kubernetes cluster with GitLab via agentK
- Configure Gitlab Agent
- Customize Agent Config and Staging Environment
- Manually Promote to Staging Environment via agentK
Optimization, Security and Monitoring
- Optimize CICD configuration files
- Extends Reuse Configuration NodeJS Jobs
- Anchors Reuse Configuration Deployment Jobs
- Reference Tags Reuse Configuration Integration Testing
- Template and Types of Includes
- Component Code Quality
- Template SAST
- Component Secret Detection
- Template Container Scanning
- Slack Channel Notifications
- ChatOps with Slack
- Pipeline Monitoring with Prometheus and Grafana
- Adding a Pipeline status amp Code Coverage Badge
Self-Managed Runners
- Self Managed Runners
- Install Project Runner on Linux Machine with Shell Executor
- Run Jobs on the installed Shell Executor
- Install Group Runner on Linux Machine with Docker Executor
- Use Local Template to Upload Reports to AWSMinio S3 Bucket
Auto DevOps
- What is Auto DevOps
- Configuring AutoDevOps
- Raise a Merge Request and Checkout AutoDevOps
- Fixing Issues and Deploying to Review Environment
- Automatic Deployment to Production Environment
- Switch to ULTIMATE Tier
- Staging Environment and Canary Deployment with AutoDevOps part 1
- Staging Environment and Canary Deployment with AutoDevOps part 2
- Rollback Deployment
- AutoDevOps Customization