Interview with Daniel Ko — Google Summer of Code 2021
Tags: googlesummerofcode, spinnaker, opensource, community
Published: 2021-09-09 15:50:44

I’m personally excited about this year’s Google Summer of Code (GSoC) project <a href="https://spinnaker.io/docs/community/gsoc/projects/2021/try-spinnaker-io/"><strong class="ie ja">try.spinnaker.io</strong></a>. Daniel Ko is the student who worked with Armory mentors and the <a class="cd jb" href="https://cd.foundation" rel="noopener ugc nofollow">Continuous Delivery Foundation</a> to complete the project. After his midterm demo, I asked Daniel some questions about the project and why he chose it.</p>

</div>
</div>
</section><section class="fm fn fo fp fq">
<div class="n p">
<div class="ab ac ae af ag fr ai aj">
<p id="3337" class="ic id ft ie b if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz fm cr" data-selectable-paragraph="">Nikema Prophet: What inspired you to work with the Spinnaker Project for GSoC?</p>

<blockquote class="ji">
<p id="863d" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em>Daniel Ko: I was inspired to submit a proposal for Spinnaker because I was broadly interested in contributing to open source CI/CD tools. I think I would like to work in the DevOps field in the future rather than traditional software development and through my research before applying to GSoC I found out that Spinnaker was one of the most popular and powerful tools for deployment.</em></p>
<p id="37df" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em>My project, try.spinnaker.io, in a nutshell is a sandbox environment where users can test out the core functionality of Spinnaker such as deploying pipelines without having to worry about installing on their machines.</em></p>
<p id="848a" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em>I was motivated to work on try.spinnaker.io because I had a lot of trouble setting up my first test environment for Spinnaker. Spinnaker is notorious for being hard to get up and running. There were so many dependencies that one had to set up correctly such as network configuration and an external storage provider just to see the main ui. I saw that other popular open source projects such as Docker and golang have their own sandbox environments and thought this project would be a great opportunity to encourage people to see for themselves what all the fuss about Spinnaker is about.</em></p>
</blockquote>
<p id="f25f" class="ic id ft ie b if jr ih ii ij js il im in jt ip iq ir ju it iu iv jv ix iy iz fm cr" data-selectable-paragraph="">NP: We’re midway through GSoC, have you had any challenges that were particularly satisfying to overcome?</p>

<blockquote class="ji">
<p id="e074" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em class="jw">DK: One of the tricky technical challenges was mitigating the risk of bad actors deploying malicious containers such as cryptocurrency miners. I first thought of the idea of blocking all inbound and outbound requests besides our private container registry on an AWS security group level but quickly found out that this would cause problems because the Spinnaker images are pulled from a public container registry. I found a workaround where we install a Kubernetes admission controller called “Portieris” which allows us to define image security policies on a namespace level.</em></p>
</blockquote>
<p id="fc9d" class="ic id ft ie b if jr ih ii ij js il im in jt ip iq ir ju it iu iv jv ix iy iz fm cr" data-selectable-paragraph="">NP: Do you have any examples of getting unblocked?</p>

<blockquote class="ji">
<p id="5c42" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em class="jw">DK: My mentors were able to unblock me on exposing Spinnaker using an ‘Application Load Balancer’ (ALB). This wasn’t a trivial process as there were a lot of moving parts; you need a Route53 hosted zone, changes to the Spinnaker config file such as defining the correct URLs for the Deck and Gate, and setting up certificates for our ALB.</em></p>
</blockquote>
<p id="ab38" class="ic id ft ie b if jr ih ii ij js il im in jt ip iq ir ju it iu iv jv ix iy iz fm cr" data-selectable-paragraph="">NP: What is something you’re excited about or looking forward to?</p>

<blockquote class="ji">
<p id="7213" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em class="jw">DK: I’m excited for new people to try out our sandbox environment and experience Spinnaker for the first time. I know that there will be a lot of bugs and feedback from the community and I hope that this project can gain more traction so we can get more hands working on it!</em></p>
</blockquote>
<p id="7446" class="ic id ft ie b if jr ih ii ij js il im in jt ip iq ir ju it iu iv jv ix iy iz fm cr" data-selectable-paragraph="">NP: Has your ​​experience so far matched up with the expectations you had coming into the program?</p>

<blockquote class="ji">
<p id="140c" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em class="jw">DK: My ​​experience has definitely exceeded the expectations I had coming in! I didn’t know that I would be paired with three amazing mentors who are willing to unblock me and give constructive feedback. The weekly meetings that we have really helped me to set attainable goals for myself and made me accountable for the work I wanted to accomplish.</em></p>
</blockquote>
<p id="f541" class="ic id ft ie b if jr ih ii ij js il im in jt ip iq ir ju it iu iv jv ix iy iz fm cr" data-selectable-paragraph="">NP: Is there anything you need from the Spinnaker community right now?</p>

<blockquote class="ji">
<p id="bc79" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em class="jw">DK: Nothing as of this moment but keep your eyes peeled for a future beta test release of my project!</em></p>
</blockquote>
<p id="5aaa" class="ic id ft ie b if jr ih ii ij js il im in jt ip iq ir ju it iu iv jv ix iy iz fm cr" data-selectable-paragraph="">NP: Any news to share or amplify?</p>

<blockquote class="ji">
<p id="f1f2" class="jj jk ft fu b jl jm jn jo jp jq iz av" data-selectable-paragraph=""><em class="jw">DK: A video presentation where I go over the project in more detail can be found here! </em><a class="cd jb" href="https://www.youtube.com/watch?v=-_MRDYxtOrs" rel="noopener ugc nofollow"><em class="jw">GSoC Phase 1 Try Spinnaker io</em></a></p>
</blockquote>
<figure class="jx jy jz ka kb hv">
<div class="kc s ct">
<div class="kd ke s"><iframe class="t u v ol aj" title="GSoC Phase 1 Try Spinnaker io" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F-_MRDYxtOrs%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D-_MRDYxtOrs&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F-_MRDYxtOrs%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="auto" allowfullscreen="allowfullscreen" data-mce-fragment="1"></iframe></div>
</div></figure>
<p id="b077" class="ic id ft ie b if ig ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz fm cr" data-selectable-paragraph="">Thank you, Daniel, for taking time out of your busy schedule to answer my questions. The demo looks awesome and I can’t wait to try out the beta!</p>


<hr />

<h2>Additional Insights from the Mentors</h2>
This year was the second year that Armory provided mentors to GSoC for the open source Spinnaker project. For this Armory blog post I asked the mentors Cameron Motevasselani, Dan Johnston, and Fernando Freire how it went from the mentor's perspective. They had great things to say about Daniel.
<h3>On working with Daniel (and what he did well)</h3>
<ul>
 	<li>It "was a great experience."</li>
 	<li>"He came up with a plan of attack, broke the project up into doable parts with milestones."</li>
 	<li>It was an "ambitious project and he delivered."</li>
</ul>
<h3>On overcoming technical challenges</h3>
<ul>
 	<li>"Daniel’s work touched many different areas, requiring help from different mentors. Having multiple mentors with a variety of experience helped. "</li>
 	<li>As a team, they implemented <span class="ILfuVd"><span class="hgKElc">role-based access control</span></span> (RBAC) to prevent abuse of service.</li>
</ul>
<h3>Advice for future GSoC mentees</h3>
<ul>
 	<li>"Be prepared to do research prior to diving into coding"</li>
 	<li>"Break the project down into achievable milestones"</li>
</ul>
<h3>A callout of Daniel's technical skills</h3>
<ul>
 	<li>Locking down the instance and creating a plugin to modify RBAC was impressive.</li>
</ul>
<h3>A final thought</h3>
A great amount was accomplished even with a shorter project time this year.