{"id":24881763,"url":"https://github.com/dungpham91/gitops-at-scale-exam-qa","last_synced_at":"2026-02-05T15:33:23.631Z","repository":{"id":119154088,"uuid":"582857283","full_name":"dungpham91/GitOps-at-Scale-Exam-QA","owner":"dungpham91","description":"Summary of questions and answers when doing Codefresh's GitOps at Scale test.","archived":false,"fork":false,"pushed_at":"2022-12-28T04:07:29.000Z","size":3,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-04T23:41:51.297Z","etag":null,"topics":["argocd","codefresh","gitops"],"latest_commit_sha":null,"homepage":"https://learning.codefresh.io/certificate_v2/63242d42bf43907ba64a1709/user/62eb9af54e0b497e2a204f6b","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dungpham91.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-28T03:59:20.000Z","updated_at":"2024-12-15T18:48:07.000Z","dependencies_parsed_at":"2023-07-10T01:00:54.084Z","dependency_job_id":null,"html_url":"https://github.com/dungpham91/GitOps-at-Scale-Exam-QA","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dungpham91/GitOps-at-Scale-Exam-QA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dungpham91%2FGitOps-at-Scale-Exam-QA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dungpham91%2FGitOps-at-Scale-Exam-QA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dungpham91%2FGitOps-at-Scale-Exam-QA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dungpham91%2FGitOps-at-Scale-Exam-QA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dungpham91","download_url":"https://codeload.github.com/dungpham91/GitOps-at-Scale-Exam-QA/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dungpham91%2FGitOps-at-Scale-Exam-QA/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29124802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T14:05:12.718Z","status":"ssl_error","status_checked_at":"2026-02-05T14:03:53.078Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argocd","codefresh","gitops"],"created_at":"2025-02-01T12:13:28.229Z","updated_at":"2026-02-05T15:33:23.625Z","avatar_url":"https://github.com/dungpham91.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitOps-at-Scale-Exam-QA\nSummary of questions and answers when doing Codefresh's GitOps at Scale test.\n\n1. `An Argo CD hook that runs in the PreSync phase has an error and fails. Argo CD will` -\u003e Abort the deployment\n\n2. `Resource A is in the PreSync phase with Sync wave 50. Resource B is in the SyncFail phase with Sync Wave  -50. Resource C is in the PostSync phase with wave -99` -\u003e \nResource A will be deployed first, then Resource B (if applicable). Resource C will be deployed last\n\n3. `If a hook in the PostSync phase has an error, Argo CD` -\u003e will abort the deployment and mark it as failed\n\n4. `When do you need to ignore differences in Argo CD resources?` -\u003e When an application has values that should be dynamically modified after manifests are applied.\n\n5. `An application has a “deny” sync window for 5pm to 8pm and an “allow” sync window from 6pm to 9pm. The time is now 7pm` -\u003e You cannot deploy the application, “deny” windows override “allow” windows\n\n6. `An application has an “allow” sync window for 5pm to 6pm. The time is now 7pm` -\u003e You can deploy the application as no sync window is active\n\n7. `What is the best way according to the GitOps principles to update the container of an application` -\u003e Use Argo Image updater and the “Argo CD write back” method\n\n8. `Resource A is in the PreSync phase with Sync wave 50. Resource B is in the Sync phase with Sync Wave  -10. Resource C is in the PostSync phase with wave 50` -\u003e Resource A will be deployed first then Resource B and finally Resource C\n\n9. `What is the major disadvantage of using branches as GitOps environments?` -\u003e Order of commits affects every promotion done by merging\n\n10. `Argo CD will mark an application as Failed if...` -\u003e Any hook fails regardless of its phase\n\n11. `An application has a “deny” sync window for 5pm to 7 pm, an “allow” sync window from 4pm to 8pm. The time is now 6pm` -\u003e You cannot deploy the application, “deny” windows override “allow” windows\n\n12. `What is the relationship between Application Sets and Apps of Apps?` -\u003e Both approaches are independent of each other\n\n13. `An application has a “deny” sync window for 5pm to 6pm. The time is now 7pm` -\u003e You can deploy the application because no “deny” window is active\n\n14. `Can you use Application Sets with App of Apps applications?` -\u003e Yes, they can be combined but only if the controllers are the same version\n\n15. `You have lots of applications in a single Git repository under “/infra/apps/\u003capp-name\u003e”. The correct ApplicationSet generator to use is` -\u003e Git Generator\n\n16. `What is the relationship between Sync Waves and phases?` -\u003e Sync waves and phases can be used on their own or both at once\n\n17. `What is the major disadvantage of disabling “self-heal” in an application` -\u003e Manual changes in the cluster will no longer be detected and discarded\n\n18. `How can you model different GitOps environments?` -\u003e Any of the above\n\n19. `How do Application Sets work?` -\u003e Application Sets are generators for Argo CD applications\n\n20. `If you define “self-heal” for a root application that contains other applications...` -\u003e Self-heal is enabled for both parent and child apps\n\n21. `How can you combine Application Set Generators?` -\u003e By using a matrix generator\n\n22. `What is the major advantage of using folders as GitOps environments?` -\u003e All the above\n\n23. `How can you use the Apps of Apps pattern?` -\u003e All of the above\n\n24. `Resource A is marked with Sync Wave -1 and placed in the Presync phase. Resource B is marked with Sync Wave: -99 and placed in the Skip phase` -\u003e None of the above\n\n25. `It's possible to add an external cluster to Argo CD…` -\u003e Using the CLI\n\n26. `How does Argo Image Updater work?` -\u003e It monitors Docker registries for new containers\n\n27. `Resource A is in the PreSync phase and Sync wave 10. Resource B is in the Sync phase and has Sync wave 20. Resource C is in the SyncFail phase with sync wave 30` -\u003e C will be deployed only if B fails to deploy\n\n28. `If a hook in the SyncFail phase has an error, Argo CD` -\u003e will abort the deployment and mark it as failed\n\n29. `What is the major advantage of using branches as GitOps environments?` -\u003e Developers are already familiar with how git tools work\n\n30. `For what scenarios can you use Application Sets?` -\u003e All of the above\n\n31. `How does the Apps of Apps pattern work?` -\u003e You create an Argo CD application that points to other applications\n\n32. `What is the best way of modeling your GitOps environments?` -\u003e Using folders in a single git repository\n\n33. `What are Sync Windows used for?` -\u003e To disable/enable application deployments for different time periods\n\n34. `You have a production environment that gets container images with tags that match only 1.x version. The appropriate Argo Image updater strategy is` -\u003e semver\n\n35. `You have an application managed by Argo Image Updater with the “semver” strategy. The current image is tagged “1.4” with a constraint to “1.x” releases. You build a new image and push it with tag 1.2.7. This new container` -\u003e will not be deployed because 1.4 is newer\n\n36. `Where should you deploy an Argo CD application manifest?` -\u003e In the “argo” namespace\n\n37. `When you add an external cluster in Argo CD…` -\u003e You need a context for the target cluster and the CLI authenticated to the management cluster\n\n38. `Resource A is marked with Sync wave -1 and Resource B is marked with wave 5.` -\u003e We need to check for sync phases before we can answer\n\n39. `Resource A is in the PostSync phase and has Sync wave 5. Resource B is in the PostSync phase and has Sync Wave 5. Resource C is in the PostSync phase and has Sync Wave -10` -\u003e C will be deployed first and then A and B will be deployed according to default Resource order\n\n40. `What is the Apps of Apps pattern?` -\u003e A way to group multiple Argo CD applications together\n\n41. `When you add an external/target cluster in Argo CD...` -\u003e The management cluster needs network access to the target cluster\n\n42. `Can you use sync waves to replace sync phases?` -\u003e Yes, but only if you don’t need the SyncFail mechanism\n\n43. `You want an Argo CD application to be deployed as soon as somebody creates a new Github repository with manifests. Which ApplicationSet generator should be used?` -\u003e SCM provider Generator\n\n44. `Resource A is in the Sync phase and has no Sync wave. Resource B is in the Sync phase and has Sync wave 0` -\u003e A and B will be deployed according to the default Resource ordering\n\n45. `What is the major disadvantage of using folders as GitOps environments?` -\u003e It is difficult to secure individual folders in a single git repository\n\n46. `You have a “staging” container tag that should always be deployed to a staging environment as soon as somebody updates it. The appropriate Argo Image updater strategy is` -\u003e latest\n\n47. `An application has a “deny” sync window for 5pm to 7 pm, an “allow” sync window from 4pm to 7pm and an “allow” window from 5:30 to 6:30pm. The time is now 6pm` -\u003e You cannot deploy the application, “deny” windows override “allow” windows\n\n48. `What source can be used for Application Sets?` -\u003e All of the above\n\n49. `How does Argo CD manage Kubernetes clusters?` -\u003e All of the above are valid scenarios\n\n50. `You want to create temporary environments for developers while they create new features on different branches. The correct ApplicationSet generator to use is` -\u003e Pull Request Generator\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdungpham91%2Fgitops-at-scale-exam-qa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdungpham91%2Fgitops-at-scale-exam-qa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdungpham91%2Fgitops-at-scale-exam-qa/lists"}