Argo
ArgoCD 101 13 questions
- #1What is Argo CD?
- #2There been a lot of CI/CD systems before ArgoCD (Jenkins, Teamcity, CircleCI, etc.) What added value ArgoCD brought?
- #3Describe an example of workflow where ArgoCD is used
- #4True or False? ArgoCD supports Kubernetes YAML files but not other manifests formats like Helm Charts and Kustomize
- #5What "GitOps Repository" means in regards to ArgoCD?
- #6What are the advantages in using GitOps approach/repository?
- #7Sorina, one of the engineers in your team, made manual changes to the cluster that override some of the configuration in a repo traced by ArgoCD. What will happen?
- #8Nate, one of the engineers in your organization, asked whether it's possible if ArgoCD didn't sync for changes done manually to the cluster. What would be your answer?
- #9How cluster disaster recovery becomes easier with ArgoCD?
- #10Ella, an engineer in your team, claims ArgoCD benefit is that it's an extension Kubernetes, it's part of the cluster. Sarah, also an engineer in your team, claims it's not a real benefit as Jenkins can be also deployed in the cluster hence being part of it. What's your take?
- #11How the main resource in ArgoCD called?
- #12Explain what is an "Application" in regards to ArgoCD
- #13How ArgoCD makes access management in the cluster easier?
Practical ArgoCD 101 11 questions
- #14Describe the purpose of the following section in a an Application YAML file
source: repoURL: https://github.com/bregman-arie/devops-exercises targetRevision: HEAD path: main - #15Describe the purpose of the following section in a an Application YAML file
destination: server: http://some.kubernetes.cluster.svc namespace: devopsExercises - #16What CRD would you use if you have multiple applications and you would like to group them together logically?
- #17True or False? ArgoCD sync period is 3 hours
- #18Describe shortly what ArgoCD does every sync period
- #19You deployed a new application in a namespace called "yay" but when running kubectl get ns yay you see there is no such namespace. What happened?
- #20Create a new application with the following properties:
- app name: some-app
- repo: https://fake.repo.address
- app path: ./app_path
- namespace: default
- cluster: my.kubernetes.cluster
- #21List all argocd apps
- #22Print detailed information on the app called "some-app"
- #23How to add an additional (external) cluster for ArgoCD to manage?
- #24How to list all the clusters ArgoCD manage?
ArgoCD Configuration 2 questions
- #25Is it possible to change default sync period of ArgoCD?
- #26What will be the result of setting timeout.reconciliation: 0s?
Advanced ArgoCD 4 questions
- #27What is the "App of Apps Patterns"?
- #28Can you provide some use cases for using "App of Apps Patterns"?
- #29True or False? If you have multiple Kubernetes clusters you want to manage sync applications to with ArgoCD then, you must have ArgoCD installed on each one of them
- #30You've three clusters - dev, staging and prod. Whenever you update the application GitOps repo, all three clusters are being updated. What's the problem with that and how to deal with it?
ArgoCD Application Health 4 questions
- #31What are some possible health statuses for an ArgoCD application?
- #32True or False? A Deployment considered to be healthy if the Pods are running
- #33True or False? An ingress is considered healthy if status.loadBalancer.ingress list includes at least one value
- #34What can you tell about the health of custom Kubernetes resources?
ArgoCD Syncs 3 questions
- #35Explain manual syncs vs. automatic syncs
- #36Explain auto-pruning
- #37Explain self-heal in regards to ArgoCD
ArgoCD and Helm 2 questions
- #38What support is provided in ArgoCD for Helm?
- #39True or False? When ArgoCD tracks Helm chart the chart is no longer an Helm application and it's a ArgoCD app
Argo Rollouts 101 3 questions
- #40What is Argo Rollouts?
- #41What happens when you rollout a new version of your app with argo rollouts?
- #42True or False? You need to install ArgoCD in order to use Argo Rollouts
Argo Advanced Rollouts 3 questions
- #43Scott, an engineer in your team, executes manually some smoke tests and monitors rollouts every time a new version is deployed. This way, if there is an issue he detects, he performs a rollback. What better approach you might suggest him to take?
- #44Explain the concept of "Analysis" in regards to Argo Rollouts
- #45Explain the following configuration
apiVersion: argoproj.io/v1alpha1 kind: AnalysisTemplate metadata: name: success-rate spec: args: - name: service-name metrics: - name: success-rate interval: 4m count: 3 successCondition: result[0] >= 0.90 provider: prometheus: address: http:/some-prometheus-instance:80 query: sum(response_status{app="{{args.service-name}}",role="canary",status=~"2.*"})/sum(response_status{app="{{args.service-name}}",role="canary"}
Argo Rollouts Commands 6 questions
- #46How to list rollouts?
- #47How to list the rollouts of a given application?
- #48How to check the status of a rollout?
- #49How to rollout a new version (with new container tag)?
- #50How to manually promote to new app version?
- #51How do you monitor a rollout?