
https://github.com/SMACAcademy/ArgoCD-Complete-Master-Course
https://github.com/SMACAcademy/argocd-example-apps
Please Note ::
Splitting the repositories into two distinct ones serves a specific purpose aligned with the concept of Argo CD. Here's the reasoning:
Example Applications Repo (SMACAcademy/argocd-example-apps): This repository contains example applications that we want to deploy and manage using Argo CD. It represents the actual applications that a real-world Argo CD setup would handle.
Argo CD Config Repo (SMACAcademy/ArgoCD-Complete-Master-Course): This repository focuses on the Argo CD configuration and manifests that are used to deploy and manage the applications in the other repo.
The split helps simulate a realistic workflow, where multiple repositories are maintained to manage different applications using Argo CD. This approach reflects the true essence of GitOps, where Argo CD monitors one repository (config repo) and uses it to deploy or sync the desired state of applications located in other repositories.
While switching between repos might feel a bit inconvenient initially, it’s essential for illustrating how Argo CD works in managing multiple repositories or applications in a production-like environment.
Discusses the pull-based model used by Argo CD in the GitOps workflow.
Highlights the availability of Argo CD within the Kubernetes cluster for GitOps operations.
Explores the key features of Argo CD, especially its adherence to GitOps principles.
Emphasizes the comprehensive interaction capabilities with Argo CD for application management.
Explains the unique features and differentiators of Argo CD.
Discusses various interaction methods with Argo CD, including CLI and visual monitoring.
Highlights the capability of Argo CD to manage a fleet of applications effectively.
Covers the different components of Argo CD's architecture.
Discusses how to trigger events and pull code in Argo CD.
Explores custom hooks and interfaces provided by Argo CD for user interaction.
Details the interaction between the Argo CD platform and its application controller.
Discusses the prerequisites and requirements for working with Argo CD.
Highlights the importance of having necessary credentials, like passwords or tokens, ready for the installation and demos of Argo CD.
Discusses setting up an AWS EC2 instance for the installation and demonstration of Argo CD.
Highlights the use of the default 'ec2-user' ID for system access and its superuser capabilities.
Covers the process of setting up Minikube on AWS, including creating new users and groups.
Discusses adding users to the Docker group and executing Kubernetes commands.
Details the process of installing Argo CD, including namespace creation and applying necessary configurations.
Discusses obtaining the stable version file of Argo CD and the setup within the specified namespace.
Highlights interaction with the Argo CD server using the web interface.
Focuses on the installation process of Argo CD, particularly through the CLI.
Discusses checking the health and running status of Argo CD components.
Covers obtaining the administrator password for initial login to Argo CD.
Describes the setup of Argo CD and the services within its namespace.
Focuses on accessing the Argo CD server through port forwarding to localhost.
Guides on logging in as admin and generating the initial password for Argo CD access.
Demonstrates the process of port forwarding to access the Argo CD server.
Covers logging in with the admin username and password.
Discusses generating and retrieving the initial password for Argo CD server access.
Demonstrates the use of SSH tunnels for accessing Argo CD.
Discusses the process of establishing SSH tunnels and verifying user access.
Describes the setup of the Argo CD server within the Argo CD namespace using NodePort.
Explains the process of accessing the Argo CD CLI and logging in as an admin.
Describes the process of changing the Argo CD server from a NodePort to a ClusterIP configuration.
Explains the process of logging into Argo CD.
Discusses different methods of accessing the Argo CD server, including WebUI.
Covers the installation of Argo CD and generating the initial admin password.
Explains interacting with the Argo CD server using the WebUI and CLI after installation.
Discusses port forwarding and access configurations to the Argo CD server.
Highlights the installation and use of the Argo CD command line interface.
Explores creating applications in Argo CD through the Web User Interface (WebUI).
Discusses selecting the default cluster for deploying applications.
Emphasizes the ease of application deployment within the same cluster as Argo CD.
Focuses on the initial setup and login process for Argo CD using the command line interface (CLI).
Discusses obtaining the initial password and logging in as an admin.
Highlights the default server configuration within Argo CD.
Introduces the concept of applications in Argo CD, emphasizing their central role.
Covers the setup process of Argo CD and accessing it through both CLI and WebUI.
Discusses deploying applications into Argo CD and the complete lifecycle of an application within it.
Covers the methods of defining application specifications in Argo CD, either directly through a YAML file or indirectly using the user interface.
Highlights the flexibility in defining specifications in Argo CD.
Describes the creation and use of a Git repository named "Argo CD Complete Master Course" within the context of SMAC Academy.
Elaborates on the process of integrating this repository with Argo CD.
Explores creating applications in Argo CD through the Web User Interface (WebUI).
Discusses selecting the default cluster for deploying applications.
Emphasizes the ease of application deployment within the same cluster as Argo CD.
Explores the self-healing feature in Argo CD, which automatically corrects the state of applications.
Discusses the management of namespaces by Argo CD applications.
Demonstrates the pruning feature in Argo CD with a specific application.
Highlights the process of changing passwords and logging in to Argo CD.
Discusses the functionality of the dry run feature in Argo CD.
Explains the application sync process with a focus on the 'force apply' option.
Addresses the scenario of preventing Argo CD from deleting resources that are not part of the current configuration.
Compares two methods of refreshing applications in Argo CD: standard refresh and hard refresh.
Explains how these methods impact the state of an application defined within Argo CD.
Discusses various synchronization options available in the Argo CD application sync process.
Highlights strategies for optimizing sync operations and reducing the load on the Argo CD server.
Discusses the feature in Argo CD to ignore certain differences during synchronization.
Focuses on scenarios where specific value changes are intentionally excluded from the sync process.
Focuses on the 'retry sync' option in Argo CD, explaining its significance and application.
Briefly touches on the 'App Diff' feature of Argo CD applications, highlighting its capabilities.
Discusses the rollback feature of applications within Argo CD, highlighting its history and functionality.
Focuses on managing the lifecycle of an application in Argo CD.
Provides insights into obtaining the initial admin password and logging in.
Offers a revision on application management using Argo CD.
Explores the flexibility offered by Argo CD in terms of application parameters.
Discusses the control given to users based on environmental variables.
Addresses managing Helm applications within Argo CD.
Discusses the readiness and liveness status of applications in Argo CD.
Includes a practical demonstration with a specific Argo CD application.
Highlights the use of Kubernetes commands within the context of Argo CD.
This lecture covers the configuration of repositories within Argo CD, emphasizing the importance of obtaining the exact version required for deployments.
It also discusses setting up credentials such as SSH keys, tokens, and user ID/password combinations for repository access within Argo CD
The focus of this lecture is on understanding repository management within Argo CD.
It addresses the use of various credentials like user ID, password, certificates, and authentication tokens for accessing both private and public repositories.
The lecture includes a practical example of managing a public repository, highlighting the differences in credential requirements compared to private repositories.
Explains how to connect repositories in Argo CD using SSH keys.
Discusses authentication from Argo CD, including user settings and passphrase management.
Includes a practical example of creating an Argo CD application with SSH key authentication.
The lecture delves into the management of repository credentials from a single user account perspective.
It examines scenarios involving specific URLs or users, and how Argo CD utilizes credentials associated with these elements.
A focus is placed on the practical application of user ID credentials in managing repository access within Argo CD.
Provides an overview of the features, functionalities, and use cases of projects in Argo CD.
This session explores project management in Argo CD, particularly the settings related to project configurations and restrictions.
It discusses setting limitations on user actions within projects, such as creating secrets or enforcing specific GPG keys for user or team authentication.
The lecture underscores the importance of enforcing rules and restrictions for different users in Argo CD projects.
Highlights the configuration aspects at the Argo CD level, particularly focusing on destination restrictions in projects.
Addresses how Argo CD can control resource allocations within specific namespaces.
Discusses setting allow and deny rules for resource management in projects.
Introduces the concept of sync windows in Argo CD projects.
Highlights the importance of timing the sync period to minimize impact on users.
Explores managing permissions for users and groups within Argo CD.
Discusses how different users can assume various roles and the impact of these roles on access control.
Emphasizes the implementation of granular role-based access control for users in Argo CD.
Explores Argo CD's approach to managing project quotas.
Highlights the process of verifying and restricting user actions related to application creation in different namespaces.
Covers the process of creating projects in Argo CD with specific namespace requirements.
Emphasizes the need for the namespace to be "Argo CD" for project creation.
Suggests getting comfortable with Argo CD features and options before creating projects.
Covers the management of Argo CD projects using YAML files.
Explains the nuances of executing Kubernetes commands in the context of Argo CD.
Discusses the concept of finalizers in Argo CD projects to prevent accidental deletions.
Emphasizes their role in safeguarding projects with linked applications.
Introduces Helm and its integration with Argo CD.
Describes Helm as a powerful package manager for Kubernetes applications.
Discusses how Helm packages and manages applications, especially in the context of Argo CD.
Addresses the installation and utilization of Helm within the context of Argo CD.
Explores the ease of using Helm for deploying packages and its integration with Argo CD.
Discusses the availability of popular tools and utilities as Helm charts.
Provides an overview of Helm's role in managing applications within Argo CD.
Explains the process of uploading to Helm repositories and managing different versions.
Highlights the advantages and features of using Helm charts in Argo CD.
Discusses best practices for managing Helm chart values within Argo CD.
Covers managing sensitive information like usernames and passwords.
Explores Helm's built-in functions and pipelines for secure and efficient management.
Focuses on creating an Argo CD application using Helm with a Grafana example.
Emphasizes configurations like administrator username and password.
Demonstrates overriding default passwords and setting up administrator access.
Focuses on using Helm in Argo CD for application management.
Describes creating applications with Helm and their integration with Argo CD.
Details the process of managing version rollbacks and rollouts using Helm within Argo CD.
Covers environment deployment using Argo CD and Helm.
Discusses managing multiple environment deployments effectively with Argo CD.
The creation process of Argo CD applications is addressed.
Utilizing applications to create specific configurations in Argo CD.
Introduces GPG keys and their use in securing information transmission in Argo CD.
Explains how Argo CD utilizes GPG keys to sign application manifests for enhanced security.
Explains setting the user signing key in Git for commit verification.
Discusses the importance of user identity verification in the commit signing process.
Details the configuration of user IDs for commit signing in Git.
Explains the verification of commits and projects in Argo CD using GPG keys.
Highlights the need for specific user commitments in project security.
Explains how the Autosync functionality operates within Argo CD.
The Repo server within Argo CD plays a significant role in this process.
Highlights making changes to Argo CD settings.
Discusses setting environmental variables specifically for the Argo CD Repo server
Explains the process of adding new users or accounts to Argo CD.
Discusses the different capabilities and permissions that can be assigned to new users.
Emphasizes the importance of security, mentioning the generation of API keys for user login.
Guides on updating the password using the command line interface or web interface.
Discusses the initial password generation process.
Emphasizes the importance of regularly updating the password for security.
Details on user data including client, certificate, and key information.
Emphasizes the importance of understanding cluster details, context, and user details for effective management in Argo CD.
Guides on using the initial admin password in Argo CD for secure access.
Emphasizes the importance of securely managing the initial password.
Discusses the process of logging in with the username 'admin' and the corresponding password.
Highlights successful login verification and access to Argo CD.
Describes the installation and management of Argo CD in a VM within Vultr Cloud.
Discusses integrating and managing clusters in Argo CD, including context and user details.
Dive deep into the ArgoCD world and learn the setup, deployment of applications, managing, and scaling applications, the heart of GitOps Continuous Delivery. This course is designed to learn the basic principles of ArgoCD to master its advanced features. You will be enabled to apply high-performance, declarative, and automated deployment strategies to Kubernetes environments using ArgoCD
Following are the major topics covered
ArgoCD Basics: Understand the basic concepts of ArgoCD, including its architecture, components, and how it fits into the Kubernetes and CI-CD ecosystem.
Declaration configuration: Learn to configure ArgoCD in a Kubernetes cluster (Minikube and real distributed cluster), ensuring that a declaration approach aligns with GitOps principles.
Application Deployment and Management: Following the processes of deploying applications using UI and CLI, managing multi-environment configurations, and running a simple application lifecycle using ArgoCD.
GitOps Workspace: Dive into the GitOps methodology to understand how it transforms deployment processes by putting Git at the center of the business process.
Advanced ArgoCD Features: Explore advanced topics such as automatic synchronization settings, disaster recovery, rollback settings, and custom plugin integration.
Security and Best Practices: Gain insight into securing your ArgoCD system, managing access, and following best practices for optimal performance and reliability.
The following sections are covered
1) GitOps Introduction
2) ArgoCD Introduction
3) Setting up the environment (Both Development and Production grade environments)
4) Application Management and Configuration
5) Helm Application management
6) Repositories
7) ArgoCD Administration
8) ArgoCD Projects
9) ArgoCD Configuration Management
10) Advanced Features and Strategies