WEEK 4: ENTRY 2
Today at my internship, I worked on the configuration of my Kubernetes deployment. A Kubernetes Deployment is simply “used to tell Kubernetes how to create or modify instances of the pods that hold a containerized application.” My Kubernetes deployment was done through the Gitlab CI/CD Pipeline, which is not as easy and simple as I initially thought. I have been working on it for two days before it successfully passed all the test cases today. Prior to today, my manager and I were copying a codebase from a Github repo project that was similar to what my project is based on: Using GET Request to request data from an API. Although the codebase we were referencing looks all great and easy to read and understand, I must say that it was not a good idea to copy it. Partly because we had to change many lines of code in that codebase to customize it to our desired configuration. This methodology has taken us several commits and pushes to GitLab before it finally worked today.
Not only did it pose a lot of bug issues and trials and errors, it also gave me less time to understand the codebase before making changes to it. So too, I was merely a driver, which means I was only taking instructions to execute. Sometimes, my manager takes some time to explain the main concept, but I was mainly focusing on executing the commands that I was told rather than retaining all that was thrown at me. I approached it this way because I thought the process was a one-time execution and I would not have to worry about using those commands and concepts. It turns out that I was totally wrong because whenever my GitLab pipeline test fails, I was expected to read the error message and troubleshoot it. Most error messages were similar, but because I was not retaining the concepts, I struggled to fix them. I was so mad over my actions because my manager told me at some point that we fixed this kind of error yesterday, so I expected you to remember.
Besides, the Kubernetes deployment joins my project files and some kubernetes configuration files that were needed to make sure that my continuous integration/continuous deployment pipeline passes. The kubernetes deployment files contain yaml, sh, and yaml files. And since I was not retaining the concepts that I was introduced to during the codebase refactoring, I had to struggle understanding that the way we pass .sh variable values’ indices is quite different from programming languages, say Python. .sh variable values’ indices start from 1 unlike how we start indexing from 0 with Python. The mistake of just running the commands and refactoring the original codebase without retaining or understanding the concepts cost me a lot today. I had to spend some time reading and trying to remember what we did yesterday. Thus, in the future, I intend to not just follow the instructions blindly, but to rather understand the processes and concepts that I am being introduced to. Also, I intend to take notes and revisit them after my work day each day henceforth.
Comments
Post a Comment