See this post to have a gentle overview of why Kustomize exists and this one to see how it compares to Helm.
30-Day Plan to learn Kustomize
I drafted the following plan and will add links to each topic as I progress.
Week 1: Introduction to Kustomize and YAML
Days 1-2: Introduction to Kustomize and why it’s used. Also, learn about Kubernetes and its relation to Kustomize.
Days 3-5: Basics of YAML (Yet Another Markup Language), which is the language of Kustomize configuration files. Start from simple data structures, then go to more complex ones.
Day 6-7: Understand Kubernetes objects and their representation in YAML files. Explore how Kustomize works with these files and practice basic commands.
Week 2: Understanding and Setting Up Kustomize
Day 8-9: Set up your environment for Kustomize and learn how to create base and overlay directories.
Day 10-11: Understand Kustomization files and their structure, and learn about Kustomize patches.
Day 12-14: Learn about generators (ConfigMapGenerator and SecretGenerator) and transformers, and understand how Kustomize can handle environment-specific changes.
Day 15: Study practical examples and use cases of Kustomize.
Week 3: Hands-on Practice and Advanced Topics
Day 16-18: Start a project to consolidate your learning. Gradually add complexity and experiment with different scenarios.
Day 19-21: Learn about integrating Kustomize with CI/CD pipelines, managing secrets, and deploying applications in different environments.
Day 22-23: Understand the best practices for using Kustomize effectively and explore more advanced features.
Day 24-25: Continue with the implementation of advanced topics in your project.
Week 4: Review and Mastery
Day 26-27: Review all the learned concepts and work on the areas of confusion or difficulty.
Day 28-29: Finalize your project and prepare it for demonstration. Learn about the future of Kustomize, its upcoming features, and how to stay updated.
Day 30: Review everything once more. Create a portfolio showcasing your work and create a video tutorial explaining how you used Kustomize in your project.