diff --git a/tools/Argo/README.md b/tools/Argo/README.md new file mode 100644 index 0000000..35b2d30 --- /dev/null +++ b/tools/Argo/README.md @@ -0,0 +1,171 @@ +# Argo +Argo Logo + + +## Overview + +Argo is a suite of open‑source, Kubernetes‑native tools built to automate and orchestrate cloud‑native workloads. Originally created by the founders of Akuity, it’s now a graduated Cloud Native Computing Foundation (CNCF) project. +Argo enables declarative, GitOps‑style workflows, progressive delivery, event‑driven automation, and more — giving teams a powerful and flexible foundation for Kubernetes application delivery. + +--- + +## Difference Between Argo and Argo CD + +Although “Argo” often refers collectively to its ecosystem, here’s a breakdown of how **Argo (the suite)** and **Argo CD** differ: + +| Feature | Argo (Workflows, Events, Rollouts) | Argo CD | +|---|---|---| +| Primary Focus | Automated workflows, event‑driven orchestration, and progressive rollout strategies | GitOps‑based continuous delivery and Kubernetes app deployment | +| Use Cases | Running pipelines, batch jobs, or responding to events | Syncing Kubernetes cluster state with Git repositories | +| Trigger Mechanisms | Scheduled, event‑based, or manually triggered workflows | Git commits, branch/PR state, manual syncs | +| Core Value | Flexible, container‑native automation | Declarative, Git‑centric deployment control | + +In short: +- **Argo** is the orchestration toolkit +- **Argo CD** is the GitOps CD engine + +--- + +## Key Features + +Argo (and its sub‑projects) provide: + +- Kubernetes‑native architecture — built on Kubernetes APIs for tight integration +- Declarative configuration via YAML +- GitOps‑driven application deployment (via Argo CD) +- Workflow automation (Argo Workflows) +- Progressive delivery / rollout strategies (Argo Rollouts) +- Event‑driven automation (Argo Events) +- Role‑based access control (RBAC), audit trails, and SSO (in Argo CD) +- Web‑based UI and CLI tools +- Scalability and high availability for production use + +--- + +## Getting Started + +## Argo Prerequisites + +## 🔑 General Requirements +- A working **Kubernetes cluster** + - Local: Minikube, Kind, k3s/k3d, Docker Desktop + - Cloud: GKE, EKS, AKS, etc. +- **kubectl** installed and configured to access your cluster +- **Namespaces** created for Argo components (`argo`, `argocd`) + +--- + +## 🚀 Argo Workflows +- Kubernetes cluster with RBAC enabled +- `kubectl` CLI configured + +### Installation + +Below are the installation commands for each Argo component: + +#### 1. Argo Workflows + +Automates and orchestrates Kubernetes jobs and tasks as workflows + +**Installation:** + +```bash +kubectl create namespace argo +kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/install.yaml +``` + +**Verify installation:** + +```bash +kubectl get pods -n argo +``` + +**Run a simple Argo Workflow:** + +```bash +argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml -n argo +``` + + +#### 2. Argo Rollouts + +Argo Rollouts provides advanced deployment strategies (blue-green, canary) for Kubernetes + +installation: + +```bash +kubectl create namespace argo-rollouts +kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/stable/manifests/install.yaml +``` +#### 3. Argo Events + +Triggers workflows or actions based on events from various sources. + +installation: + +```bash +kubectl create namespace argo-events +kubectl apply -n argo-events -f https://raw.githubusercontent.com/argoproj/argo-events/stable/manifests/install.yaml +``` + +Verify installation: + +`kubectl get pods -n argo-events` + +#### 4. ArgoCD + +Continuously deploys applications from Git repositories to Kubernetes clusters (GitOps). + +**Installation:** + +```bash +kubectl create namespace argocd +kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml +``` + +**Verify installation:** + +```bash +kubectl get pods -n argocd +``` + +**Expose the Argo CD API server:** + +```bash +kubectl port-forward svc/argocd-server -n argocd 8080:443 +``` + +**Access UI:** + +```bash +https://localhost:8080 +``` + +**Get initial admin password:** + +```bash +kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d +``` + +**Create an Argo CD Application:** + +```bash +argocd app create my-app \ + --repo https://github.com/example/repo.git \ + --path manifests \ + --dest-server https://kubernetes.default.svc \ + --dest-namespace default +``` + +**Sync the application:** + +```bash +argocd app sync my-app +``` + + +## Resources + +- [Official Website](https://argoproj.github.io/) +- [Documentation](https://argo-cd.readthedocs.io/) +- [GitHub Repository](https://github.com/argoproj/argo-cd) \ No newline at end of file diff --git a/tools/LXC-LXD/README.md b/tools/LXC-LXD/README.md index a08d49c..09d5c7d 100644 --- a/tools/LXC-LXD/README.md +++ b/tools/LXC-LXD/README.md @@ -70,7 +70,7 @@ Linux kernel >= 3.12 -**LXD Installation-** +### LXD Installation LXD is supported primarily on Linux distributions that have Snapd available (like Ubuntu, Debian, Fedora, Arch, CentOS, and more information inside this [link](https://snapcraft.io/lxd?_gl=1*1f0ig8*_ga*MTEzNDgxMTkzOC4xNzYzODUxMDQ1*_ga_5LTL1CNEJM*czE3NjM4NTEwNDQkbzEkZzEkdDE3NjM4NTEwNTAkajU0JGwwJGgw#distros) ).