Skip to content

Commit a87ad40

Browse files
fsmunozHii-ArpitTim Bannister
committed
SIG CLI Spotlight placeholder
Co-authored-by: Arpit Agrawal <[email protected]> Co-authored-by: Tim Bannister <[email protected]>
1 parent 85797c5 commit a87ad40

File tree

1 file changed

+161
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)