Skip to content

Commit 77a5fe3

Browse files
authored
Merge pull request #41973 from fsmunoz/sig-cli-spotlight
Add SIG CLI Spotlight article
2 parents 3eb5c3e + 5bca38f commit 77a5fe3

File tree

1 file changed

+160
-0
lines changed

1 file changed

+160
-0
lines changed
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
layout: blog
3+
title: "Spotlight on SIG CLI"
4+
date: 2023-07-20
5+
slug: sig-cli-spotlight-2023
6+
---
7+
8+
**Author**: Arpit Agrawal
9+
10+
In the world of Kubernetes, managing containerized applications at
11+
scale requires powerful and efficient tools. The command-line
12+
interface (CLI) is an integral part of any developer or operator’s
13+
toolkit, offering a convenient and flexible way to interact with a
14+
Kubernetes cluster.
15+
16+
SIG CLI plays a crucial role in improving the [Kubernetes
17+
CLI](https://github.com/kubernetes/community/tree/master/sig-cli)
18+
experience by focusing on the development and enhancement of
19+
`kubectl`, the primary command-line tool for Kubernetes.
20+
21+
In this SIG CLI Spotlight, Arpit Agrawal, SIG ContribEx-Comms team
22+
member, talked with [Katrina Verey](https://github.com/KnVerey), Tech
23+
Lead & Chair of SIG CLI,and [Maciej
24+
Szulik](https://github.com/soltysh), SIG CLI Batch Lead, about SIG
25+
CLI, current projects, challenges and how anyone can get involved.
26+
27+
So, whether you are a seasoned Kubernetes enthusiast or just getting
28+
started, understanding the significance of SIG CLI will undoubtedly
29+
enhance your Kubernetes journey.
30+
31+
## Introductions
32+
33+
**Arpit**: Could you tell us a bit about yourself, your role, and how
34+
you got involved in SIG CLI?
35+
36+
**Maciej**: I’m one of the technical leads for SIG-CLI. I was working
37+
on Kubernetes in multiple areas since 2014, and in 2018 I got
38+
appointed a lead.
39+
40+
**Katrina**: I’ve been working with Kubernetes as an end-user since
41+
2016, but it was only in late 2019 that I discovered how well SIG CLI
42+
aligned with my experience from internal projects. I started regularly
43+
attending meetings and made a few small PRs, and by 2021 I was working
44+
more deeply with the
45+
[Kustomize](https://github.com/kubernetes-sigs/kustomize) team
46+
specifically. Later that year, I was appointed to my current roles as
47+
subproject owner for Kustomize and KRM Functions, and as SIG CLI Tech
48+
Lead and Chair.
49+
50+
## About SIG CLI
51+
52+
**Arpit**: Thank you! Could you share with us the purpose and goals of SIG CLI?
53+
54+
**Maciej**: Our
55+
[charter](https://github.com/kubernetes/community/tree/master/sig-cli/)
56+
has the most detailed description, but in few words, we handle all CLI
57+
tooling that helps you manage your Kubernetes manifests and interact
58+
with your Kubernetes clusters.
59+
60+
**Arpit**: I see. And how does SIG CLI work to promote best-practices
61+
for CLI development and usage in the cloud native ecosystem?
62+
63+
**Maciej**: Within `kubectl`, we have several on-going efforts that
64+
try to encourage new contributors to align existing commands to new
65+
standards. We publish several libraries which hopefully make it easier
66+
to write CLIs that interact with Kubernetes APIs, such as cli-runtime
67+
and
68+
[kyaml](https://github.com/kubernetes-sigs/kustomize/tree/master/kyaml).
69+
70+
**Katrina**: We also maintain some interoperability specifications for
71+
CLI tooling, such as the [KRM Functions
72+
Specification](https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md)
73+
(GA) and the new ApplySet
74+
Specification
75+
(alpha).
76+
77+
## Current projects and challenges
78+
79+
**Arpit**: Going through the README file, it’s clear SIG CLI has a
80+
number of subprojects, could you highlight some important ones?
81+
82+
**Maciej**: The four most active subprojects that are, in my opinion,
83+
worthy of your time investment would be:
84+
85+
* [`kubectl`](https://github.com/kubernetes/kubectl): the canonical Kubernetes CLI.
86+
* [Kustomize](https://github.com/kubernetes-sigs/kustomize): a
87+
template-free customization tool for Kubernetes yaml manifest files.
88+
* [KUI](https://kui.tools) - a GUI interface to Kubernetes, think
89+
`kubectl` on steroids.
90+
* [`krew`](https://github.com/kubernetes-sigs/krew): a plugin manager for `kubectl`.
91+
92+
**Arpit**: Are there any upcoming initiatives or developments that SIG
93+
CLI is working on?
94+
95+
**Maciej**: There are always several initiatives we’re working on at
96+
any given point in time. It’s best to join [one of our
97+
calls](https://github.com/kubernetes/community/tree/master/sig-cli/#meetings)
98+
to learn about the current ones.
99+
100+
**Katrina**: For major features, you can check out [our open
101+
KEPs](https://www.kubernetes.dev/resources/keps/). For instance, in
102+
1.27 we introduced alphas for [a new pruning mode in kubectl
103+
apply](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning/),
104+
and for kubectl create plugins. Exciting ideas that are currently
105+
under discussion include an interactive mode for `kubectl` delete
106+
([KEP
107+
3895](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning))
108+
and the `kuberc` user preferences file ([KEP
109+
3104](https://kubernetes.io/blog/2023/05/09/introducing-kubectl-applyset-pruning)).
110+
111+
**Arpit**: Could you discuss any challenges that SIG CLI faces in its
112+
efforts to improve CLIs for cloud-native technologies? What are the
113+
future efforts to solve them?
114+
115+
**Katrina**: The biggest challenge we’re facing with every decision is
116+
backwards compatibility and ensuring we don’t break existing users. It
117+
frequently happens that fixing what's on the surface may seem
118+
straightforward, but even fixing a bug could constitute a breaking
119+
change for some users, which means we need to go through an extended
120+
deprecation process to change it, or in some cases we can’t change it
121+
at all. Another challenge is the need to balance customization with
122+
usability in the flag sets we expose on our tools. For example, we get
123+
many proposals for new flags that would certainly be useful to some
124+
users, but not a large enough subset to justify the increased
125+
complexity having them in the tool entails for everyone. The `kuberc`
126+
proposal may help with some of these problems by giving individual
127+
users the ability to set or override default values we can’t change,
128+
and even create custom subcommands via aliases
129+
130+
**Arpit**: With every new version release of Kubernetes, maintaining
131+
consistency and integrity is surely challenging: how does the SIG CLI
132+
team tackle it?
133+
134+
**Maciej**: This is mostly similar to the topic mentioned in the
135+
previous question: every new change, especially to existing commands
136+
goes through a lot of scrutiny to ensure we don’t break existing
137+
users. At any point in time we have to keep a reasonable balance
138+
between features and not breaking users.
139+
140+
## Future plans and contribution
141+
142+
**Arpit**: How do you see the role of CLI tools in the cloud-native
143+
ecosystem evolving in the future?
144+
145+
**Maciej**: I think that CLI tools were and will always be an
146+
important piece of the ecosystem. Whether used by administrators on
147+
remote machines that don’t have GUI or in every CI/CD pipeline, they
148+
are irreplaceable.
149+
150+
**Arpit**: Kubernetes is a community-driven project. Any
151+
recommendation for anyone looking into getting involved in SIG CLI
152+
work? Where should they start? Are there any prerequisites?
153+
154+
**Maciej**: There are no prerequisites other than a little bit of free
155+
time on your hands and willingness to learn something new :-)
156+
157+
**Katrina**: A working knowledge of [Go](https://go.dev/) often helps,
158+
but we also have areas in need of non-code contributions, such as the
159+
[Kustomize docs consolidation
160+
project](https://github.com/kubernetes-sigs/kustomize/issues/4338).

0 commit comments

Comments
 (0)