Skip to content

smartcraze/devops-learning

Repository files navigation

🚀 DevOps Learning Repository

A hands-on, end-to-end DevOps learning repo — covering Shell Scripting, Docker, Kubernetes, CI/CD, ArgoCD, Terraform, Nginx, Linux, Git and real-world mega projects

DevOps Shell Docker Kubernetes Terraform ArgoCD


📖 Table of Contents

# Section Description
1 🐚 Shell Scripting for DevOps Bash scripting from basics to real-world automation
2 🐋 Docker Dockerfiles, Compose, and command references
3 ☸️ Kubernetes (k8s) Docs, manifests, and local cluster setup
4 ☸️ Kubernetes in One Shot Complete hands-on Kubernetes reference with YAMLs
5 🔄 CI/CD GitHub Actions, Jenkins pipelines, and workflows
6 🔁 ArgoCD Demos GitOps patterns: declarative, app-of-apps, image updater
7 🔁 ArgoCD Practice Hands-on ArgoCD application manifests
8 🏗️ Terraform for DevOps Terraform IaC examples from basics to EKS
9 🌐 Nginx Web server config, reverse proxy, SSL
10 🐧 Linux Bash commands, permissions, networking
11 📁 Git Git CLI guide and branching strategies
12 🛒 Retail Store Sample App Full GitOps project on AWS EKS Auto Mode
13 🌍 Wanderlust Mega Project End-to-end DevSecOps + GitOps MERN deployment
14 📚 Learning Resources Curated external resources for each topic

🐚 Shell Scripting for DevOps

Folder: Shell-Scripting-For-DevOps/

A complete guide to Bash shell scripting for DevOps engineers — from writing your first script to automating cloud infrastructure. Organized by day-wise practice sessions and batch scripts.

📂 Contents

File / Folder Description
README.md Full curriculum: intro → intermediate → advanced → real-world projects
day01/
day01/hello.sh First shell script — printing and variables
day02/
day02/for_loop.sh for loops in Bash
day02/while_loop.sh while loops in Bash
day02/create_user.sh Script to create a Linux user
day02/check_if_jetha_loyal.sh Conditional statements example
day02/jetha_lal_ki_duniya.sh Fun functions and logic demo
day03/
day03/error_handle.sh Error handling with set -e, trap
day03/deploy_django_app.sh Automate Django app deployment
day03/create_ec2.sh Provision AWS EC2 using AWS CLI
day04/
day04/create_ec2.sh Advanced EC2 creation script
batch-10-scripts/
batch-10-scripts/hello.sh Hello world script
batch-10-scripts/functions.sh Functions in shell scripting
batch-10-scripts/for_loops.sh For loop patterns
batch-10-scripts/create_user.sh Create user from script
batch-10-scripts/add_user_from_function.sh User creation using functions
batch-10-scripts/error_handling.sh Robust error handling patterns
batch-10-scripts/install_packages.sh Automate package installation
batch-10-scripts/system_details.sh Print system info (CPU, RAM, disk)
batch-10-scripts/create_simple_file.sh File creation automation
batch-10-scripts/if_file_exists.sh File existence check
log-files/ Sample log files for parsing practice
log-files/app.log Application log sample
log-files/application.log Extended application log
log-files/july-29-warning-logs.log Warning-level log sample
log-files/zookeeper.log ZooKeeper log for parsing practice

🐋 Docker

Folder: docker/

Comprehensive documentation on writing Dockerfiles, using Docker Compose, and mastering Docker CLI commands. Each guide includes best practices, real examples, and security tips.

📂 Contents

File Description
docker/dockerfile-guide.md Writing Dockerfiles — basic to multi-stage, security, optimization
docker/compose-guide.md Docker Compose — services, volumes, networks, env variables
docker/commands-guide.md Complete Docker CLI reference — containers, images, networks, volumes

☸️ Kubernetes (k8s)

Folder: k8s/

Structured Kubernetes documentation covering pods, deployments, services, storage, and local development setup. Also contains self-exploration YAML manifests for hands-on practice.

📂 Docs

File Description
k8s/docs/local-development-setup.md Install kubectl, kind, minikube; create local clusters
k8s/docs/pods.md Pod concepts, lifecycle, and YAML spec
k8s/docs/pods-and-deployments.md Deployment strategies, ReplicaSets, rollouts
k8s/docs/Deployment.md In-depth Deployment resource guide
k8s/docs/kubernetes-services.md ClusterIP, NodePort, LoadBalancer, Headless services
k8s/docs/storage-and-persistence.md PV, PVC, StorageClass, cloud provider storage
k8s/docs/manifest.md Writing and structuring Kubernetes manifests
k8s/docs/end-end.md End-to-end deployment walkthrough

📂 Self-Explore Manifests

File Description
k8s/self-explore/cluster.yml Kind cluster config
k8s/self-explore/manifest.yml General manifest practice
k8s/self-explore/deployment.yml Sample Deployment
k8s/self-explore/rs.yml ReplicaSet definition
k8s/self-explore/svc.yml Service definition

☸️ Kubernetes in One Shot

Folder: kubernetes-in-one-shot/

A comprehensive, categorized collection of kubectl commands and real YAML manifests covering every major Kubernetes topic — from core workloads to RBAC, Helm, monitoring, and custom resource definitions (CRDs). Ideal for interview prep and hands-on learning.

📂 Contents

File / Folder Description
README.md Complete kubectl command reference by topic
nginx/ Nginx workloads on Kubernetes
nginx/pod.yml Basic nginx Pod
nginx/deployment.yml Nginx Deployment
nginx/replicasets.yml Nginx ReplicaSet
nginx/service.yml Nginx Service
nginx/namespace.yml Namespace for nginx
nginx/ingress.yml Ingress resource
nginx/daemonsets.yml DaemonSet example
nginx/job.yml Kubernetes Job
nginx/cron-job.yml CronJob example
nginx/persistentVolume.yml PersistentVolume
nginx/persistentVolumeClaim.yml PersistentVolumeClaim
apache/ Apache workloads with autoscaling and RBAC
apache/deployment.yml Apache Deployment
apache/service.yml Apache Service
apache/namespace.yml Namespace
apache/hpa.yml Horizontal Pod Autoscaler
apache/vpa.yml Vertical Pod Autoscaler
apache/role.yml RBAC Role
apache/role-binding.yml RBAC RoleBinding
apache/service-account.yml ServiceAccount
mysql/ MySQL StatefulSet with Secrets and ConfigMaps
mysql/statefulset.yml MySQL StatefulSet
mysql/service.yml MySQL Service
mysql/namespace.yml Namespace
mysql/configMap.yml ConfigMap
mysql/secrets.yml Kubernetes Secret
mysql/vpa.yml Vertical Pod Autoscaler
pods/ Special pod patterns
pods/init-container.yml Init container pattern
pods/sidecar-container.yml Sidecar container pattern
crd/ Custom Resource Definitions
crd/devops-crd.yml Custom Resource Definition
crd/devops-cr.yml Custom Resource instance
crd/devops-cr2.yml Second CR instance
dashboard/
dashboard/dashboard-admin-user.yml K8s Dashboard admin user
helm/ Helm chart packages
helm/get_helm.sh Helm installation script
helm/apache-helm-0.1.0.tgz Packaged Apache Helm chart
helm/node-js-app-0.1.0.tgz Packaged Node.js Helm chart
monitoring/
monitoring/get_helm.sh Install Prometheus + Grafana stack
django-notes-app/ Full Django app with Docker + Jenkins + K8s
django-notes-app/Dockerfile Django app Dockerfile
django-notes-app/Jenkinsfile Jenkins CI pipeline
django-notes-app/docker-compose.yml Docker Compose for local dev
django-notes-app/README.md Project README

🔄 CI/CD

Folder: ci-cd/

Documentation covering the two most popular CI/CD platforms — GitHub Actions and Jenkins — along with general workflow best practices. Includes real pipeline examples, secrets management, and deployment strategies.

📂 Contents

File Description
ci-cd/github-actions.md Workflow syntax, triggers, jobs, secrets, example workflows
ci-cd/jenkins.md Jenkinsfile syntax, declarative pipelines, plugins, security
ci-cd/workflows.md Development pipeline patterns, testing strategy, release management

🔁 ArgoCD Demos

Folder: argocd-demos/

Practical demonstrations of ArgoCD GitOps patterns used in production environments. Covers multiple deployment approaches — from CLI to declarative to advanced patterns like App of Apps, ApplicationSets, Image Updater, and multi-cluster deployments.

📂 Contents

File / Folder Description
README.md Setup guide: install kind, kubectl, ArgoCD CLI, access UI
cli_approach/ Deploy apps using the ArgoCD CLI
cli_approach/apache/apache_deployment.yml Apache Deployment via CLI
cli_approach/apache/apache_svc.yml Apache Service
declarative_approach/ Deploy apps using ArgoCD Application CRDs
declarative_approach/online_shop/online_shop_app.yml ArgoCD Application manifest
declarative_approach/online_shop/online_shop_deployment.yml Online shop Deployment
declarative_approach/online_shop/online_shop_svc.yml Online shop Service
app_of_apps/ App of Apps pattern — manage multiple apps with one root app
app_of_apps/apps/apache_app.yml Apache child app
app_of_apps/apps/nginx_app.yml Nginx child app
app_of_apps/apps/online_shop_app.yml Online shop child app
applicationsets/ ApplicationSets — dynamically generate ArgoCD apps
applicationsets/chai-app/deployment.yml Chai app Deployment
applicationsets/chai-app/service.yml Chai app Service
applicationsets/chai-app/secret.yml Chai app Secret
git_generator/ Generate apps from Git directory structure
git_generator/apache/apache_deployment.yml Apache Deployment for Git generator
git_generator/chai-app/deployment.yml Chai app Deployment
git_generator/online-shop/deployment.yml Online shop Deployment
image_updater/ Automatically update image tags in Git using ArgoCD Image Updater
image_updater/chai-app/deployment.yml Deployment with image updater annotations
image_updater/chai-app/kustomization.yml Kustomize config for image updates
multicluster/ Deploy to multiple Kubernetes clusters
multicluster/online-shop/deployment.yml Multi-cluster deployment
monitoring/ Observability apps managed by ArgoCD
monitoring/chai-app/deployment.yml Monitoring app Deployment
monitoring/online_shop/online_shop_deployment.yml Online shop monitoring Deployment
ui_approach/ Deploy apps from the ArgoCD Web UI
ui_approach/nginx/nginx_deployment.yml Nginx Deployment via UI
ui_approach/nginx/nginx_svc.yml Nginx Service

🔁 ArgoCD Practice

Folder: argocd-practice/

Hands-on YAML manifests for practicing ArgoCD deployments, including a real-world Slotify application with a database backend, ingress, and secrets.

📂 Contents

File / Folder Description
argocd-practice/deployment.yaml Sample Deployment for practice
argocd-practice/service.yaml Sample Service
argocd-practice/online-shop.yaml Online shop ArgoCD Application CRD
slotify-app/ Full app stack: backend + Postgres DB
slotify-app/deployment.yaml Slotify app Deployment
slotify-app/Service.yaml Slotify Service
slotify-app/ingress.yaml Ingress resource
slotify-app/postgres-deployment.yaml PostgreSQL Deployment
slotify-app/postgres-service.yaml PostgreSQL Service
slotify-app/ConfigMapsecrets.yaml ConfigMap and secrets config
slotify-app/secrets.yaml Kubernetes Secrets

🏗️ Terraform for DevOps

Folder: terraform-for-devops/

A hands-on Terraform repository covering everything from basic AWS resource provisioning to advanced features (modules, EKS clusters, lifecycle rules, import blocks, test framework). Perfect for DevOps engineers learning Infrastructure as Code on AWS.

📂 Contents

File / Folder Description
README.md Full guide: commands, structure, learning map
terraform.tf Provider config and version constraints
variables.tf Input variables with validation
ec2.tf EC2 instance, security group, key pair
s3.tf S3 bucket with versioning and encryption
dynamodb.tf DynamoDB table
outputs.tf Output values
script.sh EC2 user_data bootstrap script
eks/ EKS cluster using Terraform EKS module v21.x
eks/eks.tf EKS cluster with managed node groups
eks/vpc.tf VPC module for EKS networking
eks/provider.tf Provider and locals
eks/outputs.tf EKS outputs
eks/README.md EKS module guide
aws_module_project/ Reusable Terraform modules (dev/stg/prd)
aws_module_project/main.tf Module composition for multiple envs
aws_module_project/providers.tf AWS provider
aws_module_project/terraform.tf Version constraints
examples/ Modern Terraform features (1.5+)
examples/for_each.tf for_each and dynamic blocks
examples/validation.tf Variable validation blocks
examples/lifecycle.tf lifecycle meta-arguments
examples/moved.tf moved blocks for safe refactoring
examples/import.tf import blocks (Terraform 1.5+)
examples/check.tf check blocks for continuous assertions
examples/removed.tf removed blocks for safe deletion
examples/README.md Examples guide

🌐 Nginx

Folder: nginx/

Documentation for configuring Nginx as a web server and reverse proxy. Covers SSL termination, load balancing, caching, security headers, and WebSocket proxying.

📂 Contents

File Description
nginx/basic-config.md Server blocks, location blocks, SSL, performance, security headers, logging
nginx/reverse-proxy.md Reverse proxy setup, load balancing, SSL termination, caching, WebSocket

🐧 Linux

Folder: linux/

Essential Linux knowledge for DevOps engineers. Covers day-to-day Bash commands, file permission management, and network troubleshooting — all from a practical DevOps perspective.

📂 Contents

File Description
linux/bash-commands.md System monitoring, file management, networking, package management, users, services
linux/file-permissions.md Permission types, ownership, special permissions, ACLs, security best practices
linux/networking-basics.md Interface config, routing, firewall rules, DNS, troubleshooting

📁 Git

Folder: git/

A concise Git CLI reference covering the commands and workflows every DevOps engineer uses daily — from basic operations to advanced branching, rebase, and automation-friendly patterns.

📂 Contents

File Description
git/git-cli.md Basic commands, branching strategy, merge vs rebase, advanced operations, best practices

🛒 Retail Store Sample App

Folder: retail-store-sample-app/

A production-grade GitOps project demonstrating how to deploy a full microservices retail application on AWS EKS Auto Mode using Terraform, ArgoCD, GitHub Actions and Helm. Features dual-branch strategy (public vs production/GitOps branch) and includes complete Terraform IaC.

Tech Stack: AWS EKS Auto Mode · ArgoCD · Terraform · GitHub Actions · NGINX Ingress · Cert-Manager · Helm

📂 Contents

File / Folder Description
README.md Full deployment guide: prerequisites, Terraform, ArgoCD, GitOps
BRANCHING_STRATEGY.md Dual-branch (public vs GitOps) strategy explained
terraform/ Full IaC for EKS + ArgoCD + VPC
terraform/main.tf Core infrastructure: VPC, EKS, node groups
terraform/argocd.tf ArgoCD installation via Terraform
terraform/addons.tf EKS add-ons: NGINX Ingress, Cert-Manager
terraform/variables.tf Configurable input variables
terraform/outputs.tf Terraform outputs
terraform/security.tf Security groups and IAM roles
terraform/locals.tf Local values
terraform/versions.tf Provider version constraints
terraform/README.md Terraform module documentation

🌍 Wanderlust Mega Project

Folder: Wanderlust-Mega-Project/

An end-to-end DevSecOps + GitOps project deploying a full MERN stack travel blog application on AWS EKS. Integrates Jenkins CI, SonarQube, OWASP dependency check, Trivy, ArgoCD CD, Redis caching, and Prometheus + Grafana monitoring.

Tech Stack: GitHub · Docker · Jenkins · SonarQube · OWASP · Trivy · ArgoCD · Redis · AWS EKS · Helm · Prometheus · Grafana

📂 Contents

File / Folder Description
README.md Complete project setup: Jenkins, EKS, ArgoCD, monitoring
Jenkinsfile Main CI pipeline (build, scan, push)
docker-compose.yml Local dev stack: frontend + backend + Redis + MongoDB
package.json Root package config
backend/ Node.js Express API
backend/server.js Express server entry point
backend/Dockerfile Backend Docker image
backend/.env.sample Environment variable template
frontend/ React + Vite + Tailwind UI
frontend/Dockerfile Frontend Docker image
frontend/vite.config.ts Vite build config
database/
database/Dockerfile MongoDB Docker image
kubernetes/ Kubernetes manifests for EKS deployment
kubernetes/backend.yaml Backend Deployment + Service
kubernetes/frontend.yaml Frontend Deployment + Service
kubernetes/mongodb.yaml MongoDB StatefulSet + Service
kubernetes/redis.yaml Redis Deployment
kubernetes/persistentVolume.yaml PersistentVolume for MongoDB
kubernetes/persistentVolumeClaim.yaml PVC for MongoDB
kubernetes/README.md Kubernetes deployment guide
kubernetes/kubeadm.md Kubeadm cluster setup notes
GitOps/
GitOps/Jenkinsfile GitOps CD pipeline (update image tags in Git)
Automations/
Automations/updatebackendnew.sh Script to update backend image tag
Automations/updatefrontendnew.sh Script to update frontend image tag
Assets/README.md Project assets and diagrams

📚 Learning Resources

A curated list of high-quality free resources for each topic in this repository.

🐚 Shell Scripting

🐋 Docker

☸️ Kubernetes

🔄 CI/CD

🔁 ArgoCD / GitOps

🏗️ Terraform

🌐 Nginx

🐧 Linux

📁 Git

☁️ AWS (General)

🎯 DevOps Roadmap


🗺️ How to Navigate This Repository

devops-learning/
├── Shell-Scripting-For-DevOps/   # Start here for scripting basics
├── linux/                        # Linux fundamentals
├── git/                          # Git CLI guide
├── docker/                       # Containerization docs
├── k8s/                          # Kubernetes docs + manifests
├── kubernetes-in-one-shot/       # Full K8s hands-on reference
├── ci-cd/                        # GitHub Actions + Jenkins
├── argocd-demos/                 # GitOps patterns (ArgoCD)
├── argocd-practice/              # ArgoCD YAML practice
├── terraform-for-devops/         # Infrastructure as Code
├── nginx/                        # Web server + reverse proxy
├── retail-store-sample-app/      # Real-world EKS GitOps project
└── Wanderlust-Mega-Project/      # End-to-end DevSecOps project

🧭 Suggested Learning Path

  1. Foundationslinux/git/Shell-Scripting-For-DevOps/
  2. Containersdocker/
  3. Orchestrationk8s/kubernetes-in-one-shot/
  4. CI/CDci-cd/
  5. GitOpsargocd-demos/argocd-practice/
  6. IaCterraform-for-devops/
  7. Web Servernginx/
  8. Real Projectsretail-store-sample-app/Wanderlust-Mega-Project/

🤝 Contributing

Contributions are always welcome! Here's how you can help:

  1. Report Issues — Open a GitHub issue for bugs, outdated content, or suggestions
  2. Improve Docs — Submit a PR to fix typos, add examples, or improve explanations
  3. Add Scripts — Add new shell scripts, manifests, or Terraform configs
  4. Add Resources — Know a great tutorial or guide? Add it to the Resources section

Please ensure your contributions follow the existing folder structure and naming conventions.


📄 License

This repository is available under the MIT License. See the LICENSE file for details.


If this repo helped you, please give it a star!

About

learning of devops including ci/cd docker git k8s gitops ssh aws i will put it here

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors