2023
🎢 활동
reports
[ENG]Final Report

TL;TR

Go to see Contributions Summary

☑️ Who We Are

The ArgoWorkflows OSS 2023team have 18 member. (1 Mentor, 17 Mentees)

Our Team met for participant to Open Source Contribution Academy (opens in a new tab).

A competition for junior developers with the theme How can I contribute well to open source?

This event is a competition where some mentors and about 20 mentees are paired up and the goal is to contribute together and achieve results for four months.

We participated in this event on the open source topic of ArgoWorkflows.

Most of us were afraid to even use git at first. but we made succeeded in making various contributions over the past three months.

Let me introduce our achievements.

☑️ What is ArgoWorkflows

Before the achievements introduction, Lets know about what is ArgoWorkflows.

argoDag

Argo Workflows is a container-based workflow engine, an open source project that can run parallel jobs on Kubernetes. Each workflow step is defined as a container, and multi-step workflows can be modeled as a series of jobs, or dependencies between tasks can be executed using a Directed Acyclic Graph (DAG).

In other words, Argo Workflows makes it faster and easier to simple workflows tasks, as well as complex tasks for machine learning or data processing, on Kubernetes.

argo_0

Argo Workflows is a graduated project of the Cloud Native Computing Foundation (CNCF).

To become a graduated project, it must pass all tests conducted by the CNCF to meet their rigorous standards. Being recognized as a graduated project means that Argo meets the highest standards for clear governance and committer processes, healthy growth, and security and compliance adherence. Since the rigorous standards, only about 13% of projects registered with the CNCF succeed in graduating.

In fact, it took about 5 years for the Argo project to be recognized as a graduated project, with over 7,000 contributors, over 11,000 PRs, and over 370,000 contributions.

Moreover, the Argo project is a very active and up-to-date open source, with over 2300 companies contributing to the code and over 8300 people contributing to the code.

Argo Workflows is recognized as the most representative workflow engine in the cloud native community.

Many companies around the world officially have introduced and used Argo Workflows. This is means that Argo Workflows can solve issues with workload in big companies.

The following major companies are using Argo Workflows.

companys

... and over 200 other global companies

Some alternative tools to Argo Workflows include Apache Airflow, Tekton, and Prefect.

Argo Workflows is a Kubernetes-native engine that makes it easy to orchestrate container-based workflows and manage resources. Apache Airflow, similiar but different to Argo Workflows, is a standalone application and does not inherently utilize the capabilities of Kubernetes. As a result, Airflow can more difficult to resource management and scalability than Argo Workflows.

Also, Argo Workflows can perform a various of tasks such as CI/CD as well as data pipelines because it runs each workflow step as an independent container. This is possible due to use the power of Container and Kubernetes, than it can run anything without restrictions.

☑️ Key Accomplishments

UI/UX improvements

The Argo Workflows project is actively contributing to UI/UX improvement as the main topic for contribution.

As proof of this, you can also check the dashboard for UI/UX improvement tracking.

uiux_0.png

Our team has also made many UI improvements along these project goals.

Key improvements for UI/UX

uiux_1.png

Improving core functionality

As contributions accumulate, our understanding of the project increased and we got more confidence. We were increasingly able to contribute not only UI/UX improvements, but also the core functionality of the workflow engine.

What’s new in Argo Workflows v3.5 (opens in a new tab)

The core logic of the workflow engine is install as a CRD in Kubernetes and has a significant impact on the behavior and performance of a Kubernetes cluster. So, Contributing to workflow engine is quite difficult.

because it requires a high level of implementation and active participation in testing and policy discussions with maintainers.

It was challenge for us, but our team was able to make key contributions to the Argo Workflows 3.5 release. Also We were mentioned to the Argo official blog by contributing very important features to Template Spec, Authentication, and Controller.

core_0

Even after the release of Argo Workflows 3.5, we made many contributions such as CI and test environments for DX improvements, new features in the Nix, Controller, and Template specifications, updating GoLang version. With more contributions, We are making progress in making Argo workflows a much better tool in next release.

Close communication with the maintainer group

Our team was very fortunate that the Argo Workflows project got a new leader in May of this year, Yuan Tang (opens in a new tab), and the breath of contributions across the project really accelerated.

Normally, in a large project like this, it would take quite a long time for reviews making it difficult to a lot of contributions. However, Thanks to the talented project head and his team, all of the ArgoWorkflows team members who participated in this competition learned a lot, experienced a lot, and grew through a lot of contributions in a short time.

maintainer.png

Opportunities for contributions existed outside Issue and PR pages.

We were able to have the valuable experience of being in open source project, such as deciding on a policy for processing logic in the project to resolve issues and experiencing being assigned and working on other related issues.

Now, We introduce our contributions during the project.

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

☑️ Contribution Academy progress and activity details

From not knowing anything about Git to becoming an open source contributor

Of the 17 Masters stage participants, 12 of our team were made up of members who had no experience in proper collaboration/code review through GIT.

As it is a CRD that runs on Kubernetes as an engine, it is a project that requires a high level of understanding of Kubernetes, but there were only 4 members with proper experience using Kubernetes.

At first, I had no idea how to start and was at a loss, but as a result of practicing Git with a mentor and performing various tasks and studying in the practice REPO to become familiar with containers and Kubernetes, I gradually became familiar with the tool called Argo Workflows. It has begun.

As a result, at the time of writing this report, we had the enjoyable experience of creating PRs for all 17 Masters stage participants.

chart1
Summary of contribution activities

Additionally, contribution activities, which I had not been able to actively do at first because I was busy familiarizing myself with the tool and acquiring background knowledge, accelerated over time.

In the end, the members' skills are growing so quickly that in September, in just the first week, they were able to match the number of PRs that were close to the PRs contributed during the previous month.

chart2
Monthly Activity Graph

Introducing the various activities our team has performed to achieve the current contribution activities.

Repository creation and contribution activities to practice using Git

Repository address: https://github.com/ArgoWorkflows-OSS/argoworkflows-oss.github.io (opens in a new tab)

Goal: Update member profile of issue template Select issue and create first PR according to issue content.

activity1

- Goal Details
   - Edit/add the two files below to create a PR that updates user information.
     - `docs/users/users.md`
     - `docs/users/[name].md`
   - [How to link PR and issues using keywords](https://docs.github.com/ko/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue Please refer to #linking-a-pull-request-to-an-issue-using-a-keyword) to connect the issue and PR. (Manual connection x)
     To raise PR and merge, please refer to the points below.
   - Since you do not have permission to create or push branches in the repo, you must fork and then work on it.
   - Please refer to [PR’s Naming Convention](https://flank.github.io/flank/pr_titles/).
   - [DCO](https://github.com/apps/dco) Please commit by referring to the conditions for passing the bot's check.
   - Please understand how to commit using [GPG](https://www.44bits.io/ko/post/add-signing-key-to-git-commit-by-gpg) and create a signed commit.
   - It would be good if [Commit Message Convention](https://www.conventionalcommits.org/en/v1.0.0/) could also be applied. Even if you don't have to follow it, please avoid making commit messages that are too meaningless. (Optional)

Operation of a special class on container basics

Page address: https://github.com/ArgoWorkflows-OSS/container-playground (opens in a new tab)

Goal: Create your own service and configure CI for containerization

activity2

activity3

- Goal Details
   Create your own web service and write a Docker file that can be containerized.
   To pass the assignment, please be sure to follow the instructions below.

   - Directory and file placement

     - When developing a personal service, be sure to create your own GitHub account directory and write code under it.
     - `Dockerfile` must be located at the top level of your directory. (If this condition is not met, CI may fail.)
     - You can freely create other files under your own directory except for the location of `Dockerfile`.
     - However, the image must be built successfully when you run the `docker build -t [image name] .` command at the top level of your directory.

   - Behavior of built images

     - Personal web service must operate on port 8080.
     - The built image must be serviced without problems when the `docker run -d -p [forwarding port number]:8080 [image name]` command is executed without any additional parameters.

   - Web service development language and service structure
     - It doesn’t matter which language or framework you prefer.
     - It doesn’t matter if you create a simple API service with no UI or design.
     - However, you must create two required APIs. (I don't care about the response value.)
       1. /api/v1/[your github account]
       2. /healthcheck
   - (Optional) It is better to optimize the Docker image. ([Reference](https://thearchivelog.dev/article/optimize-docker-image/))
   - [How to link PR and issues using keywords](https://docs.github.com/ko/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue Please refer to #linking-a-pull-request-to-an-issue-using-a-keyword) to connect the issue and PR. (Manual connection x)

Opening and conducting an issue hackathon within the team

Intra-team hackathon to designate issues and solve each group issue within a period of time

activity4

activity5

Join to Contributor / Community meetings

activity6

Argo Workflows OSS team page creation and operation

Page address: https://argoworkflows-oss.github.io/ (opens in a new tab)

Production framework: nextra

activity7

Conduct offline meeting activities at least once a week

Regular meeting activities

  • We selected every Sunday as a regular offline meeting date and conducted regular meeting activities.
  • We conducted various communication activities such as exploring issues to be resolved through group activities, sharing our own experience in resolving issues, and discussing errors that occurred during the process.
  • Detailed information about offline regular meetings can be found through the link here (opens in a new tab).

activity8


Presentation activity on topics of interest

  • During offline meetings, I gave presentations on topics of interest to me.
  • Topic of interest presentation topic and presenter
    orderTitlePresenterAnnouncement date
    1Case study of Argo Workflows adoption at Carrot MarketYeom Geun-cheolJuly 15
    2WebRtc concept and use cases for real-time communicationSong Hye-minJuly 30
    3How to link Argo Workflows and KeyclockSoon yeong-ChoiJuly 30
    4Implementing CI/CD with Argo ProjectHak jun-KimAugust 6
    5Presentation of eBPF concept, filter development method, and use casesSeong rak-JeongAugust 6
    6History of containers and creating containers without DockerYeom Geun-cheolAugust 13
    7Platform builder that allows developers to load test themselves & K6 load test PoC announcementAh Da-hyeAugust 20
    8Considerations on the container ecosystemYeom Geun-cheolAugust 27
    9Github Actions Installing and operating self-hosted in KubernetesCheong woon-SeoSeptember 2nd

activity9


Gathering together and coding individually

  • We gathered together irregularly and did our own coding.
  • We conducted technical exchanges, including analyzing the structure and issues of ArgoWorkflow.

activity10

☑️ Participant contribution details

0. GeunCheol Yeom(Mentor)

🌵 Participation Review

I met ArgoWorkflows last year, and many things changed

I participated as a mentor at this event, but I feel like I'm the one learning and getting more out of it.

I would like to sincerely thank the mentees who participated in the event and did their best until the end, and I hope that we can continue to be colleagues in open source activities together.

During the event, I was able to think about the culture of the open source ecosystem once again, and I was able to study various techniques for utilizing Git that I thought I knew in the CI environment.

I feel more passionate about the ArgoWorkflows project, and I'm not sure what opportunities there will be in the future, but I'd like to contribute to more diverse areas.

1. ByeongSun Gang

🌿 Personal Activity Report

Collapse/Expand

🌵 Participation Review

  • Participant Review
    • As a junior developer, this activity is not just for contributing, it's a great way to see what developers are thinking about and how they grow.
    • I got so much help and I'm always grateful. It was a great time to meet so many nice people.
    • I'm glad I took the first step in getting acquainted with containers.
  • Future plans.
    • I will continue to be interested in and contribute to all open source projects that I use in my development.
    • I will apply Argo workflows to real projects and find ways to contribute more!

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

2. SiOn Kang (opens in a new tab)

🌿 Personal Activity Report

Collapse/Expand

🌵 Participation Review

I enjoyed last year's experience so much that I decided to participate again this year, but this year was a great experience again with a different feel from last year. Thanks to all the passionate team members and active projects, I was able to maintain interest in the project without losing tension, and I am very happy that I have a colleague with whom I can share not only the project but also related stories.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

3. YoungGil Kwon

🌿 Personal Activity Report

Collapse/Expand

[Project Contributions]

  1. 'Bug modification' Argo Workflow Datpicker improvement (completed)

Improve the ui of datepick, one of the filter functions of the workflow list page

1.UI.png

2.UI.png

Issue Link

UI: Datepicker Style Malfunction Issue · Issue #11476 · argoproj/argo-workflows (opens in a new tab)

PR Link

fix: Datepicker Style Malfunction Issue. Fixes #11476 by zel0rd · Pull Request #11480 · argoproj/argo-workflows (opens in a new tab)

  1. 'Bug modification' Cronworkflow's State filter initial value setting (completed)

Fixed a bug where the status filter in the cronworkflow is rendered regardless of the initial value

3.UI.png

Issue Link

ui: Cron workflow initial filter value · Issue #11685 · argoproj/argo-workflows (opens in a new tab)

PR Link

https://github.com/argoproj/argo-workflows/pull/11686 (opens in a new tab)

  1. 'Fix the bug' Remove webpack-related alerts from the initial page (in progress)

To remove web pack monitoring that occurs when loading argo workflow ui

Currently testing the dependence and functionality of the associated libraries

4.UI.png

  1. 'Improvement' Improvement of login page (in progress)

Issues that improve the existing login page in Argo Workflow in the same form as the Argo CD

We will analyze the login capabilities provided by current workflow and apply new designs and designs afterwards

Issue Link

Similar login page to Argo CD · Issue #10816 · argoproj/argo-workflows (opens in a new tab)

[Project Activity History]

7.8 Opening Ceremony (Project Introduction and Self-Introduction)

  • Opening ceremony 5.meet.png
  • Time for self-introduction using nicknames
  • A rough introduction to the project
  • a majority vote for the rules of gathering activity
    • The next meeting activity will be held from 1 p.m. on Saturday (07/15) unlike the regular schedule, depending on the majority vote of the participants at the opening ceremony. The planned activity topic is:
    • Time to review or talk about *common activities** for the next week
    • Time to communicate about topics of interest
    • You can also set up the development environment according to your progress. (Optional)
    • (Common activities will be organized and shared within tomorrow's work hours.)

7.15 First Meeting (Introduction to Development Environment Settings and Workflow Features)

  • Open Up to the First Meeting
  • Development Environment Settings (dev-container)
  • Playground Mission (DCO Bot Check Passed, Commit Using GPG, Commit Message Convention)
    • I created a playground before I immediately challenged a real open-source project. The first goal is to do issues/PR/commitments, etc., from an outsider's perspective on the project in this Playground. It's simple, but there may be unexpected gateways for the first time, so please focus. If we resolve the first issue early, we will give you additional instructions. Haha
    • 저장소: https://github.com/ArgoWorkflows-OSS/ArgoWorkflows-OSS (opens in a new tab)
    • Objective: Select member profile update issue in issue template and generate first PR according to issue content.

7.23 Second meeting (share issues of interest)

  • Gathering at Seongsu to conduct the second meeting (provided by Musinsa-Andahye Mentee)
  • Introduce issues of interest, share issues with each other 6.meet.png

8.6 Fourth meeting

Presentation activities

  • argo event와 workflow, cd연동
  • eBpf

7.meet.png

8.13 Fifth Meeting

Presentation activities

  • webRTC

8.meet.png

8.20 6th Meeting

presentation activityEast

  • Platform builder & K6 load test PoC for developers to load test themselves

9.meet.png

[Project Activities]

  1. [Learning to contribute]
    1. Kubernetes Architecture Lecture - YouTube link (opens in a new tab)
    2. Kubernetes Resources Lecture - YouTube link (opens in a new tab)
    3. Go Playground - https://go.dev/play/ (opens in a new tab)
  2. Learnings and impressions
    1. I realized that domain knowledge in the field is important to contribute to the project. I wanted to simply contribute to web services, but it was not easy to set up the environment due to lack of knowledge about Kubernetes.
    2. I learned that big open source projects use things like DCO/GPG, and I was able to learn how open source projects are managed and operated.
  3. Issues and PR details

🌵 Participation Review

For me, the idea of contributing to open source brings up a lot of mixed feelings. Contributing to open source with other developers and experiencing the sharing and collaborative culture of open source is a great joy and reward for developers. However, the uncertainty and fear that I had experienced when contributing several times before was a big barrier that made me hesitate to try again. When I decided to participate for the third time, I said to myself, "Excuses like "I'm a student, I don't know enough, I'm busy preparing for a job, etc." don't work anymore. I must succeed this time'. I can still remember the promise I made to myself when I started, which made it all the more overwhelming and exciting. When I was applying for projects, I had to decide whether I wanted to work on something I knew or something new. I applied for a project related to devops, a field I hadn't been exposed to before, in order to educate myself and work harder. It didn't take long for me to regret this decision. There was a lot to learn before I could even contribute, and a lot of time was wasted in building the basic environment of the project. However, when the development environment was built with other team members, sharing each other's difficulties every day and actively trying to help each other, it was an exciting time. Errors and bugs that occurred in my work always made me sensitive and annoyed, but in the academy, it was like a mission that I could do, and the process was fun like a game. Now that I'm writing this recap, I'm very proud of my contributions and I'm grateful to my colleagues and mentors who helped me along the way. In the future, I will think about how I can apply the argo-workflow project to my work and actively contribute to the issues that arise. I would also like to contribute to new projects if there are other good projects. Thank you.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

4. SuBin Kim (opens in a new tab)

🌿 Personal Activity Report

Collapse/Expand
  • Personal performance
    • Contributing one 'issue' and one 'PR'
  • Preparation for Countryview
    • Viewed: OSSCA Basic Training uploaded to YouTube. I've used it a lot before, such as Git and Vim, and I knew the concept, but I was able to know and understand a lot of parts that I didn't know or roughly used.
    • In the 'ArgoWorkflows-OSS/ArgoWorkflows-OSS' repository, we performed an example of Git configuration settings and linking and closing Issue and PR. Argo Workflows must have all commitments signed with gpg private key and signed off when creating PR. Otherwise, it will fail in the GitHub CI. Before I actually contributed to Argo Workflows, it helped me greatly to set up a local Git environment in advance and create a simulated PR.
    • You have set up the Argo Workflows development environment. At first, I set it up with devcontainer, and then I used Nix. Argo Workflows requires multiple components in the development environment, including React UI, Argo Server, and MySQL, making it difficult to configure the development environment, but we were able to fully configure it over several weeks.
  • Countryview progress
    • Fix 'Bug Fix' Fix go build
      • The existing code base was using Go 1.20, but there was a problem with using Go 1.19 in the Nix build file. Previously, the build was fine, but when I started using the newly added grammar in Go 1.20, I encountered problems with the Nix build.
      • Using '_module.args', I modified Go 1.20 to be the default and modified the Nix build.
    • Automatic update of 'function improvement' Nix go vendor hash
      • This is an issue that I learned when I set up the development environment during the preparation of the contention. Nix pursues a reproducible build, but when GitHub's Dependency Hash value is not changed together when GitHub's Dependency Abot automatically raises the Go module version.
      • This often requires developers to manually calculate and update Nix's go vendor hash when setting up a development environment, and we are looking for workable ways to improve it.
      • In order to find a solution with the contributors, an issue was created by collecting the contents of existing PRs and Comments.
      • Developers are reflecting it manually without solving it in other open-source projects, so after contributing to Argo Workflows, I think I can contribute to other projects as well.
    • 'Improvement' 'CHANGELOG.md '
    • 'Improvement' document style improvement

🌵 Participation Review

  • Review of participation in the program
  • It would have been impossible if I had tried to contribute by myself, but I think I was able to prepare and contribute while gathering with mentor and other mentees to study and contribute.
  • It was great to understand the Argo Project ecosystem and community, and to understand Argo Workflows much deeper than before.
  • Planning future contributions
  • We will discuss the solution with the contributors in the issue we have created and implement it will be implemented.
  • Afterwards, we will improve the Nix development environment and gradually transfer the devcontainer development environment to Nix.
  • The documents related to Nix are poor, so we are going to improve the documents.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

5. HakJun Kim

🌿 Personal Activity Report

Collapse/Expand

refactory

fix: Upgrade Go to v1.21 Fixes #11556[**Merged]**

  • Argo Workflows are developed in Go language.
  • An issue was issued to upgrade Go Version from 1.20 → 1.21, so we decided to resolve it.
  • During the ‘Issue Hackathon’ period, we presented the issue and worked with the same team members to resolve the issue and conduct PR.
  • As a result, it was a glorious time to have my first PR and my first contributor badge.

fix: Upgrade Go to v1.21 Fixes #11556 by junkmm · Pull Request #11601 · argoproj/argo-workflows(opens in a new tab) (opens in a new tab)

presentation

  • During the Challenges period, we had time to present at an offline meeting the results of CI/CD implementation using Argo Projects.
  • It was a useful time to organize my thoughts during the presentation, talk with each other, and understand DevOps and the Argo Project ecosystem. meet

Issue Hackathon

Beginner’s Special Class - Container Playground

  • Argo Workflows is an open source that runs in the Kubernetes native environment.
  • The mentor opened the Kubernetes Study, saying that knowledge of Kubernetes would be helpful in approaching our project.
  • The first mission was to create a Web Container that satisfied the conditions presented. goal
  • It made me reflect on how I usually write Dockerfiles thoughtlessly, and it was a good time to learn about the relationship between multi-staging, build speed, and how to write Dockerfiles.

🌵 Participation Review

Participation review

First of all, I am very satisfied. I don't think it can be compared to the person I am today, who didn't know much about the open source ecosystem in the early days of contribution. The reason I'm so satisfied First, we are smart team members. Every week, there were many presentations on various topics, technologies used by people in the workplace, technologies of interest, etc. It was a premium lecture that could not be heard anywhere else, and it was a very helpful time. Second, we have reliable team members. As someone with little development experience, I was a little scared of this contribution period. However, thanks to many people, including our leader mentee, Seongrak, who actively provided information when they posted questions on Slack, I was able to smoothly overcome the problems I experienced. Third, it is a comfortable meeting space and reliable support. We met every Sunday at the open-up space in Seocho. It was really clean, probably because it was a new building, and the coffee and snacks in the bathroom were just brilliant. Also, it was nice to be able to eat really delicious lamb skewers during the mid-day company dinner.

Future plans

Through this year's contribution activities, I was able to clearly understand the open source ecosystem. The only thing I regret is that it was scary in the beginning? It's about being active passively and my cute little coding skills that I couldn't help but be passive about. Because the period of contribution activities was truly valuable, I would like to make up for my shortcomings and participate next year as well.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

6. JinSu Park (opens in a new tab)

🌿 Personal Activity Report

Collapse/Expand

Improvements A new feature to support Secrets as a type of parameters (link (opens in a new tab))

1.picture

2.picture

The original Argo Workflow allowed you to define arguments directly when passing them to the WorkflowTemplate, or you could set it to reference a ConfigMap. However, unlike other tools that support the common kubernetes ecosystem, the ability to reference Secrets was not supported.

We started getting feature requests https://github.com/argoproj/argo-workflows/issues/5506에서 (opens in a new tab) for this, and we've implemented it and created a Draft PR.

This feature was not easy to develop, especially since it required redefining things like the CustomResourceDefinition interface in Kubernetes, and figuring out the entire lifecycle of how a workflow is created, injected with sidecars, and created as a Pod.

However, as we implemented the feature, we were able to gain a deeper understanding of how workflows are eventually transformed into pods and containers, and the logic behind how workflows templatize context and arguments internally.

Create Issue` Incorrect creator labels on a resubmitted Workflow (link (opens in a new tab))

3.picture

4.picture

Argo Workflow has a feature called Resubmit that recreates and runs a Workflow based on the same template. In the case of a resubmitted Workflow, the k8s object label related to the user who created the Workflow was not set based on the resubmitted user, but was set to the existing incorrect value.

As a result, if the user who ran a workflow was different from the user who resubmitted the workflow, the workflow created by the resubmission would have an incorrect workflow creation user-related k8s object label.

We raised an issue about this.

Bugfix: fix: Apply the creator labels about the user who resubmitted a Workflow (link (opens in a new tab))

5.picture

6.picture

We created a Pull Request to resolve the issue (bug) we created earlier.

We fixed the bug by labeling the correct Workflow constructor k8s object based on the resubmitted user information only, without considering the information of the existing Workflow executor when resubmitting.

As an example of the change, we showed how a Workflow executed by a user named foo would be resubmitted by a user named bar, and how the creator-related label would be different if it was resubmitted by an unauthenticated user.

We also found that there were a lot of other code that was impacted, so we wrote test code to make it more stable.

Improvements

feature: Propagate creator labels of a CronWorkflow to the Workflow to be scheduled (link (opens in a new tab))

7.picture

8.picture

If the CronWorkflow was created by a logged-in user, the CronWorkflow will be labeled with a k8s object for the constructor. However, there was an issue that the k8s object label would not be attached to Workflows that are created periodically based on the settings of CronWorkflow.

Therefore, we have improved Workflows created with CronWorkflow to propagate CronWorfklow's constructor label.

Issue.

Insufficient logging in /oauth2/callback handler when using SSO Authentication (link (opens in a new tab))

9.picture

We tried to activate the Authentication with Single Sign On (SSO) feature in Argo Workflows using the Identity Provider open source product called Keycloak, but we experienced a significant delay in the activation process due to the lack of logs. Therefore, we opened an issue on the topic of enhancing the logging of the feature activation operation.

Feature.

feature: Improve logging in the oauth2 callback handler (link (opens in a new tab))

10.picture

This is the pull request that resolved the issue mentioned above (block link (opens in a new tab)). We improved the feature to output error logs for each error case that occurs while using OAuth2 Protocol for SSO.

Also, to make it easier for reviewers to review the pull request, we've added code verification to make the pull request more convincing.

Study`

docs: Add a user named Park Jinsoo (link (opens in a new tab))

11.picture

At the beginning of the event, we practiced creating a pull request by adding an introduction about myself to the member profile of a repository that my mentor created for us to get acquainted with GitHub.

🌵 Participation Review

It was a great opportunity for me to become a contributor to a well-known open source project after having been a user of many open source projects for my work and hobbies.

With the help of my mentor, I was able to get started in open source contributing with Argo Workflow, overcome my fear of live video meetings between contributors, and develop the habit of reading code written by others.

I'm now very interested in Argo Workflow, as well as other cloud-native, open source favorites like Argo Rollouts and Istio, and I've been communicating with contributors frequently via Slack.

Before I started contributing to open source, I'm sure I would have been reluctant to do so. But now I don't feel intimidated by this communication at all, and in the future I hope to contribute as much to Argo Rollouts and Istio as I did to Argo Workflow!

I would like to thank the organizers and mentors for all their hard work over the years. Thank you.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

7. ChungWun Seo

🌿 Personal Activity Report

Collapse/Expand
  • individual performance
    • 1 PR Open
  • Countryview preparation process
    • We checked the shared video of the basic Git strategy shared by the OSSCA Secretariat and combined the new parts we missed with the existing concepts to enhance our understanding and application of Git.
    • The team's 'ArgoWorkflows-OSS/ArgoWorkflows-OSS' repository allowed us to learn the gpg private keys, issues, PR titles, etc., which are essential for open-source attributes, by actually performing missions and gaining experience.
    • dWe used devcontainer to build and test Argo Workflow's local development environment, and to test the requirements for actually doing the content. The portability tool for multiple library dependencies made it very easy to use.
  • Content progress
    • Modifying fields example in formula docs
      • https://github.com/argoproj/argo-workflows/pull/11748 (opens in a new tab)
      • An example of a document that does not use Cron Workflow was included in the 'CronWorkflowSpec' and 'CronWorkflowStatus' fields in the existing official document, causing confusion in finding the required data.
      • So, in the 'CronWorkflowSpec' and 'CronWorkflowStatus' fields, we only allowed examples using CronWorkflow to find the data we needed.

🌵 Participation Review

  • Program Participation Review
    • Mentors and mentees led the meeting so well that I wondered if there would be another meeting where I could get to know and understand the open-source ecosystem in depth.
    • As an individual, I was very disappointed. I could have invested a little more time and actively participated in the meeting to make it a better meeting as well as personal growth, but it was a period that left a lot of regret because of various external factors and my own laziness.
  • Future Contribution Plan
    • With great confidence that open-source attributes are no longer scary (?) things, we will be able to explore open-source beyond the Argo ecosystem and be more interested in the CNCF ecosystem.
    • Based on the fact that we can make contributions through previous PR records and the help of the main container without having to look at the source from the beginning, we plan to actively continue our contribution beyond the psychological hurdle of the country.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

8. HaeMin Song

🌿 Personal Activity Report

Collapse/Expand

Contribution Activities


Mutex check happens after memoization cache check and lock info missing from UIBug Fix

Issue #11219 (opens in a new tab) PR #11456 - Merged/Included in 3.4.10 release (opens in a new tab)

I managed to modify Argo Workflow to simultaneously utilize the Synchronization and Cache functionalities.

This bug manifested when using both the Synchronization and Memoize keywords in Argo Workflow, causing it not to operate correctly.

The expected behavior was for the Mutex Synchronization to function first followed by the cache, however, after Synchronization occurred, the cache failed to operate.

For instance, when there are job-1 and job-2, if job-1 operates first due to Mutex Synchronization and writes to the cache, job-2 ** should pass without operating, courtesy of the shared cache.**

slack11

I was able to fix this by adjusting the sequence of Synchronization and Cache.

While the fix was not complicated, modifying the operation.go, one of the intricate files, allowed me to explore various features of Argo Workflow with many reviews.


Parent level memoization is brokenBug Fix

Issue #11612 (opens in a new tab) PR #11623 - Merged/Included in 3.4.11 release (opens in a new tab)

A new bug arose from the above fix. When using the Memo function in child components rather than at the Template level in Argo Workflow, a bug was reported that caused infinite pending.

slack11

I realized that there were unaddressed cases in the tests added in the previous PR. After identifying the cause of the error, I quickly patched it. I included four tests in the PR to detect such exceptions in the future.


UI: workflowDrawer's information link is not correctly workingBug Fix

Issue #11494 (opens in a new tab) PR #11495 - Merged/Included in 3.4.10 release (opens in a new tab)

I fixed an issue where the Information icon link was broken when expanding a workflow on the Argo Workflow dashboard.

slack11

I introduced code to prevent incorrect event propagation caused by nested <a> tags. This correction ensured that clicking on the icon now directs users to the correct documentation.


Search by name for WorkflowTemplates in UIFeature Enhancement

Issue #11004 (opens in a new tab) PR #11684 - Merged/Included in 3.4.10 release (opens in a new tab)

This was a collaborative effort with two other contributors.

A helpful feature that allows templates in Argo Workflow to function through name patterns was missing.

slack11

We developed an additional feature that lets users search for templates not just by Yaml labels, but also by names. The LIKE search, not just precise naming, will prove useful in the future. Plans are underway to extend this search and pagination functionality to other pages, making this a particularly meaningful PR.


Add more readable Argo CLI installation guide into github documentationDocumentation Contribution

Issue #11750 (opens in a new tab) PR #11751 - Merged (opens in a new tab)

This contribution pertains to the documentation of the Argo CLI, the command-line interface used with Argo Workflows.

slack11

The current Argo CLI GitHub documentation lacked installation procedures, making it challenging for first-time users to determine how to install the Argo CLI. Initially, users had to directly navigate to the Release Note or the Quick Start page. By adding an Installation section to the Argo CLI page alongside the existing Usage details, I aimed to enhance user convenience.


Workflow templating is skipped when whitespace is added to template parametersBug Fix

Issue #11767 (opens in a new tab) PR #11781 - Merged (opens in a new tab)

In Argo Workflow, when authoring a workflow template, the placeholder in the form {{parameter}} did not undergo validation when spaces were added, such as {{ parameter }}. The root cause was the internal validation code not trimming spaces before and after the parameter. By adding the trim function to remove spaces, I resolved this issue. This contribution also rectified other placeholder content that previously bypassed validation.


Development Activities


Contributing to the Argo Workflow OSS Common Repo

PR #22 - Merged (opens in a new tab)

I undertook a preliminary exercise for multiple people to contribute to the Argo Workflow. We simultaneously modified new and existing documents with other participants, learning the importance of Git commands and the process of rebasing.


Creating a Web Server with Dockerfile

PR #6 - Merged (opens in a new tab)

This exercise was about creating a Dockerfile that communicates with a local 8080 server and makes it accessible via localhost:8080. We simply crafted a Python server using Flask, and through the Dockerfile, we set up the environment, initiated the server, and connected the port, making the server accessible externally via Docker commands.


🌵 Participation Review

  • Post-Participation Review
    • While I had participated in the open-source contribution academy before, I was especially satisfied with the program, members, and content of this academy.
    • It's not easy to understand the source code and start contributing in a short time, but it was an astonishing experience to be able to start contributing, even if it was a minor contribution.
    • I deeply felt that the concentrated care from the mentor and the passion of other participants were genuinely helpful.
    • Starting alone, I might have quickly given up and forgotten the content, but the experience was so different when progressing with others.
  • Future Plans
    • I plan to continue contributing to Argo Workflow and may even start contributing to other open-source projects.
    • Especially now that I have learned how to approach and start with an open source I am interested in, I believe it will be a bit smoother as long as I have the passion.
    • I will actively promote the fun of contributing to open source to others and confidently recommend it.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

9. DaHae Ahn (opens in a new tab)

🌿 Personal Activity Report

Collapse/Expand

Document modification The running-locally (opens in a new tab) part of the official document is not intuitive for people who are new to Dev-container and Makefile, and is broken. There were links, so I uploaded pr #11405 (opens in a new tab) and contributed to editing the official document.

Issue Contribution Although incomplete, this is an issue where secret information can be exposed through commands such as echo within Argo-workflows workflows or Pods within workflows [#8685](https://github.com/argoproj/ (opens in a new tab) argo-workflows/issues/8685), so I tried to solve it.

I invested about 3 hours a day for 4 days, for a total of 12 hours, on this issue, but I have not yet been able to resolve it. (Intermediate commit (opens in a new tab))

  • We added ARGO_HIDE_SECRETS, an environment variable that can be injected when running Argo-workflows, across a total of 11 files, and set the option to true by default.
    • The above environment variables can be entered from the command line or added as settings when running Argo-workflows.
    • If you set ARGO_HIDE_SECRETS=false, "You are running with logging include secrets. Be careful." A log saying was recorded.
    • If information corresponding to Secret is included in the workflow or pod log, the code has been modified to mask SecretValue.
      • We wrote test code and verified that the above function works as intended.
      • However, since the above function did not work as intended, I started exploring the process of recording logs. I found out that the logrus (opens in a new tab) library used in the Go language uses io.Writer from the io (opens in a new tab) package. .

Assignment Performance For the Argo-workflows team, the mentor created the OSS-Argo-workflows repository and assigned several tasks.

  • In the actual Argo-workflows repo, I learned through assignments how to upload a PR by following the principles (presigned commit, gpg check) that must be followed when uploading a PR, and how to resolve git conflicts.
  • In order to upload pr from the actual Argo-workflows repo, modify the code and check whether Argo-workflows is working properly, you must run Argo-workflows with a Dev Container in the local environment. -Our team was given the task of carrying out this process ourselves, and along the way, we helped each other with members who had difficulty performing it. I summarized how to perform the method in a blog post and shared it with my team members.blog (opens in a new tab)

🌵 Participation Review

While participating in the open source contributionthon, I met amazing mentors and team members. We met offline every week, shared issues we had contributed to, and made presentations that were helpful to our work in turns every week.

Also, at the last minute, we created an ‘Issue Hackathon’ where we split into groups to focus on solving issues. As a result, more than 4 PRs were merged from the Argo-workflows team itself, and I was able to focus my time on one issue and dig deep into open source.

Since I was considering a career developing in the Go language, it was a really valuable experience to see and modify production-level Go code. It makes me wonder if I could belong to the same group as these hard-working people.

Even after Masters is over, I plan to dig into the issues I was trying to solve above until the end, and I plan to upload one more development pr.

And if I get the chance, I would like to participate in the 2024 Open Source Contribution Thon.

Thank you for providing a great opportunity and venue.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

10. JiWan Ahn

🌿 Personal Activity Report

Collapse/Expand

1. Open Source's first contribution

For the first time, I made a documented contribution to ArgoWorkflows. We've fixed the parts on the official site where there's room to confuse whether it's an image or a video, so that users know it's definitely a video. docs: modify demo image in intermediate-inputs.md #11755 (opens in a new tab)


2. Learn how to contribute to open source by watching other members' activities

Through this Open Source Country View Line Academy, I learned how to contribute to open source and how to find issues. The summary is as follows.

  • There are many issues than the main logic, or UI parts, or UI parts, or UI parts.
  • There are many issues that can contribute to the open source sufficiently, even if you are a professional knowledge of the open source or a practitioner in another field (ex. UI issue)
  • When you want to contribute, you first comment that you want to solve this issue directly to the issue and then start working.
  • This part was a little strange, but in the case of Argo Workflow, it was a little strange that the person in charge was assigned when making a contribution. Something I don't know? Or, it seems to assign a person in charge when you feel unfamiliar.
  • There are many different people. Some people write just one line, and some people write very kindly comments.

I learned how to contribute directly to the issue by looking at other members' issue hackathons. In particular, I found the issue of "Pagination" very interesting among other members' issues. I didn't notice when I was using argo workflow, but I realized that it was possible to contribute to places that could pass by by catching that page-nation is inconsistent and making issues.


3. Development container construction

Personally, I set up the development environment by flying devcontainer myself. In fact, there were countless errors in the process, and I could imagine that other developers would come and squeeze their brains together if there was a bug in practice.

I found out that when you solve dependency issues and later someone else makes an issue on my project, you use development containers to ensure you're working in the same environment, and I thought I'd have to use development containers in other projects I'm working on (discord bot-related projects).

After the interim report, rather than changing my mind a little and feeling intimidated, I wanted to take the opportunity to overhear how other current employees operate the service in practice. In fact, mentees presented various topics, and I was able to hear interesting topics such as load tests and explanations about ebpf in the company. I think it was a very valuable presentation that was hard to hear while attending school.


4. Mastering the Verified Commit method using GPG Sign and uploading the introduction to Team GitHub

Until now, I've been committing without a separate GPG Key, but in the process of uploading the member introduction, I checked the DCObot and GPG and kept getting blocked, so I learned how to create a Verified commit and uploaded the introduction to Team GitHub Repo. In the process, I solved it with the help of the same team member while constantly stopping whenever I committed.

docs: 안지완 프로필 업데이트 (opens in a new tab)

🌵 Participation Review

In fact, until I wrote the interim report, this activity was too high for my level and others were so good that I felt intimidated by myself, but thanks to the mentor's individual counseling and encouragement, I have since tried to participate in the regular meeting harder.

I saw a lot of issues in Argo Workflow and looked for it to contribute to anything, but I couldn't touch it because it was so complicated and I didn't know the Go language. Instead, I felt like I entered the world of open source by looking at other people's contributions, even though I may not be able to contribute directly.

Another person's most memorable contribution was "Page Nation." I was impressed to see that some parts of Argo Workflow are page-nations, some parts are not, and some parts are not title-free, but you found a problem of consistency in the UI, and you found a team member in the issue hackathon to solve this problem.

When I was looking for something to contribute, I tried to find issues related to logic, but it was too difficult and I couldn't figure out how it worked, but I can't believe it can contribute like that…I thought that I didn't have to be so scared of contributions than I thought.

As everyone else, including you, is an incumbent and is very talented, I learned a lot from going to the meeting. You can see the differences between theory and practice, how workflows are being used in practice, especially why the really universal airflow that I'm studying these days isn't being used very much in practice.

To be honest, as I participated in open-source competition, I also have a desire to contribute at least one issue. As there is not much time left, my plan is to contribute at least one small issue before the end of the activity, and now the semester is waiting, so I want to have as much time to learn as possible to go to regular meetings and learn even if the semester begins.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

11. YoonWoo You (opens in a new tab)

🌿 Personal Activity Report

Collapse/Expand

1. Create a beginner's dockerfile task1

  • Create your own web service, build an image via dockerfile, and run a container.
  • Build your service using a framework and language of your choice, I used Nest.js.

2. Learn the Nest.js framework

3. PR after creating the dockerfile task2

  • I created a docker file to build the image, verified that the service is working, and raised a PR, but the build test of the github action fails.
  • Remove the --production option and it passes the test, but the image is not optimised. Ask your mentor for advice

task3

  • Start troubleshooting based on your mentor's feedback

4. Trouble Shooting task4-1 task4-2

  • I tried to install node_modules for production only to reduce the size when creating images with dokerfile, but it didn't pass the github action.
  • After a lot of shovelling, I realised that a module called nest-cli is required for nest build, but it was in the devdependency, so I changed it and it worked. (My mentor gave me a hint, but I didn't understand and shovelled it in)
  • The reason I was confused was that I had nest-cli installed globally on my MacBook.

5. Open source contributor activity [UI: The position sticky on the workflow toolbar is not working]

[before] before1

  • The top toolbar was not visible when checkboxes were selected and scrolling.
  • Fixed an issue with the existing position : sticky not being applied by changing it to position : fixed.

[after] after1

  • After checking a checkbox, you can pin the toolbar to the top of the scroll to fire events for that list without having to scroll further.

[UI - show history about completed runs in each cron workflow]

[before] before2

  • There was nothing on the existing cron-workflows-detail page, but the

[after] after2-1 after2-2

  • Added a history workflows to the corresponding cron-workflows and an example of when there is no history.
  • This PR is still under verification

🌵 Participation Review

It was a great experience.

Unfortunately, when I got a job, I became busy and lacked knowledge of server and DevOps, so I didn't participate in many contributor activities or offline gatherings.

However, I will not give up and try to contribute more to argoWorkflow by doing more front-end contributions and studying server side as well!

Thank you for making such a good activity and thank you to the mentors and mentees for helping me grow step by step even though I'm a beginner 👍

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

12. ByeongGon Lee

🌿 Personal Activity Report

Collapse/Expand

🌵 Participation Review

It was great to be motivated not only to contribute to open source but also to learn about new technologies through this Contribution Academy. It wasn't easy to participate while I was busy at work, but my long-term goal is not only to contribute to Argo Workflows in this year's contribution, but also in future contributions for the next few years. My future plans are to build not only Argo Workflows, but also other Argo Projects and apply them to my personal toy project, as well as to study more about K8s.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

13. EuiJu Lee (opens in a new tab)

🌿 Personal Activity Report

Collapse/Expand

lint test 1. how to use Git & Commit, PR rules

2. Participate in a special beginner class - Repository for beginner special class missions(container-playground) (opens in a new tab) - The purpose was to help people who are unfamiliar with Docker or Kubernetes or who are new to it.

class1

  • Learn about the need for Docker Image optimization while performing tasks presented by a mentor

    • Since it is a process of stacking certain packages and static files by layer from the From clause, we realized that optimization is essential because the Docker image can become heavy and have a negative impact on performance improvement.
  • Mission

    ❗️objective❗️
    
    Create your own web service and write a Docker file that can be containerized.
    
    To pass the assignment, please be sure to follow the instructions below.
    
    • Directory and file placement
        • Be sure to create your own github account directory for your own service and write it there.
        • The `Dockerfile` must be located at the top of your directory. (If this condition is not achieved, CI will fail.)
        • As long as it is under your own directory, you can freely write the rest of the files except for the location of `Dockerfile`.
        • However, the image must be built successfully when you execute the command `docker build -t [image name] .` at the top of your directory.
    • Behavior of built images
        • Your web service must operate on port 8080.
        • The built image must be serviced without problems when run with `docker run -d -p [forwarding port number]:8080 [image name]` without any additional parameters.
    • Web service development language and service structure
        • It doesn’t matter which language or framework you prefer.
        • It doesn't matter if you create a simple API service with no UI or design.
        • However, you must create two required APIs. (I don't care about the response value.)
            1. /api/v1/[your github account]
            2. /healthcheck
    • (Optional) It would be better to optimize the Docker image.([참고](https://thearchivelog.dev/article/optimize-docker-image/))
    • [How to link PR and issues using keywords](https://docs.github.com/ko/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an Please refer to -issue-using-a-keyword) to connect the issue and PR. (Manual connection x)
    
    ❗️Note❗️
    
    •It would be a good idea to refer to the documents below to understand Docker concepts and write a Dockerfile.
    
        • [Official documentation for creating a Dockerfile](https://docs.docker.com/engine/reference/builder/)
        • [How to use Docker for beginners](https://mysetting.io/slides/xxj85vnvey) (Content related to Docker Toolbox has been deprecated)
    
    •To raise PR and merge, please refer to the points below.
    
        • Since you do not have permission to create or push branches in the repo, you must fork and then work on it.
        • Please refer to [PR's naming convention](https://flank.github.io/flank/pr_titles/).
        • [DCO](https://github.com/apps/dco) Please commit while referring to the conditions for passing the bot's check.
        • Please understand how to commit using [GPG](https://www.44bits.io/ko/post/add-signing-key-to-git-commit-by-gpg) and create a signed commit.
        • It would be good if [Commit Message Convention](https://www.conventionalcommits.org/en/v1.0.0/) could also be applied. Even if you don't have to follow it, please avoid making commit messages that are too meaningless. (Optional)```
    
  • Having previous experience with the Python-based Django framework, I wrote a Docker file that creates a Django REST API.

  • I sent out a PR, but was pointed out a security issue or an error in unnecessary package import syntax.

    review1 review1

  • This is the first time I learned that SECRET_KEY is exposed in the settings.py code of the Django project, and I will take the time to think about how to solve this security issue.

    • We created a .json file containing the secret key and proceeded to refer to the json file in settings.py.
    • Since the secret.json file cannot be uploaded to Commit, I learned how to ignore the json file through .gitignore, and was able to ignore unnecessary files created after executing certain commands such as dbsqlite3.
    • It was an experience that made me realize that several considerations are needed to upload locally developed results to a Git project.

3. Argo Workflow Contributor

  • While looking into Argo Workflow, I came across the Argo Workflow Slack channel marked Deprecated in the Argo Workflow - Contact - Help field.

  • I thought it was a minor UI Issue, but I thought it was an opportunity to check what language the UI is displayed in and how it was developed, so I raised an issue and submitted a PR.

    slack11

    • Created Issue

      UI: non-existent Slack Workspace link on help page Issue (opens in a new tab)

      issue1

      • When I created an issue, the Maintainer of the Argo project quickly left a comment.

      • I randomly tried to fix it with the CNCF Argo Channel link, but I received a comment from the maintainer asking me to update it with a different link.

    • Created PR

      fix: deprecated Link(Help-Contact) Issue (opens in a new tab)

      issue2

      • Argo Workflow had a UI based on React, and the directories were arranged by component, making it easy to analyze the code.

      • I didn't pass the DCO bot test because I accidentally omitted the Signed-off option during Commit

        • but I learned about the ability to revert previous commits (Rebase) or merge multiple unnecessary commits into one (Squash) in GIt. And I returned the previous commit and committed it with git commit -S -s -m "Commit Message".
      • I looked up what the comment ‘LGTM’ meant, and on Google, I used the tag LGTM to express my opinion. 'Looks Good To Me'. In other words, it was a rewarding experience because it meant it looked good.

      • The process of finding bugs or modifying the UI is important, but I think the most important thing is the process of performing contributions according to the rules set by the Argo Workflow ecosystem.

4. Participating in Argo Workflow Hackerton (Argo workflow - Hackathon held within the OSSCA team)

  • Pull Request(Merged) : feat: Search by name for WorkflowTemplates in UI (opens in a new tab)

  • Issue : Search by name for WorkflowTemplates in UI (opens in a new tab)

  • Issue Hackathon activity period

    • 1st Hackathon (Hackathon Group C) : 23.08.16 - 23.08.20

    • 2st Hackathon (Hackathon Group C) : 23.08.20 - 23.08.27

      hack1 hack2

      • Issue content

        • When there are a large number of templates in a cluster, it is good to search by name, but scrolling through all the templates is always inconvenient due to the lack of a search function.
        • It was thought that the Argo Workflow UI needed a function to filter the results of workflow templates by name, so the issue was adopted as a result of a group meeting.
      • Role

        • Front-End
          • Creating a search field (Bar) in Argo workflow Template UI
          • Analyze .get logic to analyze where the Name Pattern (Like search) is sent
          • Modify workflow-template-filter.tsx and workflow-template-list.tsx in the workflow-template component directory.
      • Meeting details

        • The meeting is held through the Slack hackathon channel, where opinions and information are shared every day.
        • 1st Meeting details
        1. name search function (backend)
        
            • WorkflowTemplate page
            • Add name search (LIKE search)
            • ClusterWorkflowTemplate page
            • Add name search (LIKE search)
            • CronWorkflow page
            • Add name search (LIKE search)
        
        
        
        2. name search function (frontend)
        
            • WorkflowTemplate page
            • Add name search ui
            • ClusterWorkflowTemplate page
            • Add search sidebar (name, label)
            • CronWorkflow page
            • Add name search ui
        
        3. pagenation (frontend)
        
            • WorkflowTemplate page
            • pagination based on name
            • ClusterWorkflowTemplate page
            • Add pagination
            • CronWorkflow page
            • Add pagination
        
        4. Write test code
        
            - name search (LIKE search)
            - Need more analysis on what test code should be written
        • 2nd discussion content

          • 1st offline meeting

            hack3

        1. Co-commit method
        
            •  Clone the repository https://github.com/ArgoWorkflows-OSS/argo-workflows locally.
            • We create a branch in the repository for our team to work on. (`master` vs `release-3.4.10`)
            • Work on the functions you are responsible for in the corresponding branch of the repository. (Commit by carefully following the commit rules for raising PR.)
            • When everyone's work is completed, 1 out of 3 people will send out a PR according to the PR template.
            • All 3 people can be contributors
        
        2. Since it is a hackathon and there is a set period, we decided to first implement the workflow-template name filter, which we think is the main one among workflow-template, cluster-workflow, and cron-workflow, send a PR, and move on once the maintainer merges it.
        
            • Roles for each part
        
            • Back-End
        
                • workflow_template_server.go
                    • Name filtering and pagination recalculation
        
            • Front-End :
        
                • workfflow-template-filter.tsx
                    • Add Name search UI
                    • Receiving and filtering the Name argument
                • workflow-template-list.tsx
                    • Add Name state
                    • Pass name to userEffect list
                • workflow-template.tsx, Utils.tsx
                    • Passing the Name argument
        • 3rd discussion details

          • 2nd offline meeting

            hack4

             1. Offline Meeting Meeting Contents
          
                 • An opinion that even cases where there is no namespace should be included in the filter. (Insufficient grounds to say to eliminate namespace - Other sites (Kubernetes Dashboard, OpenShift, Argo CD, etc.) also provide namespace without namespace)
                 • Thoughts on whether it is possible to import and apply the logic used in continue and whether continue can be maintained as is even with custom results.
                 • After analyzing the continue logic until Wednesday night, if it is concluded that pagination using continue is not possible, upload a question in the issue comment.
                 • Front-end pagination (data is not reloaded, the method used in argocd) vs. server-side pagination (pagination after checking the entire list each time, will the load be okay?)
                 • If server-side caching is implemented, is there a place to store it?
             2. I decided to do a full K8s search by applying only the namespace and label every time I turned the page.
          
             3. Additional logic implemented in offset-based pagination method
                 • The part that didn't work
                     • If you perform a filtered search after clicking the next page button, no data appears even if there are search results.
                     • If you increase the number of pagination after clicking the next page button, the search results do not display properly.
                 • What changed
                     • As the continue value is updated on the server, when increasing the number of pages or applying filtering, there is a problem with pagination based on the continue value already set on the server.
                     • A method of changing the continue value to be passed from the front was adopted ( When increasing the number of pages or applying filtering, set continue back to 0)
          
          
             4. Pagination Test
                 • workflow_template_server_test.go passed
                 • (14 workflow templates registered)
                 • Normal : UI workflow template first page
                 • Normal : when workflow template page limit is 5, 10, 50
                 • Workflow template page Add workflow template on page 1 and move to page 2
                 • Workflow template page Delete the workflow template from page 1 and move to page 2
                 • Test the above with `name pattern` filtering search
                 • Search without name pattern and then re-search by adding name pattern
                 • After searching including the name pattern, deleting the name pattern and searching again
          
             5. Create PR
        • Like filter (Name Pattern) implementation

          • ex) Workflow-template starting with sp can be searched

            filter1

        • Result

          filter2

          • The implementation was a success, and we plan to modify the previously discussed cluster-template and cron-template components.

5. Learning outside of contribution activities - Completion of Google Kubernetes Study Jam training - Badge (opens in a new tab) - Architecting with Google Kubernetes Engine: Foundations Earned 7월 18, 2023 EDT - Architecting with Google Kubernetes Engine: Workloads Earned 7월 26, 2023 EDT - Architecting with Google Kubernetes Engine: Production Earned 8월 4, 2023 EDT

🌵 Participation Review

  • Post-Participation Review

    • Before the Academy, I only had knowledge of Argo CD, but afterward, I was able to research and analyze Argo Workflow projects and reach a level where I could think about how to utilize its powerful functions.
    • When making my first contribution, I created an issue, communicated with the maintainers, modified the requested items, and created a PR, so I quickly received comments and achieved the result of merging.
    • It may be a minor issue, but it was an experience that made me feel that a holistic analysis of the part I wanted to contribute was necessary.
    • Not only this, it was an opportunity to analyze how the Argo workflow interacts internally by conducting an issue hackathon within the team, analyzing not only the UI, i.e. the front part, but also the logic of the back end part.
    • Our group's body was a big issue, so we were able to reach our goal by holding online as well as offline meetings accordingly, and since the two members were working in the field, they kindly explained difficult parts, so it was a useful experience.
    • I have a desire to continue communicating with the hackathon team members or the entire team.
  • Future plans

    • Since the OSSCA period has not yet ended, we plan to continue exploring issues (Cluster-workflow-template, Cron-workflow, etc.), discover typos or translation errors in the Argo Workflow document, and continue to submit PRs.
    • In addition, after the OSSCA period ends, we plan to portfolioize the contents that have been organized so far.
    • As a toy project, we plan to complete data ETL work using Argo Workflow, which is currently in progress.
    • If I get a job, I hope to create many insights by introducing many of Argo Workflow's functions into my field.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

14. EuiJung Geon (opens in a new tab)

🌿 Personal Activity Report

Collapse/Expand

✅ Records about Contribution

Series | 2023 OSSCA - ddubi.log (opens in a new tab)

-> Unfortunately It is not translated..



✅ Various tasks

  1. The task regarding issue/commit/PR in Github

    [Summary]

    mission1

    • Select the profile update issue, fork ArgoWorkflows-OSS repository, and commit it by adding users.md and [name].md under docs/user in the repository. After that, link the issue and submit a PR.

    [Outcome]

    docs : update UiJeong Profile by juijeong8324 · Pull Request #19 · ArgoWorkflows-OSS/ArgoWorkflows-OSS (opens in a new tab)

    records: Github에서 issue/commit/PR (opens in a new tab)


  1. Running Locally

    [Summary]

    • Running Argo workflows locally
    • Install Linux on Windows with wsl2 and run argo workflows using devcontainer cli.

    [Outcome]

    records: Argo Workflows running locally (opens in a new tab)

    records: Argo Workflows running locally - retry (opens in a new tab)

    records: Argo Workflows running locally - final (opens in a new tab)

    records: Argo Workflows running locally - real final (opens in a new tab)


  1. Special class for Beginners - Create my own service container image

    mission2

    [Summary]

    • Special class for Beginners is a class for beginners(It's me) who don't know much about Container, kubernetes, argo from Argo-workflows oss team.
    • The task is creating my own web service, writing dockerfile for containerize the application.
    • You need to understand Dockerfile, docker, images, and containers.
    • In my case, build web server with express and write dockerfile.

    [Outcome]

    code: About task (opens in a new tab)

    records: 왕초보 특별반 - 1. 나만의 서비스 컨테이너 이미지 제작 (opens in a new tab)

    records: [Docker] Dockerfile 기본 명령어에 대해 알아보자 (opens in a new tab)



✅ Offline meeting

DateActivity
2023.07.15- Introduction team
- (Seminar) Introduction to Argo workflows and mentor’s application examples
2023.07.30- Searching and sharing issues of the week
- I was solving a local running problem.
- (Seminar) HaeMin's WebRtc, Sunyeong's keyclock and argo worfklows
2023.08.13- Receive feedback on Special class of beginners assignment
- Searching and sharing issues of the week
- (Seminar) Mentor’s special lecture on history and principles
2023.08.20- Searching and sharing issues of the week
- I share `Issue #11131``
- (Seminar) DaHae's ‘Platform builder & K6 execution test PoC that allows developers to perform execution tests on their own’


✅ Searching Issue & Creating Issue




✅ PR open & merge


  • PR #11811 (opens in a new tab) Improve UI PR Merge

    [PR Summary]

    The PR tries to solve Issue #11706 (opens in a new tab)

    pr2 Modify to check completed cron-workflow when you click specific cron-workflow at cron workflow page

    pr2_1 If it cannot find a completed cron-workflow, it will be display like above

    [Outcome]

    Merge Complete

🌵 Participation Review

  • Review

    • Actually DevOps, Infra were unfamiliar fields to me, but through the Argo workflows project, I feel more familiar with the field than before.
      • I have only been learned to concepts such as Docker, Container, etc. theoretically, but I learned those concepts more easily through hands-on practice, and in addition new things (the existence of wsl...!).
      • It gave me an opportunity to look back on concepts that I miss (e.g Linux authority and network.)
    • Also I had a vague fear of writing an issue, but I was able to overcome that fear by writing it myself.
    • At last, There are many ways to contribute and I realize it was important to try to contribute step by step.
      • The first time I focused on issues that I did not sympathize with, due to my personal greed and the idea of learning while solving problems.
      • However I realized regardless of the difficulty of the issue, I needed to understand the repo while solving an issue that I personally sympathized with.
    • I look forward to continuing to enjoy contributing to open source!
  • Forward Plan

- Step 1
: Time to adapt and learn about Argo Workflows / Simple contribution
: Contribute articles via Repo's TODO
: Focuse on UI improvements

- Step 2
: Focus on template,backend contribution

- Step 3
: Write an issue that would be good to solve and then contribute

Even after the open source contribution ends, the mentor plans to continue meeting regularly, and I have a goal of contributing at least one issue per month to the Argo Workflows repo this semester.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

15. SungRock Jung

🌿 Personal Activity Report

Collapse/Expand
  1. git/github Getting Started issue: https://github.com/ArgoWorkflows-OSS/argoworkflows-oss.github.io/issues/11 (opens in a new tab)
    pr: https://github.com/ArgoWorkflows-OSS/argoworkflows-oss.github.io/pull/15 (opens in a new tab)
    summary: Familiarize yourself with git/github, the core of code shape management in the open source ecosystem.
    detail:
    Much of the open source world relies on git and github for collaboration.
    Therefore, in order to contribute to open source, it is necessary to familiarize yourself with git/github.
    Using git/github, it was a hands-on activity to issue issues, follow commit rules, and create PRs.

  1. feat: logging for client-side throttling

    issue: #11387 (opens in a new tab), #11402 (opens in a new tab)
    pr: #11437 (opens in a new tab)
    summary: fix to figure out faster if user set certain options incorrectly
    detail:
    It uses a library called client-go to communicate with kubernetes.
    This library provides options --qps, -burst for request limit.
    If this option is set very low, it will cause throttling. That's why we have a separate log level to inform the user more quickly.
    While working on this issue, I learned a lot about client-go, especially about RoundTrip.
    It was a shock when I realized that I could add middleware using RoundTrip for any object that respects the http request interface provided by golang.


  1. go 1.21 upgrade

    issue: #11566 (opens in a new tab)
    pr: #11601 (opens in a new tab)
    summary: golang 1.21 ver release에 따른 version upgrade 진행
    detail: As a lead mentee, I decided it would be better to have a teammate who hasn't contributed yet try to solve the issue rather than me.

    issue-report1

    I shared the issue with my teammate, and I was able to support him in successfully resolving the issue.
    We shared our approach to the issue in our regular weekly meeting.

    issue-report2

    On weekdays, we would take questions and answer them separately in a slack channel so that everyone on the team could get experience submitting PRs.

    issue-report3

    Team members also gained invaluable experience merging PRs.


  1. Debugging 설정

    summary: 팀원의 argo-workflow debugging setting
    detail:
    For team members who are new to developing with golang, we had some difficulties setting up the debugging environment, and we worked together to solve it.

    debug-1

    During this process, I realized that I'm not very good at setting up debugging for apps that are closely related to kubernetes, and I realized that I needed to get some help with that.

🌵 Participation Review

  • After
    • Participating in OSSA for 13 weeks was a great experience. After applying 3 times, I was so happy to be part of a project built with my favorite community, CNCF, and my favorite language, Golang.
    • Participating in argo-workflow under the CNCF umbrella through OSSCA and being able to contribute to the ecosystem of CNCF, even in a small way, was a very happy time for me. In particular, I thought it was a good experience for beginners to be able to quickly communicate with maintainers through mentoring, a system operated by argo-workflow.
    • With feedback through argo-workflow's mentoring system, I quickly gained confidence and good experience through PR submission and merge, which I wanted to share with all team members as a lead mentee. Helping a team member who was new to open source contributing made me realize how much of a barrier to entry it is for people who are new to it, and it made me think about how to bring beginners into the ecosystem more reliably.
    • In addition to the open source contribution activities, the team members from Developer, DevOps, and SRE roles, the different skills they use in their respective roles, and the sharing of experiences broadened my horizons.
    • If I have the opportunity next year, I would definitely participate in OSSCA and continue my open source contribution activities with various people.
  • Planning
    • Working on this argo-workflows project has made me very interested in the projects in the argo camp. By participating in the project, I was able to identify my shortcomings as a developer, and I plan to improve them. Even if ossca ends, I will continue to contribute to open source under the CNCF umbrella.
      • argo-workflow
        • shortfalls
          • Lack of understanding of kubernetes operators
          • Lack of frontend knowledge
        • Future plans
          • The UI of argo-workflow is a bit lacking compared to other argo projects, and I'm going to try to improve it based on user feedback.
          • Regarding area/artifact, I would like to extend it to use more storage.
          • Regarding area/plugin, it currently only supports sidecar, but I'd like to make it easier to extend externally implemented plugins with code.
          • Regarding the documentation, I'd like to think about the parts that are difficult for beginners and improve them.
    • Personal growth
      • shortfalls
        • Talking to members from different companies and lacking their own perspective on developing and keeping the service stable.
        • Difficulty communicating to transfer knowledge.
      • Future plans
        • I'm going to study how to organize and speak about the knowledge I want to convey.
        • I'm going to talk to a lot of people, share my thoughts, and try not to get caught up in otherness.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

16. MoonYoung Chae

🌿 Personal Activity Report

Collapse/Expand

Multiple Tasks

Issue analysis

Contribute

🌵 Participation Review

I wanted to contribute to a large open source community, but I felt at a loss. It was great to be able to contribute directly through this academy. This was possible because a mentee with a lot of experience in contributing guided me step-by-step to contribute and encouraged me to take on the challenge. Through technical seminars and technical exchanges with other developers, we were able to grow together. Because ArgoWorkflow is a large-scale project, there are many difficult parts to analyze alone, but by sharing opinions with other developers, I was able to solve the problem more quickly. Since I have gained some understanding of the ArgoWorkflow project and have gained confidence through my small contribution experience, I expect that my next contribution will be easier. Even after this program ends, we plan to contribute on a larger scale by collaborating with other mentees who are interested in ArgoWorkflow.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary

17. SooNyeong Choi (opens in a new tab)

🌿 Personal Activity Report

Collapse/Expand

1. Cron workflow can not apply volumeClaimTemplates config from argo controller config map (workflowDefaults)

Issue #11344 (opens in a new tab) PR #11662 (opens in a new tab)

Issue Analysis

To understand this issue, I first needed to grasp what Default Workflows (opens in a new tab) are.

I learned that the workflowDefaults field in the argo workflows controller configmap allows you to set default values for workflows. Additionally, I discovered that if a workflow already has values for this field, those values take precedence.

For example, after configuring the configmap as follows, when you create a Workflow,

# This file describes the config settings available in the workflow controller configmap
apiVersion: v1
kind: ConfigMap
metadata:
  name: workflow-controller-configmap
data:
  # Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level
  workflowDefaults: |
    metadata:
      annotations:
        argo: workflows
      labels:
        foo: bar
    spec:
      ttlStrategy:
        secondsAfterSuccess: 5
      parallelism: 3

it will be automatically created with the values set in the workflowDefaults field, like this:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: gc-ttl-
  annotations:
    argo: workflows
  labels:
    foo: bar
spec:
  ttlStrategy:
    secondsAfterSuccess: 5 # Time to live after workflow is successful
  parallelism: 3

The issue was related to an error occurring when adding the volumeClaimTemplates value to workflowDefaults, causing errors when creating CronWorkflows or Workflows.

The error message indicated, does not contain declared merge key: name.

Upon checking the code, it was found that the error occurred in the StrategicMergePatch function, which is related to Kubernetes' patch strategy.

VolumeClaimTemplates []apiv1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,6,opt,name=volumeClaimTemplates"`

The issue arose from the fact that the VolumeClaimTemplates type defined in Workflows used name as the patchMergeKey.

However, upon inspecting the PersistentVolumeClaim type below, it was found that name was not present. In other words, the problem occurred because a value was defined as the patchMergeKey that was not part of the structure.

type PersistentVolumeClaim struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
 
	// spec defines the desired characteristics of a volume requested by a pod author.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
	// +optional
	Spec PersistentVolumeClaimSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
 
	// status represents the current information/status of a persistent volume claim.
	// Read-only.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
	// +optional
	Status PersistentVolumeClaimStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
}

Issue Resolution

I removed the patchMergeKey from VolumeClaimTemplates.

However, the reason patchMergeKey was added to VolumeClaimTemplates was to maintain consistency with conventions used for Volumes.

Since this issue is related to policies, it indeed requires further discussion.

This was my first PR to the ArgoWorkflows project, and it's great that i was able to identify the cause of an issue that was causing inconvenience for many people.

2. Search by name for WorkflowTemplates in UI

Issue #11004 (opens in a new tab) PR #11684 (opens in a new tab)

Issue Analysis

This issue was worked on by a team of three people.

HackertonC

WorkflowTemplates do not have a search function based on 'name', so to find a specific WorkflowTemplates, you could only search based on label.

So, many users were feeling inconvenienced, and it was an issue related to 'feature improvement' that they would like to provide a function to search based on 'name'.

Issue Resolution

namePattern

We added additional logic to filter the results of WorkflowTemplates retrieved through the Kubernetes API based on their 'name', successfully implementing this feature.

However, there was one issue.

Existing pagination was implemented using Kubernetes' own continue value, so if Kubernetes results were custom manipulated like this, Kubernetes pagination could not be used.

We had a lot of concerns about how to solve this, but We solved the problem by applying logic to implement cursor pagination using Kubernetes' resourceVersion.

It was so fun to be able to discuss it with others instead of alone.

I also felt good about providing some really needed functionality to the ArgoWorkflows project.

3. A problem that is not initialized when changing the number of page limits

Issue #11702 (opens in a new tab) PR #11703 (opens in a new tab)

Issue Analysis

While resolving the Search by name for WorkflowTemplates in UI issue, i discovered a new pagination bug.

When changing the number of pages, the continue value used for pagination was not initialized in the UI, so the data was not displayed properly.

Issue Resolution

I was able to solve the problem by simply modifying the logic to initialize offset when a change in page number is detected in the UI code.

It was only a one-line code change, but this one line solved a problem that was quite inconvenient.

4. Pagination may not work correctly for archived workflows

Issue Analysis

Issue #11715 (opens in a new tab) PR #11761 (opens in a new tab)

This issue was directly communicated to us by Maintainer @terrytangyuan through Slack.

Slack Github

It felt like I was contacted by my favorite celebrity and I was so happy that I almost flew away. I suppressed my happy and excited heart and analyzed the issue.

Workflows and ArchivedWorkflows were previously separated into different pages, but starting from the master version, Workflows and ArchivedWorkflows are combined into one page, and the logic has been modified to show ArchivedWorkflows together if they exist.

However, when Workflows and ArchivedWorkflows were merged into one, a problem occurred with pagination.

The two resources also used completely different pagination. Workflows was using the continue value, which is Kubernetes' own pagination, and ArchivedWorkflows used its own database, so it was using the database to perform pagination using the offset method.

However, while passing the continue value used in Workflows to ArchivedWorkflows as is, a problem occurred where ArchivedWorkflows was not searched at all.

Issue Resolution

I was able to resolve the issue by referring to the pagination logic that was implemented while resolving the Search by name for WorkflowTemplates in UI issue.

Since the two resources have no choice but to use different methods of pagination, rather than using pagination before merging the two resources, use a method of first searching the entire resource and merging the two resources and finally applying the pagination logic. I did it.

I was able to solve the problem of ArchivedWorkflows not being searched, but fetching and merging the entire list every time the page is changed is a performance concern, so i'm thinking about a way to test performance.

I plan to switch to front-end pagination if performance testing indicates that it's not working well.

It was great to be able to solve a critical issue, and I felt proud and fun because I felt like I was contributing properly to the ArgoWorkflows project as a contributor.

5. Relocation of Commit Guidelines Information in the Documentation

Issue #11700 (opens in a new tab) PR #11701 (opens in a new tab)

Issue Analysis

The ArgoWorkflows project has a README document for developers attempting to contribute.

However, it does not mention specific guidelines for commits.

@GeunSam2 mentor mentioned that it was inconvenient when initially attempted to contribute and had difficulty finding commit guidelines.

Issue Resolution

ContributingDocs

Upon hearing this feedback, I made a modification to the contribution README by adding a link to commit guidelines.

This change aims to make it easier for developers who want to contribute to ArgoWorkflows.

In this PR, a maintainer provided a code suggestion, which was intriguing and enjoyable for me as I was encountering the code suggestion feature for the first time.

🌵 Participation Review

If someone were to ask me what I did best this year, I would confidently say that it was my participation in the ArgoWorkflows project contribution activities.

Meeting various developers in the same field, forming a sense of empathy, and engaging in discussions with them was truly enjoyable. Hearing stories about different companies was also quite interesting.

During our weekly meetings, it wasn't just about working together; our mentors always conducted insightful seminars. Sundays became genuinely enjoyable, and time flew by.

Meeting such capable mentors was a delight. I received advice on the concerns I had as a junior developer, my future direction, and how to study effectively as a developer, which made me happy.

I always wanted to try contributing, but I was afraid to tackle such a big project. However, facing these challenges with such great mentees and mentors made my fears disappear.

Submitting numerous PRs and communicating with maintainers was also a lot of fun, and it was really satisfying to see my code being incorporated.

Thanks to this experience, I gained the confidence to contribute not only to ArgoWorkflows but also to other projects.

I have no intention of stopping my contributions after this period ends. I plan to continue contributing to ArgoWorkflows while looking for opportunities to contribute to Kubernetes and Argo CD projects used by my company.

🌵 Personal Summary

Contribute Info

TOTAL COUNT
0
PR COUNT
0
ISSUE COUNT
0
GitHub
Type
Summary