summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvinesh Tripathi <73980067+AvineshTripathi@users.noreply.github.com>2022-11-23 13:17:37 +0530
committerGitHub <noreply@github.com>2022-11-23 13:17:37 +0530
commitde5fa62cbd1db672014851f05b2634e16b8cff58 (patch)
treec3df758d461e4566d698cca462bcd439a9f16372
parent38c1e81aa4d5404ab3389ef54c77642ca84c1166 (diff)
parent62b16d1aafdd744708c2f5243f90e858806bff95 (diff)
Merge branch 'kubernetes:master' into patch-3
-rw-r--r--OWNERS2
-rw-r--r--OWNERS_ALIASES12
-rw-r--r--archive/wg-component-standard/component-config/README.md980
-rw-r--r--committee-code-of-conduct/README.md4
-rw-r--r--committee-code-of-conduct/governance/onboarding-offboarding.md1
-rw-r--r--committee-code-of-conduct/incident-process.md2
-rw-r--r--committee-steering/README.md6
-rw-r--r--communication/OWNERS3
-rw-r--r--communication/README.md12
-rw-r--r--communication/contributor-comms/CHARTER.md (renamed from communication/marketing-team/CHARTER.md)2
-rw-r--r--communication/contributor-comms/OWNERS (renamed from communication/marketing-team/OWNERS)3
-rw-r--r--communication/contributor-comms/README.md (renamed from communication/marketing-team/README.md)21
-rw-r--r--communication/contributor-comms/role-handbooks/Comms-Tech-Lead.md55
-rw-r--r--communication/contributor-comms/role-handbooks/Social-Media.md (renamed from communication/marketing-team/role-handbooks/Social-Media.md)4
-rw-r--r--communication/contributor-comms/role-handbooks/blog-coordinator.md48
-rw-r--r--communication/contributor-comms/role-handbooks/storytellers.md (renamed from communication/marketing-team/role-handbooks/storytellers.md)20
-rw-r--r--communication/contributor-comms/storytelling-resources/blog-guidelines.md92
-rw-r--r--communication/contributor-comms/storytelling-resources/event-checklist.md (renamed from communication/marketing-team/storytelling-resources/event-checklist.md)0
-rw-r--r--communication/contributor-comms/storytelling-resources/example-interview-qs-sig-windows.md (renamed from communication/marketing-team/storytelling-resources/example-interview-qs-sig-windows.md)0
-rw-r--r--communication/contributor-comms/storytelling-resources/example-topics.md (renamed from communication/marketing-team/storytelling-resources/example-topics.md)0
-rw-r--r--communication/contributor-comms/storytelling-resources/multichannel-communications.md (renamed from communication/marketing-team/storytelling-resources/multichannel-communications.md)0
-rw-r--r--communication/contributor-comms/storytelling-resources/sig-spotlight-blog-process.md (renamed from communication/marketing-team/storytelling-resources/sig-spotlight-blog-process.md)0
-rw-r--r--communication/contributor-comms/storytelling-resources/social-guidelines.md (renamed from communication/marketing-team/storytelling-resources/social-guidelines.md)2
-rw-r--r--communication/contributor-comms/team-resources.md (renamed from communication/marketing-team/team-resources.md)0
-rw-r--r--communication/discuss-guidelines.md2
-rw-r--r--communication/mailing-list-guidelines.md2
-rw-r--r--communication/marketing-team/role-handbooks/council.md91
-rw-r--r--communication/marketing-team/storytelling-resources/blog-guidelines.md65
-rw-r--r--communication/meeting-notes-archive/201902-201911_Community_Meeting_Notes.md2
-rw-r--r--communication/moderators.md13
-rw-r--r--communication/slack-config/OWNERS3
-rw-r--r--communication/slack-config/channels.yaml26
-rwxr-xr-xcommunication/slack-config/restrictions.yaml5
-rw-r--r--communication/slack-config/sig-node/OWNERS8
-rw-r--r--communication/slack-config/sig-node/config.yaml8
-rw-r--r--communication/slack-config/sig-node/usergroups.yaml17
-rw-r--r--communication/slack-config/sig-release/usergroups.yaml12
-rw-r--r--communication/slack-config/sig-security/config.yaml2
-rw-r--r--communication/slack-config/usergroups.yaml55
-rw-r--r--communication/slack-config/users.yaml36
-rw-r--r--communication/slack-guidelines.md36
-rw-r--r--communication/youtube/OWNERS1
-rw-r--r--communication/youtube/youtube-guidelines.md42
-rw-r--r--communication/zoom-guidelines.md50
-rw-r--r--community-membership.md4
-rw-r--r--contributors/chairs-and-techleads/README.md8
-rw-r--r--contributors/devel/README.md8
-rw-r--r--contributors/devel/development.md6
-rw-r--r--contributors/devel/running-locally.md2
-rw-r--r--contributors/devel/sig-api-machinery/controllers.md2
-rw-r--r--contributors/devel/sig-api-machinery/generating-clientset.md2
-rw-r--r--contributors/devel/sig-api-machinery/strategic-merge-patch.md4
-rw-r--r--contributors/devel/sig-architecture/api-conventions.md54
-rw-r--r--contributors/devel/sig-architecture/api_changes.md9
-rw-r--r--contributors/devel/sig-architecture/conformance-tests.md11
-rw-r--r--contributors/devel/sig-node/OWNERS4
-rw-r--r--contributors/devel/sig-node/cri-container-stats.md8
-rw-r--r--contributors/devel/sig-node/e2e-node-tests.md2
-rw-r--r--contributors/devel/sig-node/node-performance-testing.md21
-rw-r--r--contributors/devel/sig-release/kubernetes-versions.md2
-rw-r--r--contributors/devel/sig-release/release.md2
-rw-r--r--contributors/devel/sig-scheduling/scheduler_algorithm.md41
-rw-r--r--contributors/devel/sig-storage/flexvolume.md4
-rw-r--r--contributors/devel/sig-testing/writing-good-conformance-tests.md2
-rw-r--r--contributors/guide/OWNERS2
-rw-r--r--contributors/guide/contributing.md14
-rw-r--r--contributors/guide/contributor-cheatsheet/README.md2
-rw-r--r--contributors/guide/issue-triage.md44
-rw-r--r--contributors/guide/non-code-contributions.md2
-rw-r--r--contributors/guide/pull-requests.md2
-rw-r--r--contributors/guide/release-notes.md2
-rw-r--r--elections/steering/2022/README.md3
-rw-r--r--elections/steering/2022/ballots.csv220
-rw-r--r--elections/steering/2022/candidate-bentheelder.md86
-rw-r--r--elections/steering/2022/candidate-cici37.md42
-rw-r--r--elections/steering/2022/candidate-cpanato.md37
-rw-r--r--elections/steering/2022/candidate-deads2k.md49
-rw-r--r--elections/steering/2022/candidate-lavalamp.md48
-rw-r--r--elections/steering/2022/candidate-mrbobbytables.md96
-rw-r--r--elections/steering/2022/candidate-palnabarun.md47
-rw-r--r--elections/steering/2022/candidate-qedrakmar.md31
-rw-r--r--elections/steering/2022/results.md23
-rw-r--r--elections/steering/2022/templates/election-templates.md111
-rw-r--r--elections/steering/2022/voters.yaml20
-rw-r--r--elections/steering/OWNERS3
-rw-r--r--events/OWNERS3
-rw-r--r--events/awards/README.md4
-rw-r--r--events/awards/award-recipients/2019-award-recipients.md35
-rw-r--r--governance.md4
-rwxr-xr-xhack/generate-devstats-repo-sql.py2
-rw-r--r--liaisons.md28
-rw-r--r--mentoring/OWNERS2
-rw-r--r--mentoring/processes/group-mentoring.md35
-rw-r--r--mentoring/programs/outreachy.md2
-rw-r--r--sig-api-machinery/README.md2
-rw-r--r--sig-architecture/Kubernetes_PRR_Survey_2020Q1.pdfbin0 -> 250544 bytes
-rw-r--r--sig-architecture/Kubernetes_PRR_Survey_2021Q2.pdfbin0 -> 231040 bytes
-rw-r--r--sig-architecture/Kubernetes_PRR_Survey_2022Q2.pdfbin0 -> 218810 bytes
-rw-r--r--sig-architecture/README.md10
-rw-r--r--sig-architecture/generics.md16
-rw-r--r--sig-architecture/naming/recommendations/001-master-control-plane.md2
-rw-r--r--sig-architecture/production-readiness.md6
-rw-r--r--sig-auth/README.md5
-rw-r--r--sig-cli/CONTRIBUTING.md4
-rw-r--r--sig-cli/README.md4
-rw-r--r--sig-cloud-provider/README.md6
-rw-r--r--sig-cluster-lifecycle/README.md5
-rw-r--r--sig-contributor-experience/README.md4
-rw-r--r--sig-docs/CONTRIBUTING.md4
-rw-r--r--sig-docs/README.md18
-rw-r--r--sig-instrumentation/README.md2
-rw-r--r--sig-k8s-infra/README.md21
-rw-r--r--sig-list.md32
-rw-r--r--sig-multicluster/CONTRIBUTING.md4
-rw-r--r--sig-multicluster/README.md2
-rw-r--r--sig-network/README.md1
-rw-r--r--sig-node/OWNERS4
-rw-r--r--sig-node/README.md5
-rw-r--r--sig-node/archive/meeting-notes-2020.md2
-rw-r--r--sig-node/sig-node-contributor-ladder.md4
-rw-r--r--sig-release/README.md19
-rw-r--r--sig-scheduling/README.md10
-rw-r--r--sig-security/README.md2
-rw-r--r--sig-storage/README.md4
-rw-r--r--sig-storage/volume-plugin-faq.md4
-rw-r--r--sig-testing/README.md9
-rw-r--r--sig-usability/README.md2
-rw-r--r--sig-windows/CONTRIBUTING.md8
-rw-r--r--sig-windows/README.md2
-rw-r--r--sigs.yaml241
-rw-r--r--wg-api-expression/README.md2
-rw-r--r--wg-batch/README.md2
-rw-r--r--wg-multitenancy/README.md2
-rw-r--r--wg-structured-logging/README.md4
134 files changed, 2775 insertions, 639 deletions
diff --git a/OWNERS b/OWNERS
index fccb3964..969d4668 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,7 +1,6 @@
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- - alisondy
- cblecker
- idvoretskyi
- jdumars
@@ -11,6 +10,7 @@ approvers:
- sig-contributor-experience-leads
- committee-steering
emeritus_approvers:
+ - alisondy
- castrojo
- calebamiles
- grodrigues3
diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES
index 47ffcb9d..bbfa03c9 100644
--- a/OWNERS_ALIASES
+++ b/OWNERS_ALIASES
@@ -35,7 +35,6 @@ aliases:
- neolit123
- vincepri
sig-contributor-experience-leads:
- - alisondy
- cblecker
- jberkus
- mrbobbytables
@@ -94,7 +93,10 @@ aliases:
sig-testing-leads:
- BenTheElder
- alvaroaleman
+ - aojea
- cjwagner
+ - michelle192837
+ - pohly
- spiffxp
- stevekuznetsov
sig-ui-leads:
@@ -149,10 +151,10 @@ aliases:
- mylesagray
- phenixblue
committee-code-of-conduct:
+ - detiber
- endocrimes
- hlipsig
- jeremyrickard
- - palnabarun
- salaxander
committee-security-response:
- cjcullen
@@ -163,12 +165,12 @@ aliases:
- tabbysable
- tallclair
committee-steering:
+ - BenTheElder
- cblecker
- - dims
+ - cpanato
- justaugustus
- - liggitt
- mrbobbytables
- - parispittman
+ - palnabarun
- tpepper
## BEGIN CUSTOM CONTENT
provider-aws:
diff --git a/archive/wg-component-standard/component-config/README.md b/archive/wg-component-standard/component-config/README.md
new file mode 100644
index 00000000..66e7185b
--- /dev/null
+++ b/archive/wg-component-standard/component-config/README.md
@@ -0,0 +1,980 @@
+This copy of [Versioned Component Configuration Files](vccf-proposal)
+was automatically converted from Google Docs to Markdown
+so that it could be included in the community archive.
+Several interesting comment threads remain unexported but
+available in the Google Doc. You can gain access to the
+doc by joining the `dev@kubernetes.io` mailing list
+(previously `kubernetes-dev@googlegroups.com`). Please
+do not request access via the Google Docs UI, as this
+spams the owners with access requests. Thank you :).
+
+[vccf-proposal]: https://docs.google.com/document/d/1FdaEJUEh091qf5B98HM6_8MS764iXrxxigNIdwHYW9c/
+
+
+# Versioned Component Configuration Files
+
+
+## How Kubelet learned to stop using flags and love versioned config. How your component can, too.
+
+**Shared publicly!**
+
+**Author:** mtaufen@google.com
+
+**Last Updated:** March 28, 2018
+
+**Self Link:** https://goo.gl/GM8KyH
+
+# Background
+
+A long time ago (but still in this galaxy), someone had the bright idea that we could avoid a lot of the pain of deploying and managing command-line flags for each core cluster component (kubelet, kube-proxy, scheduler, etc.) by switching to Kubernetes-style versioned configuration files. This effort became known to the community as _component configuration_, or simply _componentconfig_. At its origin, a consistent philosophy for _what_ componentconfig should look like did not exist.
+
+Last year, mikedanese@ did a great job of compiling the ideas behind componentconfig (ideas Mike, other folks, and I were discussing in several GitHub threads) into a single [document](https://docs.google.com/document/d/1arP4T9Qkp2SovlJZ_y790sBeiWXDO6SG10pZ_UUU-Lc), in the hope that we could provide standard guidelines and improve consistency across the project. Mike's document catalyzed our push to try componentconfig in a few components, and here we are almost a year later.
+
+As of Kubernetes v1.10, the Kubelet is firmly on its way to migrating from flags to versioned configuration files. It can consume a beta-versioned config file and many flags are now deprecated and pending removal in favor of this file. Many remaining flags will be replaced by the file over time. Additionally, the kube-proxy component is very close to having a beta-versioned config file of its own.
+
+This document restates the motivation and records lessons from OSS work over the past year:
+
+
+
+* a brief review of why we want versioned config files for all core cluster components
+* the _ideal_ state of a component's configuration API
+* how to migrate an existing component to versioned configuration files (Kubelet example)
+* remaining work
+
+
+# Why versioned config files?
+
+The short answer is that flags are nonstandard interfaces with weak stability guarantees. They are confusing and hard to deploy, and this is the opposite of what Kubernetes should be.
+
+Command-line flags present a number of problems:
+
+
+
+* Flags are a public API, but are not versioned and cannot be versioned separately from the binary:
+ * For _core_ components the binary version is coupled to the Kubernetes release version. We use semantic versioning for our binaries, but can't bump a major version unless Kubernetes does:
+ * We _shouldn't_ ever **fix bad defaults** for existing flag names without bumping the major version of a binary. In reality, we get around this by giving advance warning and technically breaking semantic versioning of the binary.
+ * We _shouldn't_ ever **remove a flag** without bumping the major version of a binary. In reality we use a [flag deprecation policy](https://kubernetes.io/docs/reference/deprecation-policy/#deprecating-a-flag-or-cli) that allows us to technically break semantic versioning of the binary as long as we give advance warning.
+ * We incrementally deprecate individual parameters over time, instead of guaranteeing a consistent set of parameters for the life of an API version. This confuses users and results in a less stable API.
+ * We can't typically deploy flag-based configuration independently from a binary version upgrade, because the compatibility of the interface is so tightly coupled.
+* Values are often re-configured, which precipitates additional tools to parameterize and write configuration for system-specific process management agents (e.g. systemd). We can eliminate the dependency on parameterization tools if process manager config is static; e.g. the configured command line just needs to reference a file in a fixed location.
+* Developers inevitably embed structured data in strings and invent one-off parsers to process their flags. This invites bugs.
+* mikedanese@ outlined more issues in his [document](https://docs.google.com/document/d/1arP4T9Qkp2SovlJZ_y790sBeiWXDO6SG10pZ_UUU-Lc).
+
+Core goals of componentconfig include:
+
+
+
+* Standardize the configuration approach for all core cluster components.
+* Enable dynamic configuration deployment mechanisms.
+
+Conveniently, Kubernetes has similar goals:
+
+
+
+* Standardize the configuration approach for cluster infrastructure.
+* Enable dynamic deployment mechanisms.
+
+Kubernetes had already paved the way: It has what we need to version our configuration interfaces, decouple configuration changes from binary changes, represent configuration in a structured format, and deploy configuration in a dynamic environment.
+
+
+
+* Versioning was accomplished via the API machinery's group/version mechanism.
+* Adhering to the same API guarantees as the core Kubernetes APIs provides a stable configuration surface, and allows us to decouple the configuration interface from releases that support the same API version.
+* Kubernetes API objects are defined as Go structs, which means we don't have to parse strings to deal with structured config.
+* Kubernetes has deployment mechanisms (ConfigMap volume source) that work well for pushing new versions of configuration files into production.
+* There is no requirement to restart a process when you change a file, unlike flags.
+
+**All core Kubernetes components should eventually consume their configuration via versioned configuration files, instead of command-line flags.**
+
+
+# tl;dr: What should a component do?
+
+**This is the _ideal_ command-line API for every core cluster component:**
+
+```console
+$ component --config=path
+```
+
+The component exposes _only one_ flag on its command line. This flag provides the file path to a config file with a versioned format. All other relevant configuration information is referenced via this file.
+
+_One, stable flag where everything else is versioned config_ is the ideal API recommended by componentconfig. If you are creating a new component from scratch, begin and end with this API.
+
+For several reasons discussed in the next section, the migration from flags to versioned config is a serious journey for most existing components, and these may want or even need a couple more flags at the end of the day.
+
+In general, every core cluster component should:
+
+
+
+* Maintain a distinct Kubernetes API group called {component}.config.k8s.io, which contains versioned sets of config objects - primarily a {Component}Configuration struct in each version. This struct, serialized to disk by the API machinery, is the file format for configuration.
+* Ensure {component}.config.k8s.io adheres to the standard Kubernetes [API deprecation policy](https://kubernetes.io/docs/reference/deprecation-policy/#deprecating-parts-of-the-api), [API conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md), and [API changes policy](https://github.com/kubernetes/community/blob/master/contributors/devel/api_changes.md).
+* Expose a flag named --config, which accepts a path to a file that contains a serialized {Component}Configuration struct.
+* Use the Kubernetes API machinery to deserialize the config file data, apply defaults, and convert to an internal version for runtime use.
+* Validate the internal version prior to using it. If validation fails, refuse to run with the specified configuration.
+* Ensure third-party libraries aren't leaking flags.
+
+We discuss how to migrate a component from flags to versioned config files in the next section.
+
+
+# In-depth: How to migrate a component from flags to a versioned config file
+
+
+## Take back control of the command-line API
+
+Our goal is to _decrease_ flag usage in favor of versioned config files. It will help to decrease the growth rate of the component's flag API. There are at least two sources of this growth:
+
+
+
+* PRs that directly extend the flag API.
+* Adding or updating third-party libraries.
+
+Whoever owns the componentconfig effort for a given component should be in-the-loop on PRs that add new flags. This person has a strong interest in saying "no" to new flags, because it increases the number of things they have to carefully migrate to the new versioned config file API. When new flags really prove necessary, this person still has a strong interest in ensuring they will be compatible when migrated.
+
+The second case is an artifact of many libraries registering flags globally (global flag sets are provided by both the _flag_ and _pflag_ libraries). Since most components just parse the global flag sets by default, they tend to accumulate the flags from these libraries. The libraries are impolite, and the components are typically too trusting. Each component should be more cautious by:
+
+
+
+* constructing its own, isolated flag set
+* explicitly registering necessary flags from third-party libraries into this flag set
+* parsing _only_ the flags in this flag set
+
+You can find the example of how the Kubelet took back control of its flag set in [Explicit kubelet flags](https://github.com/kubernetes/kubernetes/pull/57613) (see also the follow-up PR, [#58095](https://github.com/kubernetes/kubernetes/pull/58095)).
+
+Many components indiscriminately add the global flag set to their primary flag set via `pflag.CommandLine.AddGoFlagSet(flag.CommandLine)`. Further, most components delegate their flag parsing, help text generation, etc. to [Cobra](https://github.com/spf13/cobra). Cobra implicitly adds flag.CommandLine in several cases, which unfortunately gets in the way of explicit control over the flag API.
+
+In order for Cobra to parse flags for you, it has to be made aware of your flagset. This is achieved by registering flags to the command's flag set. Cobra will implicitly merge the global command lines with this flag set when it parses flags. Consider the following Go program, which creates a local, isolated flag set (as recommended above). The program also registers a global flag, which we _hope_ won't be parsed, because it is not explicitly registered with our local flag set.
+
+
+```go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/spf13/cobra"
+ "github.com/spf13/pflag"
+)
+
+const use = "testcmd"
+
+var (
+ globalFlagTarget string
+ localFlagTarget string
+)
+
+func init() {
+ pflag.StringVar(&globalFlagTarget, "global-flag", globalFlagTarget, "globally-registered flag")
+}
+
+func NewLocalFlagSet() *pflag.FlagSet {
+ fs := pflag.NewFlagSet(use, pflag.ContinueOnError)
+ fs.StringVar(&localFlagTarget, "local-flag", localFlagTarget, "locally-registered flag")
+ return fs
+}
+
+func NewTestCmd() *cobra.Command {
+ cmd := &cobra.Command{
+ Use: use,
+ Run: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("globalFlagTarget: %q\n", globalFlagTarget)
+ fmt.Printf("localFlagTarget: %q\n", localFlagTarget)
+ },
+ }
+ cmd.Flags().AddFlagSet(NewLocalFlagSet())
+ return cmd
+}
+
+func main() {
+ cmd := NewTestCmd()
+ if err := cmd.Execute(); err != nil {
+ fmt.Fprintf(os.Stderr, "error: %v\n", err)
+ os.Exit(1)
+ }
+}
+```
+
+
+If we run the program, we see that this is not the case. The global flag is parsed by Cobra:
+
+
+```console
+$ testcmd --global-flag hello
+
+globalFlagTarget: "hello"
+localFlagTarget: ""
+```
+
+
+You can circumvent this by disabling Cobra's flag parsing. This, unfortunately, requires that you both parse flags and implement --help short-circuiting on your own. The next example attempts to extend the above to do so.
+
+
+```go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/spf13/cobra"
+ "github.com/spf13/pflag"
+)
+
+const use = "testcmd"
+
+var (
+ globalFlagTarget string
+ localFlagTarget string
+)
+
+func init() {
+ pflag.StringVar(&globalFlagTarget, "global-flag", globalFlagTarget, "globally-registered flag")
+}
+
+func NewLocalFlagSet() *pflag.FlagSet {
+ fs := pflag.NewFlagSet(use, pflag.ContinueOnError)
+ fs.StringVar(&localFlagTarget, "local-flag", localFlagTarget, "locally-registered flag")
+ return fs
+}
+
+func NewTestCmd() *cobra.Command {
+ localFlagSet := NewLocalFlagSet()
+ cmd := &cobra.Command{
+ Use: use,
+ DisableFlagParsing: true,
+ Run: func(cmd *cobra.Command, args []string) {
+ // parse our local flag set
+ if err := localFlagSet.Parse(args); err != nil {
+ cmd.Usage()
+ fatal(err)
+ }
+ // --help
+ help, err := localFlagSet.GetBool("help")
+ if err != nil {
+ fatal(fmt.Errorf(`"help" flag is non-bool, programmer error, please correct`))
+ }
+ if help {
+ cmd.Help()
+ return
+ }
+ // print the flag values
+ fmt.Printf("globalFlagTarget: %q\n", globalFlagTarget)
+ fmt.Printf("localFlagTarget: %q\n", localFlagTarget)
+ },
+ }
+ localFlagSet.BoolP("help", "h", false, fmt.Sprintf("help for %s", cmd.Name()))
+ // Cobra still needs to be aware of our flag set to generate usage and help text
+ cmd.Flags().AddFlagSet(localFlagSet)
+ return cmd
+}
+
+func fatal(err error) {
+ fmt.Fprintf(os.Stderr, "error: %v\n", err)
+ os.Exit(1)
+}
+
+func main() {
+ cmd := NewTestCmd()
+ if err := cmd.Execute(); err != nil {
+ fatal(err)
+ }
+}
+```
+
+
+When we run the program and attempt to set the global flag, we see that the global flag is now rejected, but we also see that it is still included in the usage text!
+
+
+```console
+$ testcmd --global-flag hello
+Usage:
+ testcmd [flags]
+
+Flags:
+ --global-flag string globally-registered flag
+ -h, --help help for testcmd
+ --local-flag string locally-registered flag
+error: unknown flag: --global-flag
+```
+
+
+The same thing happens when we pass --help:
+
+
+```console
+$ testcmd --help
+Usage:
+ testcmd [flags]
+
+Flags:
+ --global-flag string globally-registered flag
+ -h, --help help for testcmd
+ --local-flag string locally-registered flag
+```
+
+
+This is because Cobra also uses the global flags when generating usage and help text. This can be circumvented by doing-it-yourself, again.
+
+
+```go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/spf13/cobra"
+ "github.com/spf13/pflag"
+)
+
+const use = "testcmd"
+
+var (
+ globalFlagTarget string
+ localFlagTarget string
+)
+
+func init() {
+ pflag.StringVar(&globalFlagTarget, "global-flag", globalFlagTarget, "globally-registered flag")
+}
+
+func NewLocalFlagSet() *pflag.FlagSet {
+ fs := pflag.NewFlagSet(use, pflag.ContinueOnError)
+ fs.StringVar(&localFlagTarget, "local-flag", localFlagTarget, "locally-registered flag")
+ return fs
+}
+
+func NewTestCmd() *cobra.Command {
+ localFlagSet := NewLocalFlagSet()
+ cmd := &cobra.Command{
+ Use: use,
+ DisableFlagParsing: true,
+ Run: func(cmd *cobra.Command, args []string) {
+ // parse our local flag set
+ if err := localFlagSet.Parse(args); err != nil {
+ cmd.Usage()
+ fatal(err)
+ }
+ // --help
+ help, err := localFlagSet.GetBool("help")
+ if err != nil {
+ fatal(fmt.Errorf(`"help" flag is non-bool, programmer error, please correct`))
+ }
+ if help {
+ cmd.Help()
+ return
+ }
+ // print the flag values
+ fmt.Printf("globalFlagTarget: %q\n", globalFlagTarget)
+ fmt.Printf("localFlagTarget: %q\n", localFlagTarget)
+ },
+ }
+ localFlagSet.BoolP("help", "h", false, fmt.Sprintf("help for %s", cmd.Name()))
+
+ // ugly, but necessary, because Cobra's default UsageFunc and HelpFunc pollute the flagset with global flags
+ const usageFmt = "Usage:\n %s\n\nFlags:\n%s"
+ cmd.SetUsageFunc(func(cmd *cobra.Command) error {
+ fmt.Fprintf(cmd.OutOrStderr(), usageFmt, cmd.UseLine(), localFlagSet.FlagUsagesWrapped(2))
+ return nil
+ })
+ cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) {
+ fmt.Fprintf(cmd.OutOrStdout(), usageFmt, cmd.UseLine(), localFlagSet.FlagUsagesWrapped(2))
+ })
+
+ return cmd
+}
+
+func fatal(err error) {
+ fmt.Fprintf(os.Stderr, "error: %v\n", err)
+ os.Exit(1)
+}
+
+func main() {
+ cmd := NewTestCmd()
+ if err := cmd.Execute(); err != nil {
+ fatal(err)
+ }
+}
+```
+
+
+And now things are more as we expect.
+
+
+```console
+$ testcmd --global-flag hello
+Usage:
+ testcmd [flags]
+
+Flags:
+ -h, --help help for testcmd
+ --local-flag string locally-registered flag
+error: unknown flag: --global-flag
+
+$ testcmd --help
+Usage:
+ testcmd [flags]
+
+Flags:
+ -h, --help help for testcmd
+ --local-flag string locally-registered flag
+```
+
+
+**Alternative solutions to piecewise-DIY-overrides are highly welcomed** (if someone wants to write a Cobra replacement that meets our needs while managing state more cleanly, I won't stop you). As all core components will need to solve this one way or another, a centralized utility library for working with Cobra would be useful, at the very least.
+
+
+### Use a flags struct
+
+The migration from flags to versioned config files will be much easier if you first centralize where your target flag values, registrations, and deprecations happen. If you have a single structure definition that contains all of the component's flag-targeted values, you can focus on moving fields from this structure into your versioned configuration API.
+
+The Kubelet uses a structure called KubeletFlags, with an associated `func (f *KubeletFlags) AddFlags(fs *pflag.FlagSet)` to handle flag registrations and deprecations. Note that AddFlags does not register global flags from third-party libraries; it is only concerned with flags in the KubeletFlags structure.
+
+We also recommend that defaulting behavior for flags be clearly separated from the flag registrations. Kubelet initializes flag defaults when constructing a new KubeletFlags, and re-uses these values when registering flags. This makes it easy to see which defaults are applied, which makes it easy to migrate those defaults to versioned config. This also prevents AddFlags from overriding values in the flags struct, in the event that you need to modify values before registering flags.
+
+Finally, the Kubelet offers a function for validating the flags structure. You may choose to centralize validation here, which will make it easier to migrate that validation to your versioned config, and will also elevate configuration errors to sooner in the component's lifecycle. **It is important to point out that burying flag validation in application logic is an anti-pattern that should be avoided whenever possible. Given the opportunity, components should be refactored to centralize validation.** The Kubelet unfortunately falls into the "validation all over the place" trap, and will eventually need to be refactored to centralize validation.
+
+KubeletFlags currently contains some flags that are only registered on specific operating systems (e.g. Windows). These fields are prefixed with the name of the OS (e.g. `Windows*`) and registrations are handled by OS-specific implementations of the addOSFlags method (managed via Go build tags).
+
+This excerpt from the Kubelet's flag code gives the general structure:
+
+
+<table>
+ <tr>
+ <td>cmd/kubelet/app/options/options.go
+ </td>
+ </tr>
+ <tr>
+ <td>type KubeletFlags struct {
+<p>
+ KubeletConfigFile string
+<p>
+ …
+<p>
+}
+<p>
+func NewKubeletFlags() *KubeletFlags {
+<p>
+ return &KubeletFlags{
+<p>
+ // apply defaults here
+<p>
+ }
+<p>
+}
+<p>
+func (f *KubeletFlags) AddFlags(fs *pflag.FlagSet) {
+<p>
+ f.addOSFlags(fs)
+<p>
+ fs.StringVar(&f.KubeletConfigFile, "config", f.KubeletConfigFile, "…")
+<p>
+ …
+<p>
+}
+<p>
+func ValidateKubeletFlags(f *KubeletFlags) error {
+<p>
+ // validate here, return error if validation fails, nil otherwise
+<p>
+ …
+<p>
+}
+ </td>
+ </tr>
+ <tr>
+ <td>cmd/kubelet/app/options/osflags_windows.go
+ </td>
+ </tr>
+ <tr>
+ <td>// +build windows
+<p>
+…
+<p>
+func (f *KubeletFlags) addOSFlags(fs *pflag.FlagSet) {
+<p>
+ // add windows flags here
+<p>
+}
+ </td>
+ </tr>
+ <tr>
+ <td>cmd/kubelet/app/options/osflags_other.go
+ </td>
+ </tr>
+ <tr>
+ <td>// +build !windows
+<p>
+…
+<p>
+func (f *KubeletFlags) addOSFlags(fs *pflag.FlagSet) {
+<p>
+ // noop
+<p>
+}
+ </td>
+ </tr>
+</table>
+
+
+
+## Create component's config API group
+
+Components should expose versioned Kubernetes-style configuration APIs. This section explains how to do so.
+
+As explained in the [API Conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md) doc, Kubernetes API objects consist of a canonical internal version, and multiple external versions. In a given release, it is possible to convert between any of the external versions by first converting to the internal version, then converting from the internal version to the target version.
+
+All versions live together in the same API group. Typically, an API group's source tree consists of a top-level directory that implements the package for the internal version, and subdirectories corresponding to the packages that implement each external version. There are usually a few additional files that implement various utilities. Finally, there will be generated files (omitted from the below file tree) for conversions, deep-copies, and defaulter registration.
+
+For example, the file hierarchy of the Kubelet's _kubelet.config.k8s.io_ API group looks like this:
+
+
+```
+- pkg/kubelet/apis/kubeletconfig
+| - fuzzer // utility for fuzzing kubelet.config.k8s.io objects
+| | - fuzzer.go
+|
+| - scheme // utility for scheme and codecs (serializations and conversions)
+| | - scheme.go
+| | - scheme_test.go // round trip tests that use the fuzzer
+|
+| - v1beta1 // implementation of v1beta1 external type
+| | - defaults.go // v1beta1 defaults
+| | - doc.go // various build tags that trigger code generation
+| | - register.go // functions for registering API with a scheme
+| | - types.go // v1beta1 versions of kubelet.config.k8s.io objects
+|
+| - validation // utility for validating kubelet.config.k8s.io objects
+| | - validation.go
+|
+| - doc.go // various build tags that trigger code generation
+| - helpers.go // utility functions
+| - helpers_test.go // tests for utility functions
+| - register.go //
+| - types.go
+```
+
+
+**When creating your component's API group, please refer to upstream Kubernetes for the most up-to-date example of how it should look, and assign [@mtaufen](https://github.com/mtaufen) or [@liggitt](https://github.com/liggitt) to review your PR.** A few important points to remember are:
+
+
+
+* The API group should be named _{component}.config.k8s.io_, where _{component}_ is the name of your component. It is conventional to also name the directory containing the API group _{component}config_, e.g. _kubeletconfig_.
+* You should start by creating only a _v1alpha1_ external config version, and migrating fields from your flags structure to the objects in this version. Loading config from a file should be considered an alpha feature until you are confident enough in your _v1alpha1_ version to move it to beta.
+* If your configuration can contain relative file paths, these paths should be resolved relative to the location to the config file when loaded. The Kubelet has a utility function (KubeletConfigurationPathRefs in file _helpers.go_) that enumerates these fields.
+* Once you have created your API group (and whenever you update your config structs), you can run make clean\_generated; make generated\_files to produce the generated conversions, deep-copies, and defaulter registrations.
+* At the beginning, most componentconfig APIs will only load a single object, though this object may be a composition of subobjects. E.g. the Kubelet just loads a KubeletConfiguration, which is a composition of subobjects defined in the _types.go_ files.
+* Isomorphic objects must exist in both the internal and external versions for conversions to be generated.
+* Only the internal, canonical type needs to be validated. External-versioned config files must be converted to this representation and then validated before your component uses the configuration.
+* You should not treat nil and empty container types (maps and slices) as semantically different in your API, as this has caused issues with serializers in the past. In practice, this means all map and slice fields should be +optional and omitempty (see [Optional vs. Required](https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#optional-vs-required)). In general, it is rare to have any required config fields, as config versions should ship with functional defaults.
+* You don't have to worry about supporting loading config from Proto yet, but you should not rule this out as an eventual possibility.
+* Try to keep the order of the fields the same between the internal and external types, the defaulter, and the flag registrations. This makes the code much easier to read and maintain.
+* Make component configs modular and composable. Share structs for the same functionality in different components (think of PodSpec shared in many of the core resources).
+* **TODO:** please add more if necessary
+
+
+## Make it possible to parse flags into the internal config object
+
+In order to maintain command-line compatibility, it must still be possible to parse flags for a period of time after they become available in your config API. When a field moves from your flags structure to your config structure, you should update the corresponding flag registration to target the internal config structure. It helps to keep all flag registrations close to each other.
+
+For example, Kubelet provides some additional utilities in its options package for targeting KubeletConfiguration values via flags: a constructor (similar to NewKubeletFlags) that returns a default KubeletConfiguration and a function for registering flags that target this config.
+
+
+<table>
+ <tr>
+ <td>cmd/kubelet/app/options/options.go
+ </td>
+ </tr>
+ <tr>
+ <td>func NewKubeletConfiguration() (*kubeletconfig.KubeletConfiguration, error) {
+<p>
+ scheme, _, err := kubeletscheme.NewSchemeAndCodecs()
+<p>
+ if err != nil {
+<p>
+ return nil, err
+<p>
+ }
+<p>
+ versioned := &v1beta1.KubeletConfiguration{}
+<p>
+ scheme.Default(versioned)
+<p>
+ config := &kubeletconfig.KubeletConfiguration{}
+<p>
+ if err := scheme.Convert(versioned, config, nil); err != nil {
+<p>
+ return nil, err
+<p>
+ }
+<p>
+ applyLegacyDefaults(config)
+<p>
+ return config, nil
+<p>
+}
+<p>
+func AddKubeletConfigFlags(fs *pflag.FlagSet, c *kubeletconfig.KubeletConfiguration) {
+<p>
+ // register flags here, in the same style as in KubeletFlags.AddFlags
+<p>
+ …
+<p>
+}
+ </td>
+ </tr>
+</table>
+
+
+
+## Improve/fix defaults between flags and versioned config
+
+Note in the previous example from the Kubelet, there is a call to a function called applyLegacyDefaults. With the move to versioned config files, each API version can have its own set of default values. Flags implicitly constitute their own "version," so it is possible to have different defaults when you load config from a file versus when you load config from flags. NewKubeletConfiguration is specifically constructing a config object to be targeted by flags, so it modifies the values to contain the defaults associated with flags.
+
+The ability to separate defaults across versions allowed us to use better defaults in _v1beta1_ (see [Secure Kubelet's componentconfig defaults while maintaining CLI compatibility](https://github.com/kubernetes/kubernetes/pull/59666)) than the Kubelet's flag API, without breaking compatibility. If you have defaults in your component's flag API that you would like to change, this is the opportunity to do so.
+
+
+## Incrementally migrate flags to your config API
+
+For many flags, you will simply be able to:
+
+
+
+1. Cut the field from your flags struct.
+2. Paste the field into both the internal and versioned config structs.
+3. Ensure the field tags are correct on the versioned config struct (json, omitempty, etc.).
+4. Move the default into the versioned defaulter, if the old default should be kept. \
+If the versioned default should be different than the old default value, add the new default to the versioned defaulter and the old default into applyLegacyDefaults.
+5. Move the flag registration to the AddFlags function for your internal config struct.
+
+Some, however, will need more work:
+
+
+
+* If a flag embeds structure in a string format (e.g. a list or map), you should use the appropriate language structures (e.g. Go slice or map) to represent that structure in your config API, which will facilitate writing JSON and YAML files. For backwards compatibility, you can write a shim to parse the flag into the structured field. See these PRs for examples:
+ * [Make feature gates loadable from a map[string]bool](https://github.com/kubernetes/kubernetes/pull/53025)
+ * [Lift embedded structure out of ManifestURLHeader field](https://github.com/kubernetes/kubernetes/pull/54643)
+ * [Lift embedded structure out of eviction-related KubeletConfiguration fields](https://github.com/kubernetes/kubernetes/pull/54823)
+ * [ColonSeparatedMultimapStringString: allow multiple Set invocations with default override](https://github.com/kubernetes/kubernetes/pull/55254)
+* If a flag enables or configures alpha or experimental features which do not have an associated [feature gate](https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apiserver/pkg/util/feature/feature_gate.go) (see _[kube\_features.go](https://github.com/kubernetes/kubernetes/blob/master/pkg/features/kube_features.go)_ for a list of gates), you must add a gate or graduate the feature to beta before moving the flag to versioned config. The [API changes policy](https://github.com/kubernetes/community/blob/master/contributors/devel/api_changes.md) allows for alpha fields in beta or GA-versioned config, but only if the behavior configured via the fields is guarded by a feature gate and disabled by default (see [Adding Unstable Features to Stable Versions](https://github.com/kubernetes/community/blob/master/contributors/devel/api_changes.md#adding-unstable-features-to-stable-versions)). Note that if you add an alpha field to beta or GA-versioned config, you permanently exhaust the name you choose for the field; if you change the name before the field graduates from alpha, you must tombstone the old name and never reuse it.
+* If a field requires a [non-zero](https://golang.org/ref/spec#The_zero_value) default value, but the zero-value is _still_ a valid option, it should carry a pointer type in the versioned config struct. This allows the defaulter to differentiate between omitted fields and fields explicitly configured to the zero value. For many fields, especially paths, it is sufficient to simply use the zero value as the default.
+ * Try to avoid pointer fields on the internal type, so that you need fewer nil checks in your code. Let the defaulter handle nils on the external type. You may need to add a [conversion function](https://github.com/kubernetes/kubernetes/blob/e8388e035b1f08d00dd2bf811d9587c6b7589ace/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go) to facilitate pointer to non-pointer conversion generation.
+* If a field is a nilable container type (slice or map) and requires a non-empty default, users must always explicitly set the field to achieve non-default values. If specifying an empty container type was previously valid (e.g. to disable), you will need to provide an explicit substitute for doing so. Since [some serializers (e.g. proto)](https://github.com/kubernetes/kubernetes/issues/43203) do not differentiate between nil and empty container types, neither can we.
+ * See [Add 'none' option to EnforceNodeAllocatable](https://github.com/kubernetes/kubernetes/pull/59515) as an example.
+
+Finally, some flags should not yet be migrated to versioned config. These are unsolved problems, and you should wait to migrate until they can be solved with a consistent pattern across all core components (for more detail, see _Remaining work_).
+
+
+
+* Some flags are only registered in builds for specific operating systems (e.g. the Kubelet's --windows-service flag). We have not settled on how these sorts of fields should be represented in versioned config files, so please refrain from migrating these flags for now.
+* Some flags specify instance-specific values (e.g. the Kubelet's --hostname-override flag). It is impossible to share the same instance-specific value between multiple instances of a component (e.g. you wouldn't want two nodes with the same hostname). If there is (or you suspect) a use case where you want to share the same config source between multiple instances of a component (e.g. if you want to deliver config files via a ConfigMap), you should refrain from migrating these flags for now.
+
+**Note: Do not use unversioned types in your versioned config; stick to language primitives and types from versioned APIs. That said, even using types from other versioned APIs carries risk: you'll have to respond if that API version is deprecated.**
+
+
+## Component Bootstrap
+
+This section describes the general steps for bootstrapping a component to the point that it knows it has a valid internal-versioned configuration to run with. This should be sufficient for most components. This section begins with the Run method on the Cobra command, and ends with validation of a fully-resolved internal config object.
+
+
+### Initial Flags Parse
+
+The first thing your component should do is parse its command line into an instance of the flags struct and the internal-verisoned config struct, with defaults applied prior to parsing flags. This is shown in the example in the _Take back control of the command-line API_ section. If you have validation for the flags struct, this is an appropriate place to perform it.
+
+
+### Load config file, convert to internal version, resolve relative paths
+
+Once the initial flags parse is complete, check whether the user provided a path to --config. If so, load the file at that path (if relative, --config should be resolved relative to the Kubelet's working directory) and unmarshal it via the API machinery's UniversalDecoder, which should perform defaulting and conversion to the internal type. For example:
+
+
+<table>
+ <tr>
+ <td>pkg/kubelet/kubeletconfig/util/codec/codec.go
+ </td>
+ </tr>
+ <tr>
+ <td>// DecodeKubeletConfiguration decodes a serialized KubeletConfiguration to the internal type
+<p>
+func DecodeKubeletConfiguration(kubeletCodecs *serializer.CodecFactory, data []byte) (*kubeletconfig.KubeletConfiguration, error) {
+<p>
+ // the UniversalDecoder runs defaulting and returns the internal type by default
+<p>
+ obj, gvk, err := kubeletCodecs.UniversalDecoder().Decode(data, nil, nil)
+<p>
+ if err != nil {
+<p>
+ return nil, fmt.Errorf("failed to decode, error: %v", err)
+<p>
+ }
+<p>
+ internalKC, ok := obj.(*kubeletconfig.KubeletConfiguration)
+<p>
+ if !ok {
+<p>
+ return nil, fmt.Errorf("failed to cast object to KubeletConfiguration, unexpected type: %v", gvk)
+<p>
+ }
+<p>
+ return internalKC, nil
+<p>
+}
+ </td>
+ </tr>
+</table>
+
+
+Next, any fields in the config that specify file paths should be resolved relative to the location of the config file. The Kubelet has a helper that returns pointers to the path fields for a given config (and also a test to detect when new fields are added).
+
+
+<table>
+ <tr>
+ <td>pkg/kubelet/apis/kubeletconfig/helpers.go
+ </td>
+ </tr>
+ <tr>
+ <td>// KubeletConfigurationPathRefs returns pointers to all of the KubeletConfiguration fields that contain filepaths.
+<p>
+// You might use this, for example, to resolve all relative paths against some common root before
+<p>
+// passing the configuration to the application. This method must be kept up to date as new fields are added.
+<p>
+func KubeletConfigurationPathRefs(kc *KubeletConfiguration) []*string {
+<p>
+ paths := []*string{}
+<p>
+ paths = append(paths, &kc.StaticPodPath)
+<p>
+ paths = append(paths, &kc.Authentication.X509.ClientCAFile)
+<p>
+ paths = append(paths, &kc.TLSCertFile)
+<p>
+ paths = append(paths, &kc.TLSPrivateKeyFile)
+<p>
+ paths = append(paths, &kc.ResolverConfig)
+<p>
+ return paths
+<p>
+}
+ </td>
+ </tr>
+</table>
+
+
+These pointers can be used to resolve relative paths when loading the config file:
+
+
+<table>
+ <tr>
+ <td>pkg/kubelet/kubeletconfig/configfiles/configfiles.go
+ </td>
+ </tr>
+ <tr>
+ <td>// resolveRelativePaths makes relative paths absolute by resolving them against `root`
+<p>
+func resolveRelativePaths(paths []*string, root string) {
+<p>
+ for _, path := range paths {
+<p>
+ // leave empty paths alone, "no path" is a valid input
+<p>
+ // do not attempt to resolve paths that are already absolute
+<p>
+ if len(*path) > 0 && !filepath.IsAbs(*path) {
+<p>
+ *path = filepath.Join(root, *path)
+<p>
+ }
+<p>
+ }
+<p>
+}
+ </td>
+ </tr>
+</table>
+
+
+
+### Enforce flag precedence
+
+If you were able to move all of your command-line flags to versioned config (e.g. you had no flags in the OS-specific, instance-specific, or alpha-not-feature-gated categories), you may not need this step. If you have flags remaining, however, you will need to incrementally migrate them into your API without breaking backwards compatibility.
+
+Since moving a field to the config structs implicitly adds a default value for that field, you must override this value with the corresponding flag value as long as the flag is set on the command line. Otherwise, simply upgrading a component to a version that migrates a flag to versioned config could break the command-line API. See [#56171](https://github.com/kubernetes/kubernetes/issues/56171) or [Graduating KubeletFlags subfields to KubeletConfiguration](https://docs.google.com/document/d/18-MsChpTkrMGCSqAQN9QGgWuuFoK90SznBbwVkfZryo) for more detail.
+
+The Kubelet achieves this by constructing a flag set that can parse the entire command line, but only populates the config struct as a result of parsing. All non-config flags registrations target mock values, while config flags target real values.
+
+The mock values for global flags are generated by the below helper in the Kubelet, which substitutes values with noop Set operations. NoOp is implemented by [k8s.io/apiserver/pkg/util/flag/noop.go](https://github.com/kubernetes/apiserver/blob/master/pkg/util/flag/noop.go).
+
+
+<table>
+ <tr>
+ <td>cmd/kubelet/app/server.go
+ </td>
+ </tr>
+ <tr>
+ <td>// newFakeFlagSet constructs a pflag.FlagSet with the same flags as fs, but where
+<p>
+// all values have noop Set implementations
+<p>
+func newFakeFlagSet(fs *pflag.FlagSet) *pflag.FlagSet {
+<p>
+ ret := pflag.NewFlagSet("", pflag.ExitOnError)
+<p>
+ ret.SetNormalizeFunc(fs.GetNormalizeFunc())
+<p>
+ fs.VisitAll(func(f *pflag.Flag) {
+<p>
+ ret.VarP(flag.NoOp{}, f.Name, f.Shorthand, f.Usage)
+<p>
+ })
+<p>
+ return ret
+<p>
+}
+ </td>
+ </tr>
+</table>
+
+
+We mock component flags by simply targeting a throwaway flags struct. The config flags are simply registered via the AddKubeletConfigFlags function.
+
+Though it is usually sufficient to enforce precedence at flag granularity, for some map fields you may instead wish to enforce precedence at key-value pair granularity. It is generally simpler to avoid doing so, but the FeatureGates field is one example where the Kubelet chooses a piecewise precedence semantic: the key-value pairs from the command line and config file are merged, with the command-line pairs taking precedence. This was done specifically to enable feature rollout via the alpha Dynamic Kubelet Config feature, even when some feature gates are set on the command-line.
+
+
+<table>
+ <tr>
+ <td>cmd/kubelet/app/server.go
+ </td>
+ </tr>
+ <tr>
+ <td>// Remember original feature gates, so we can merge with flag gates later
+<p>
+original := kc.FeatureGates
+<p>
+// re-parse flags
+<p>
+if err := fs.Parse(args); err != nil {
+<p>
+ return err
+<p>
+}
+<p>
+// Add back feature gates that were set in the original kc, but not in flags
+<p>
+for k, v := range original {
+<p>
+ if _, ok := kc.FeatureGates[k]; !ok {
+<p>
+ kc.FeatureGates[k] = v
+<p>
+ }
+<p>
+}
+ </td>
+ </tr>
+</table>
+
+
+
+### Validate the config
+
+At this point, you should have a configuration that is ready for validation:
+
+
+
+* A config file was loaded, if specified.
+* Relative paths in the config file were resolved relative to the location of the config file.
+ * Note that relative paths from flags are implicitly relative to the Kubelet's working directory, as this is the default behavior of Go's file system utilities.
+* Flag precedence has been enforced, including feature gate merging.
+
+The next step is to validate this configuration with the validation functions that accompany your API group. If your validation incorporates feature gates, remember to set the feature gates from the config before validating. You can use the [FeatureGate.SetFromMap](https://github.com/kubernetes/kubernetes/blob/52ed0368f8d076236ada19b09828f2f9e2ebb6ef/staging/src/k8s.io/apiserver/pkg/util/feature/feature_gate.go#L84) function to set the gates directly from the field in your config object.
+
+**🎉🎉Congrats, your component now has a versioned config file API! 🎉🎉**
+
+
+# Remaining work
+
+This section enumerates known issues and shares my opinion on the way forward. The below is all open to discussion.
+
+
+## Versioned config for third-party flag values
+
+One item we have not discussed in detail is how to migrate flags from third-party libraries to your versioned config file API.
+
+It is, of course, best if you don't expose these flags at all, but in some cases (e.g. _glog_), doing so is infeasible. In these cases, you can provide a field in your config API for each third-party value and manually plumb the field's value through a flag set with the corresponding flag registered to it.
+
+**Be careful! If a third-party library removes a flag in an update (say, their deprecation policy doesn't align with ours), you'll still be on the hook for maintaining the behavior of fields in your config API.**
+
+
+## Unsolved problems
+
+
+### Per-instance configuration
+
+We left instance-specific parameters as flags, because a single config source may need to be shared across multiple instances. We should not, however, abandon these parameters to the command-line.
+
+The most obvious solution, to me, seems to be the introduction of an --instance-config flag, which accepts a file that contains the instance-specific parameters in a format defined by the component's config API group. This way, instance-specific parameters can be covered by the versioned config file API.
+
+
+### OS-specific configuration
+
+We left operating-system-specific parameters as flags, because we haven't really had a discussion on how best to represent these in our config APIs. Similar to per-instance configuration, we should not abandon these parameters to the command-line.
+
+I think that a simple and flexible solution is to prefix OS-specific fields with the name of the OS:
+
+
+
+* This helps avoid the complexity of having a top-level substructure for each supported OS, or OS specific substructures of general substructures.
+* These fields should always be optional and omitempty, so that they can be omitted in environments where they are not necessary.
+* If we see common fields, it should be relatively easy to add a non-prefixed field that works across multiple supported operating systems.
+* We'll likely need to ensure that defaulting and validation only process OS-specific fields for the OS we are currently running on.
+* It would be really nice if we could have API machinery that could mark which fields are supported on which OSes.
+
+
+# TODOs
+
+**TODO: Dig through the following and identify things I missed in this doc:**
+
+Original dynamic config proposal discussion, esp. points about API policies: https://github.com/kubernetes/kubernetes/pull/29459#issuecomment-271990251
+
+Major related PRs:
+
+
+
+* [Graduate kubeletconfig API group to beta](https://github.com/kubernetes/kubernetes/pull/53833)
+* [Deprecate KubeletConfiguration flags](https://github.com/kubernetes/kubernetes/pull/60148)
+
+Other Related PRs (massaging KubeletConfiguration object to beta quality, fixing flag precedence, testing, correct loading behavior, etc):
+
+
+
+* [Make feature gates loadable from a map[string]bool](https://github.com/kubernetes/kubernetes/pull/53025)
+* [Mulligan: Remove deprecated and experimental fields from KubeletConfiguration](https://github.com/kubernetes/kubernetes/pull/53088)
+* [Move --enable-cusom-metrics to KubeletFlags and mark it deprecated](https://github.com/kubernetes/kubernetes/pull/54154)
+* [Move runtime-related flags from KubeletConfiguration to KubeletFlags](https://github.com/kubernetes/kubernetes/pull/54160)
+* [Lift embedded structure out of ManifestURLHeader field](https://github.com/kubernetes/kubernetes/pull/54643)
+* [Lift embedded structure out of eviction-related KubeletConfiguration fields](https://github.com/kubernetes/kubernetes/pull/54823)
+* [ColonSeparatedMultimapStringString: allow multiple Set invocations with default override](https://github.com/kubernetes/kubernetes/pull/55254)
+* [Move 'alpha' KubeletConfiguration fields that aren't feature-gated and self-registration fields to KubeletFlags](https://github.com/kubernetes/kubernetes/pull/55562)
+* [Kubelet: Relative paths in local config file](https://github.com/kubernetes/kubernetes/pull/55648)
+* [Add kubeletconfig round trip test](https://github.com/kubernetes/kubernetes/pull/55961)
+* [seccomp is an alpha feature and not feature gated](https://github.com/kubernetes/kubernetes/pull/55983)
+* [Kubelet flags take precedence over config from files/ConfigMaps](https://github.com/kubernetes/kubernetes/pull/56097)
+* [flag precedence redo](https://github.com/kubernetes/kubernetes/pull/56995)
+* [Refactor kubelet config controller bootstrap process](https://github.com/kubernetes/kubernetes/pull/57488)
+* [Explicit kubelet flags](https://github.com/kubernetes/kubernetes/pull/57613)
+* [Fix PodCIDR flag: defaults come from the object, not as literal args to the flag function](https://github.com/kubernetes/kubernetes/pull/57621)
+* [Replace --init-config-dir with --config](https://github.com/kubernetes/kubernetes/pull/57624)
+* [e2e node framework can generate a base kubelet config file](https://github.com/kubernetes/kubernetes/pull/57638)
+* [More default fixups for Kubelet flags](https://github.com/kubernetes/kubernetes/pull/57770)
+* [Move some old security controls to KubeletFlags and mark them deprecated](https://github.com/kubernetes/kubernetes/pull/57851)
+* [Turn KubeletConfigFile on in e2enode tests](https://github.com/kubernetes/test-infra/pull/5637)
+* [Removal of KubeletConfigFile feature gate: Step 1](https://github.com/kubernetes/kubernetes/pull/58760)
+* [Removal of KubeletConfigFile feature gate: Step 2 (stop setting KubeletConfigFile)](https://github.com/kubernetes/test-infra/pull/6490)
+* [Removal of KubeletConfigFile feature gate: Step 3 (final)](https://github.com/kubernetes/kubernetes/pull/58978)
+* [--generate-kubelet-config-file=true is now default](https://github.com/kubernetes/test-infra/pull/6654)
+* [Fix PodPidsLimit and ConfigTrialDuration on internal KubeletConfig type](https://github.com/kubernetes/kubernetes/pull/59062)
+* [Add 'none' option to EnforceNodeAllocatable](https://github.com/kubernetes/kubernetes/pull/59515)
+* [remove CAdvisorPort from KubeletConfiguration struct](https://github.com/kubernetes/kubernetes/pull/59580)
+* [Bury KubeletConfiguration.ConfigTrialDuration for now](https://github.com/kubernetes/kubernetes/pull/59628)
+* [Secure Kubelet's componentconfig defaults while maintaining CLI compatibility](https://github.com/kubernetes/kubernetes/pull/59666)
+* [Ignore 0% and 100% eviction thresholds](https://github.com/kubernetes/kubernetes/pull/59681)
+* [expunge the word 'manifest' from Kubelet's config API](https://github.com/kubernetes/kubernetes/pull/60314)
diff --git a/committee-code-of-conduct/README.md b/committee-code-of-conduct/README.md
index af13794a..bcaeaca6 100644
--- a/committee-code-of-conduct/README.md
+++ b/committee-code-of-conduct/README.md
@@ -14,10 +14,10 @@ The [charter](charter.md) defines the scope and governance of the Code of Conduc
## Members
-* Danielle Lancashire (**[@endocrimes](https://github.com/endocrimes)**), VMware
+* Jason DeTiberus (**[@detiber](https://github.com/detiber)**), Cisco
+* Danielle Lancashire (**[@endocrimes](https://github.com/endocrimes)**), Independent
* Hilliary Lipsig (**[@hlipsig](https://github.com/hlipsig)**), RedHat
* Jeremy Rickard (**[@jeremyrickard](https://github.com/jeremyrickard)**), Microsoft
-* Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**), VMware
* Xander Grzywinski (**[@salaxander](https://github.com/salaxander)**), Microsoft
## Contact
diff --git a/committee-code-of-conduct/governance/onboarding-offboarding.md b/committee-code-of-conduct/governance/onboarding-offboarding.md
index b841ff1d..a234115b 100644
--- a/committee-code-of-conduct/governance/onboarding-offboarding.md
+++ b/committee-code-of-conduct/governance/onboarding-offboarding.md
@@ -13,6 +13,7 @@ Different actions on this list must be carried out by different members:
**Who executes:** When offboarding, outgoing members must remove themselves from Slack channels. When onboarding, carryover members must add incoming members.
- [ ] Code of conduct committee Slack channel(s) (public and private) on `kubernetes.slack.com`
+- [ ] `#kubernetes-moderators` and `#slack-reports` private channels on `kubernetes.slack.com`
- [ ] Code of conduct sync Slack channel on `cloud-native.slack.com`
### Slack Channel Admin Privileges
diff --git a/committee-code-of-conduct/incident-process.md b/committee-code-of-conduct/incident-process.md
index c68d1bed..007f4652 100644
--- a/committee-code-of-conduct/incident-process.md
+++ b/committee-code-of-conduct/incident-process.md
@@ -3,7 +3,7 @@ title: "Code of Conduct Committee Incident Reporting and Response Process"
weight: 550
aliases: [ "/coc-process" ]
description: |
- Overview of the the Code of Conduct Committee's workflow when receiving and
+ Overview of the Code of Conduct Committee's workflow when receiving and
responding to an incident report.
---
diff --git a/committee-steering/README.md b/committee-steering/README.md
index 75961a15..0d2d4552 100644
--- a/committee-steering/README.md
+++ b/committee-steering/README.md
@@ -21,12 +21,12 @@ The [charter](https://git.k8s.io/steering/charter.md) defines the scope and gove
## Members
+* Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**), Google
* Christoph Blecker (**[@cblecker](https://github.com/cblecker)**), Red Hat
-* Davanum Srinivas (**[@dims](https://github.com/dims)**), VMware
+* Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**), Chainguard, Inc
* Stephen Augustus (**[@justaugustus](https://github.com/justaugustus)**), Cisco
-* Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**), Google
* Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**), Google
-* Paris Pittman (**[@parispittman](https://github.com/parispittman)**), Apple
+* Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**), VMware
* Tim Pepper (**[@tpepper](https://github.com/tpepper)**), VMware
## Contact
diff --git a/communication/OWNERS b/communication/OWNERS
index 01c24fe2..78e2cbc6 100644
--- a/communication/OWNERS
+++ b/communication/OWNERS
@@ -1,7 +1,6 @@
# See the OWNERS docs at https://go.k8s.io/owners
reviewers:
- - parispittman
- jdumars
- idvoretskyi
- jeefy
@@ -9,10 +8,10 @@ reviewers:
- markyjackson-taulia
approvers:
- mrbobbytables
- - parispittman
- sig-contributor-experience-leads
emeritus_approvers:
- castrojo
+ - parispittman
labels:
- sig/contributor-experience
- area/community-management
diff --git a/communication/README.md b/communication/README.md
index f78eae1b..54033338 100644
--- a/communication/README.md
+++ b/communication/README.md
@@ -1,7 +1,7 @@
# Communication
The Kubernetes community abides by the [Kubernetes code of conduct] on all of
-communication platforms that we moderate listed below with noted exceptions.
+the communication platforms that we moderate listed below with noted exceptions.
Here is an excerpt from the code of conduct:
> _As contributors and maintainers of this project, and in the interest
@@ -27,11 +27,11 @@ agenda/notes, and can be found on their READMEs and on the community
groups/[SIGs] page.
You can actively or passively participate in one of the following ways:
-- The community groups public meeting(s) listed in the above community groups page
+- The community group's public meeting(s) listed on the above community groups page
- Every Third Thursday at our [monthly community meeting] over [zoom] at [10am US Pacific Time]
- Intro sessions at KubeCon/CloudNativeCon live or [recordings on YouTube]
-Nevertheless, below find a list of many general channels, groups and meetings
+Nevertheless, below find a list of many general channels, groups, and meetings
devoted to the Kubernetes project. Please check the guidelines and any relevant
chat/conversation history before posting. Spam and sales pitches are not tolerated
on these platforms.
@@ -98,7 +98,7 @@ and security issues
- [Discuss Kubernetes] is a forum where Kubernetes users trade notes with sections
for contributors and all kinds of ecosystem related content
- Additional Google groups exist and can be joined for discussion related to each
-community groups as noted above. These are linked from the [SIG list][SIGs].
+community group as noted above. These are linked from the [SIG list][SIGs].
### Calendar & Meetings
@@ -154,14 +154,14 @@ resources.
- [kubeweekly] - owned by cncf and curated by community members listed on the site.
Collection of news, blogs, talks, and events for all things Kubernetes.
send submissions to kubeweekly@cncf.io
-- [LWKD] - weekly newsletter that summarizes changes to Kubernetes code, development,
+- [LWKD] - a weekly newsletter that summarizes changes to Kubernetes code, development,
and release schedules. Written by two members of SIG-Contribex.
### Conferences, Meetups, Summits, and Face to Face Meetings
CNCF is the main driver for all KubeCon + CloudNativeCons, Kubernetes Forums,
and the [Kubernetes Meetup Pro] program on meetup.com. KubeCon + CloudNativeCon,
-held every spring in Europe, summer in China, and winter in North America.
+is held every spring in Europe, summer in China, and winter in North America.
Information about these and other community events is available on the CNCF [events]
pages.
diff --git a/communication/marketing-team/CHARTER.md b/communication/contributor-comms/CHARTER.md
index 68f3ba13..ee988acc 100644
--- a/communication/marketing-team/CHARTER.md
+++ b/communication/contributor-comms/CHARTER.md
@@ -36,4 +36,4 @@ Things change, priorities get optimized, life happens. Having an easy on and off
In the case where no shadow is available, other Marketing Council team members have the responsibility to cover the role. Concerns for time or ability to cover work can be escalated to advisors and SIG Contributor Experience leads as necessary.
-[Marketing Council](/communication/marketing-team/role-handbooks/council.md)
+[Marketing Council](/communication/contributor-comms/role-handbooks/council.md)
diff --git a/communication/marketing-team/OWNERS b/communication/contributor-comms/OWNERS
index e20309c7..1145ed7f 100644
--- a/communication/marketing-team/OWNERS
+++ b/communication/contributor-comms/OWNERS
@@ -3,14 +3,13 @@
reviewers:
- chris-short
- onlydole
- - parispittman
approvers:
- - parispittman
- Pensu
- rajula96reddy
- kaslin
emeritus_approvers:
- mbbroberg
+ - parispittman
labels:
- sig/contributor-experience
- area/contributor-comms
diff --git a/communication/marketing-team/README.md b/communication/contributor-comms/README.md
index c7a2b0a0..76cd9493 100644
--- a/communication/marketing-team/README.md
+++ b/communication/contributor-comms/README.md
@@ -1,7 +1,6 @@
-# Upstream Marketing
+# Contributor Communications
-The Upstream Marketing Contributor Communications team (Contributor Comms for short) is part of the `community-management` subproject in
-[Contributor Experience]. View our [charter] to learn more about us.
+The Contributor Communications team (Contributor Comms for short) is part of the `community-management` subproject in [Contributor Experience]. View our [charter] to learn more about us.
## Purpose
@@ -9,11 +8,13 @@ To better inform the Kubernetes contributor community and highlight their work t
| Area & Handbook Link | Team | Notes |
| --- | --- | --- |
-| [Marketing Council] Program Lead | @mbbroberg, shadow: @JasonMorgan,| advisors: @parispittman, @chris-short |
-| [Marketing Council] Promotion Lead |@kaslin, shadow: @Debanitrkl | advisors: @parispittman, @chris-short |
-| [Marketing Council] Liaison Lead | @rajula96reddy, shadow: `OPEN` | Shadow role is available. |
-| Liaisons | release: @rajula96reddy, docs: `OPEN` | Are you a SIG that wants support from Contributor Comms? Ping the liaison lead! |
-| [Storytellers] & other members | @kunal-kushwaha, @gkarthiks, @dewan-ahmed, @joelbyronbarker, Sladyn Nunes, @hpopal11 | New to Contributor Comms? Add your name here!
+| Subproject Lead | @kaslin, @chris-short | Shadow role is available. |
+| [Social Media Coordinator](https://github.com/kubernetes/community/blob/master/communication/contributor-comms/role-handbooks/Social-Media.md) |@kaslin | Shadow role is available. |
+| [Comms Tech Lead](https://github.com/kubernetes/community/blob/master/communication/contributor-comms/role-handbooks/Comms-Tech-Lead.md) | @imnmo | Shadow role is available. |
+| [Comms Event Lead] | @AvineshTripathi | Shadow role is available. |
+| [Comms Blog Coordinator](https://github.com/kubernetes/community/blob/master/communication/contributor-comms/role-handbooks/blog-coordinator.md) | @fsmunoz | Shadow role is available. |
+| [Storytellers] & other members | @hpopal11, @Atharva-Shinde | New to Contributor Comms? Add your name here! |
+| Emeritus | @parispittman, @mbbroberg |
## Contact Us!
@@ -38,9 +39,11 @@ Let us know you are interested and if you have any questions.
[charter]: ./CHARTER.md
[Could be you!]: #could-be-you
[Contributor Experience]: /sig-contributor-experience
-[Marketing Council]: ./role-handbooks/editor.md
[Internal Communications]: ./role-handbooks/internal-marketing.md
[Social Media]: ./role-handbooks/social-media.md
+[Comms Tech Lead]: ./role-handbooks/Comms-Tech-Lead.md
+[Comms Event Lead]: ./role-handbooks/Comms-Event-Lead.md
+[Comms Blog Coordinator]: ./role-handbooks/blog-coordinator.md
[Storytellers]: ./role-handbooks/storytellers.md
[Designer]: ./role-handbooks/wip-roles.md
[kubernetes/community]: https://github.com/kubernetes/community/issues
diff --git a/communication/contributor-comms/role-handbooks/Comms-Tech-Lead.md b/communication/contributor-comms/role-handbooks/Comms-Tech-Lead.md
new file mode 100644
index 00000000..3a5605de
--- /dev/null
+++ b/communication/contributor-comms/role-handbooks/Comms-Tech-Lead.md
@@ -0,0 +1,55 @@
+# Comms Tech Lead Role Handbook
+
+## Overview
+
+This handbook outlines expectations and responsibilities for Tech Leads as well as Contributor Comms team members who wish to contribute to technical efforts.
+
+Tech leads' contributions further the Contributor Comms team's efforts to communicate contributors' stories by resolving technical issues and decisions around [contributor-site](https://www.kubernetes.dev/), social media automation tools [kubernetes-sigs/contributor-tweets](https://github.com/kubernetes-sigs/contributor-tweets), and [slack-bot](https://github.com/kubernetes-sigs/slack-infra/tree/main/slack-post-message).
+
+[contributor-site](https://www.kubernetes.dev/) is a one-stop for Kubernetes contributor content and news. It brings important documentation scattered throughout the project into one central location.
+
+Along with contributor-site there exist two automation tools that help:
+1. To create tweets (k8scontributors) via GitHub actions (see: [workflow](https://github.com/kubernetes-sigs/contributor-tweets/blob/main/.github/workflows/main.yml))
+2. To broadcasts messages across multiple slack channels (see: [slack-bot](https://github.com/kubernetes-sigs/slack-infra/tree/main/slack-post-message))
+
+The [contributor-tweets repo](https://github.com/kubernetes-sigs/contributor-tweets) utilizes open source Github action [twitter-together](https://github.com/gr2m/twitter-together) project to automate tweet approval from an issue.
+
+## Minimum Skills and Requirements
+
+- Are a member of the [Kubernetes GitHub Org]
+- Good knowledge of Node.js, Hugo(docsy theme and frontmatter)
+- Have a basic experience in Go (for Slack bot)
+- Have a good understanding of Github actions
+- Available to either attend regular Contributor Comms meetings or collaborate asynchronously via the #sig-contribex-comms channel in the Kubernetes Slack
+
+### Expected Time Investment
+
+Team leads: 4-5 hours per week.
+Team members: 2-3 hours per week.
+
+## General Expectations
+
+- Be welcoming, be yourself
+- Take ownership of an issue and submit a PR for repositories like (especially if it's quick or relates to work you're already doing) Contributor-site, tweets, and, slack bot
+- Have an understanding of what an issue is about and able to triage them, or know who to contact to determine the required information
+- Coordinate work to fix any issues in automation tools to ensure valid tweet requests are fulfilled
+- Train new leads
+
+Team members will be expected to keep an eye out for news or issues related to slack bot or Github automation. Common sources of such announcements are the k-dev mailing list and the #contributor-comms channel on Slack.
+
+## Associates Overview (Shadow)
+
+Team members who wish to become technical leads shadow should express this desire to the current lead.
+
+Leads should work with shadows to understand their capacity to take on the needs of the lead role and work with the shadow on a plan for them to take on responsibility including:
+
+* General familiarity with our repositories and automation tools
+* Willingness and ability to follow up with contributors about issues, on Github, Slack, and email, as appropriate
+* Ability to file well-crafted Kubernetes issues, including labeling and prow commands
+* General knowledge of our SIG system and SIGs' areas of responsibility or knowing who to contact to determine the required information
+
+Additionally, the following qualifications make a candidate more suitable for the technical team, but are not requirements:
+
+* Prior involvement with the Contributor Comms team and the contributor experience team
+* Experience with Github actions and Github workflow
+* A basic understanding of Golang
diff --git a/communication/marketing-team/role-handbooks/Social-Media.md b/communication/contributor-comms/role-handbooks/Social-Media.md
index 305082dc..f1a1b36b 100644
--- a/communication/marketing-team/role-handbooks/Social-Media.md
+++ b/communication/contributor-comms/role-handbooks/Social-Media.md
@@ -24,9 +24,9 @@ Team members: 1-3 hour per week.
## General Expectations
-- Rules for social posts and more can be found in [social guidelines](https://github.com/kubernetes/community/blob/master/communication/marketing-team/storytelling-resources/social-guidelines.md)
+- Rules for social posts and more can be found in [social guidelines](https://github.com/kubernetes/community/blob/master/communication/contributor-comms/storytelling-resources/social-guidelines.md)
- Be welcoming, be yourself
-- Understanding, communicating, and setting/adjusting [social guidelines](https://github.com/kubernetes/community/blob/master/communication/marketing-team/storytelling-resources/social-guidelines.md)
+- Understanding, communicating, and setting/adjusting [social guidelines](https://github.com/kubernetes/community/blob/master/communication/contributor-comms/storytelling-resources/social-guidelines.md)
- Coordinating work to create tweets, ensuring tweet requests are fulfilled
- Working with other Contributor Comms leads, such as the Event Coordinator Lead, on social media tasks
- Approving tweet PRs on [kubernetes-sigs/contributor-tweets](https://github.com/kubernetes-sigs/contributor-tweets)
diff --git a/communication/contributor-comms/role-handbooks/blog-coordinator.md b/communication/contributor-comms/role-handbooks/blog-coordinator.md
new file mode 100644
index 00000000..9eef7b37
--- /dev/null
+++ b/communication/contributor-comms/role-handbooks/blog-coordinator.md
@@ -0,0 +1,48 @@
+# Blog Coordinator Handbook
+
+This handbook outlines expectations and responsibilities for Blog coordinator as well as Contributor Comms team members who wish to contribute to blogging activities.
+
+Writing and sharing articles is one of the ways through which Kubernetes contributors add to the community, and the Blog Coordinator role exists to
+
+1. Serve as an initial point of contact for content suggestions
+2. Help contributors to navigate the existing publishing processes
+3. Assist in determining the final publishing targets of the content.
+4. Coordinate with SIG-Docs in the publishing process, namely by following and improving the Blogging Guidelines.
+5. Coordinate with the rest of the Contributor Comms team, and specifically the Social Media Coordinator, in the best ways to broaden external awareness of published content.
+
+The [Kubernetes Contributor Blog](https://www.kubernetes.dev/blog/) is one of the most direct points of entry for those that want to share with a wider audience. The role of the Blog Coordinator is to guide those that want to contribute in the best way to do so, while coordinating with the rest of the team (including other Contributor Comms team members) to assign editors, reviewers and other roles to new submissions.
+
+The Blog Coordinator has an active involvement in defining, with others, the [Blogging Guidelines](https://hackmd.io/@fsm/blog-guidelines), and should constantly seek to improve them, with an eye on the improvement of the contributor experience.
+
+
+### Minimum Skills and Requirements
+
+Those in this role should ideally:
+
+* Be a member of the [Kubernetes GitHub Org](https://github.com/kubernetes/)
+* Have some familiarity with blogging platforms and editing tools; specific knowledge of Markdown, GitHub and Hugo is a plus.
+* Be available to either attend regular Contributor Comms meetings or collaborate asynchronously via the #sig-contribex-comms channel in the Kubernetes Slack
+
+#### Expected time commitment
+
+* Team leads: 3-5h per week.
+* Team members: 1-3h per week.
+
+### General Expectations
+
+1. Be ready to help those wanting to contribute to the blogs.
+2. Understand the Blogging Guidelines and assist contributors in following them.
+3. Help in determining applicability of the proposed content, with the rest of the team: this includes discussion in the Slack channel or regular meeting.
+4. Identify team members that can review blog submissions.
+5. Discuss with SIG-Docs, when needed, for possible publication in the main Kubernetes site.
+6. Review blog submissions.
+7. Open the blog submission PR (with the author as Co-author), or find someone that can assist in this tasks within the Contributor Comms team.
+8. Follow up submitted PRs and help with the approval process.
+
+### Associates Overview (Shadow)
+
+Team members who which to become Blogging Leads should express their desire to the current lead; leads should work with shadows to understand their capacity to take on the needs of the lead role and work with the shadow on a plan to take on responsibility, including:
+
+* Become a reviewer of new submitted content.
+* Open the PRs and follow them through.
+* Provide assistance to new contributors that are asking how to submit content.
diff --git a/communication/marketing-team/role-handbooks/storytellers.md b/communication/contributor-comms/role-handbooks/storytellers.md
index 454f26c9..c65a0a01 100644
--- a/communication/marketing-team/role-handbooks/storytellers.md
+++ b/communication/contributor-comms/role-handbooks/storytellers.md
@@ -2,19 +2,19 @@
## Overview
-Upstream Marketing depends on great storytelling to get the message out about our amazing community.
+Contributor Comms depends on great storytelling to get the message out about our amazing community.
-It's no secret that governance and technical documentation can be kind of on the boring side. And that's ok–it's not always there for entertainment purposes. It is about providing valuable information and get you were you need to go. But that said, an important message can be lost without an entertaining messenger.
+It's no secret that governance and technical documentation can be kind of on the boring side. And that's ok–it's not always there for entertainment purposes. It is about providing valuable information and getting you where you need to go. But that said, an important message can be lost without an entertaining messenger.
In this role, Storytellers are here to help Kubernetes contributors hear the latest news in the most entertianing ways. Storytellers will take us on journeys through words and visuals to help us craft.
## Workflow ⚡️
-Storytelling is welcome in any medium that can be supported by the Upstream Marketing team. This includes but is not limited to written word–as outlined in [blogging guidelines]–or through video following our [YouTube guidelines].
+Storytelling is welcome in any medium that can be supported by the Contributor Comms team. This includes but is not limited to written word–as outlined in [blogging guidelines]–or through video following our [YouTube guidelines].
Storytellers are constantly building new ways to share, and these resources are gathered in the [storytelling resources folder].
-### Upstream Marketing Process
+### Contributor Comms Process
#### Idea Paths
@@ -22,7 +22,7 @@ There are multiple ways to successfully contribute a Kubernetes blog post. Here
**To start:**
-* Open a [Contributor Comms Requests issue](https://github.com/kubernetes/community/issues) to share your blog idea, or attend an [Upstream Marketing team](https://github.com/kubernetes/community/tree/master/communication/marketing-team) meeting to discuss it ahead of time
+* Open a [Contributor Comms Requests issue](https://github.com/kubernetes/community/issues) to share your blog idea, or attend an [Contributor Comms team](https://github.com/kubernetes/community/tree/master/communication/contributor-comms) meeting to discuss it ahead of time
**To write:**
@@ -30,17 +30,17 @@ There are multiple ways to successfully contribute a Kubernetes blog post. Here
* A draft can be written in:
* Google Docs or
* Markdown (and shared via [Gist](https://gist.github.com/) or [HackMD](https://hackmd.io/))
-* Connect with a storyteller -- if you reach out to Upstream Marketing, you will be paired with someone to help you through writing, editing, and getting your article published
+* Connect with a storyteller -- if you reach out to Contributor Comms, you will be paired with someone to help you through writing, editing, and getting your article published
* Discussion happens via GitHub issue or through working group meetings
-* This includes working with Upstream Marketing team to polish, and format your blog post
- * There is not a single canonical format for documents, but we do have [guidelines for effective articles](https://github.com/kubernetes/community/blob/master/communication/marketing-team/blog-guidelines.md#how-to-write-an-effective-blog)
+* This includes working with Contributor Comms team to polish, and format your blog post
+ * There is not a single canonical format for documents, but we do have [guidelines for effective articles](https://github.com/kubernetes/community/blob/master/communication/contributor-comms/blog-guidelines.md#how-to-write-an-effective-blog)
* There are further technical considerations by the [Blog team](https://github.com/kubernetes/community/blob/4026287dc3a2d16762353b62ca2fe4b80682960a/sig-docs/blog-subproject/README.md#submit-a-post)
When it's ready, submit the blog post:
* Go to the `kubernetes/website` repository
* Open a PR with your added blog post
- * If you need help with this process, Upstream Marketing will look to pair you with someone for PR and shepherd it through the review cycle
+ * If you need help with this process, Contributor Comms will look to pair you with someone for PR and shepherd it through the review cycle
Or if you already have everything you think you need you can:
@@ -72,7 +72,7 @@ Anyone is welcome to contribute when they have time. The core expectation of sto
If you would like to be listed as a member of the team, here are the expectations:
1. Be prepared to write one blog a quarter and participate in edits to other articles. The time commitment is typically 5-10 hours per quarter depending on the number of blog posts in the review queue.
-2. Storytellers are expected to attend at least one upstream marketing team meeting a month or check-in to remain active.
+2. Storytellers are expected to attend at least one Contributor Comms meeting a month or check-in to remain active.
3. Remain non-partial: if you receive a request to write about a project, an individual, or a group of people from your employer, you should ask an impartial blogger to write it.
4. As with all contribution to Kubernetes, adhere to the [code of conduct](/code-of-conduct.md), values, and principles of the project.
diff --git a/communication/contributor-comms/storytelling-resources/blog-guidelines.md b/communication/contributor-comms/storytelling-resources/blog-guidelines.md
new file mode 100644
index 00000000..cadf0cdd
--- /dev/null
+++ b/communication/contributor-comms/storytelling-resources/blog-guidelines.md
@@ -0,0 +1,92 @@
+# Contributor Comms Blog Guidelines
+
+This initiative falls under the [Contributor Comms Charter](./CHARTER.md).
+
+We are looking for Kubernetes-curious community members who are **interested in writing** and **care about getting the word out** to our huge community of users, developers, and contributors of all types. Here's how to get involved.
+
+## Requested Content
+
+We are looking for content related to the contributor experience and with increasing the visibility of Kubernetes and how it is developed: this includes interviews with SIGs, articles on how to better use existing tools and processes, and in general tips and suggestions on how to collaborate.
+
+Other types of content, like Kubernetes capabilities, tutorials, and technical articles, are better suited for the [SIG-Docs blogging initiative](/sig-docs/blog-subproject/README.md).
+
+## Where to publish
+
+As mentioned, the focus of the Contributor Experience articles is targeted at those that contribute to Kubernetes, but sometimes it's not obvious were a specific theme will fit. The following are the most common situations:
+
+1. Article is just for [k8s.dev](http://k8s.dev/blog): this is when it is relevant for the contributor community, and not necessarily for Kubernetes end-users. An example is an article explaining how to use some specific tool or automation that helps with the Kubernetes development process.
+2. Article is just for [kubernetes.io](https://kubernetes.io/blog/): when the article targets Kubernetes end-users, and not specifically the contributor community. Examples include most technical articles on Kubernetes features, updates on new features and deprecations, etc.
+3. Article is relevant for both: sometimes, an article will be relevant to both the Kubernetes end-users, and the contributor community. Examples include interviews with SIGs and WGs, articles on technical aspects that are important for the contributor community, etc.
+
+The decision on what is the right option will be made jointly by the SIG Contribex Comms and the SIG Docs Blogging editorial team: as a content writer you shouldn't be overly concerned about it, expect in how it can change the approval process, as described below.
+
+## Submission and review process
+
+The quickest way to get involved is to let the team in [#sig-contribex-comms](https://kubernetes.slack.com/archives/C03KT3SUJ20) know that you have an idea for an article; the team will identify the best target for your submission and liaison with the necessary teams, if needed. To reduce the amount of editing done directly in GitHub, a two-stage approach is highly recommended.
+
+This process is initiated in [#sig-contribex-comms](https://kubernetes.slack.com/archives/C03KT3SUJ20) and uses the processes from the SIG Docs blog [subproject](/sig-docs/blog-subproject/README.md), and is broadly as follows:
+
+1. Present your idea to the community, by going to the [#sig-contribex-comms](https://kubernetes.slack.com/archives/C03KT3SUJ20) Slack channel, or by joining the [weekly meeting](https://docs.google.com/document/d/1KDoqbw2A6W7rLSbIRuOlqH8gkoOnp2IHHuV9KyJDD2c). This will make it easier to coordinate effort and avoid duplicate effort, as well as to gather initial suggestions around the article scope.
+2. The submission idea will be reviewed by the team, including the decision on where to publish it; someone from the SIG Contribex Comms team will reach out to the [#sig-docs-blog](https://kubernetes.slack.com/archives/CJDHVD54J) editorial team to clarify if the content is adequate for republishing in the main Kubernentes blog. At this stage an editor should be assigned to follow-up the process with you.
+3. Create your proposal draft in [Google Docs](https://docs.google.com/) or HackMD (https://hackmd.io), and ask for a review in [the channel](https://kubernetes.slack.com/archives/C03KT3SUJ20). This will facilitate easier editing, especially if major changes or restructuring is needed. Take into account the [documentation style guide](https://kubernetes.io/docs/contribute/style/style-guide/): these guidelines can help in improving the readability of your article, especially in terms of the use of Kubernetes terminology.
+4. Once you have reflected any feedback in the proposal draft, announce that the article is ready for submission (again, in the channel or in one of the weekly meetings): the assigned editor will use the final text to open the PR, adding you as a Co-author
+5. (Optional) If the submission will be mirrored in the main Kubernetes site, a second PR will be oped by the editor, but on the main repository, and after being approved in the `contributor-site` one.
+
+For now, our official process is to use [SIG Docs' system](/sig-docs/blog-subproject/README.md), with one change: instead of directly creating the file in the Kubernetes site repository, as instructed abovem it's initially created in the [contributor-site](https://github.com/kubernetes/contributor-site), in the appropriate folder (i.e. the right year in `contributor-site/content/en/blog/`).
+
+This will lead to an initial review process before it gets mirrored to the main Kubernetes site.
+
+### Editor instructions
+
+Once the text is final, an editor will open the PR. This facilitates the approval process and prevents articles with massive restructuring or changes needed to be submitted to GitHub, something that makes the review process substantially more difficult.
+
+In order to keep the authorship information (which will make the submission count towards the contribution of the article author), editors must [add the original author as a co-author](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors). This is done by adding `Co-authored-by: original-author-name <original-author@example.com>` to the commit message.
+
+The number of PRs depends on where the article will be published:
+
+1. If it's solely for the Contributor site: the PR should be opened in the [contributor-site](https://github.com/kubernetes/contributor-site), after which the process ends.
+2. If it's to be mirrored in the main Kubernetes blog: after the previous step, a new PR is opened on [kubernetes/website](https://github.com/kubernetes/website), mentioning the original PR. The SIG-Docs Blog editorial team will, in this case, already been notified and involved in the initial PR.
+
+
+## Blogger Expectations, Responsibilities, and Info
+
+Anyone is welcome to contribute when they have time.
+
+If you would like to be listed as a member of the team, here are the expectations:
+
+1. Be prepared to write one blog a quarter and participate in edits to other articles. The time commitment is typically 5-10 hours per quarter depending on the number of blog posts in the review queue.
+2. Bloggers are expected to attend at least one Contributor Comms team meeting a month or check-in to remain active.
+3. Remain non-partial: if you receive a request to write about a project, an individual, or a group of people from your employer, you should ask an impartial blogger to write it.
+4. As with all contribution to Kubernetes, adhere to the [code of conduct](/code-of-conduct.md), values, and principles of the project.
+
+## How to Write an Effective Blog
+
+Keep the following points in mind as you write in order to speed up the review process:
+
+* Use inclusive language understandable by everyone
+ * Rephrase gendered pronouns (change "he" or "she" to "they" or adjust to remove)
+ * Remember nothing is simple when you're starting out (remove "just," "simply", and "easy")
+ * Define terminology or acronyms (do not assume people know what a term means)
+ * Shy away from jargon and colloquial expressions
+ * Write clearly and avoid ambiguous sentences
+* Emphasize the things you want readers to remember; tell a story
+ * Stay on topic and stick to the facts
+ * Design a beginning, middle, and end to your story with a clear call to action
+ * Provide evidence and data where applicable, to back up your message
+* Make the article visually appealing
+ * Include at least one image (and use public domain or Creative Commons licensed ones)
+ * Prefer inclusive images like those from [WOCinTech](https://www.flickr.com/photos/wocintechchat/) and [Queer in Tech](https://www.flickr.com/photos/mapbox/albums/72157713100349311)
+ * Find images on sites like [Creative Commons](https://search.creativecommons.org/), [Pexels](https://www.pexels.com/public-domain-images/), and [Unsplash](https://unsplash.com/images/stock/public-domain))
+* Be accountable and honest as an author
+ * Remove anything that lacks adequate evidence
+ * Avoid interjecting personal reactions
+ * Ensure that the blog post is reviewed by the anyone being mentioned in the piece
+ * As the author, never talk about your employer, sell, promote, or pitch; this is about upstream community endeavours and the individuals and groups that create it
+* Follow the [documentation style guide](https://kubernetes.io/docs/contribute/style/style-guide/).
+
+## Further Recommendations
+
+The following are helpful resources for authoring articles:
+
+* [Creating Quality Content (For Search Engines and People)](https://moz.com/blog/quality-blog-content)
+* [How to write effective documentation for your open source project](https://opensource.com/article/20/3/documentation)
diff --git a/communication/marketing-team/storytelling-resources/event-checklist.md b/communication/contributor-comms/storytelling-resources/event-checklist.md
index 48549da4..48549da4 100644
--- a/communication/marketing-team/storytelling-resources/event-checklist.md
+++ b/communication/contributor-comms/storytelling-resources/event-checklist.md
diff --git a/communication/marketing-team/storytelling-resources/example-interview-qs-sig-windows.md b/communication/contributor-comms/storytelling-resources/example-interview-qs-sig-windows.md
index 51fe382c..51fe382c 100644
--- a/communication/marketing-team/storytelling-resources/example-interview-qs-sig-windows.md
+++ b/communication/contributor-comms/storytelling-resources/example-interview-qs-sig-windows.md
diff --git a/communication/marketing-team/storytelling-resources/example-topics.md b/communication/contributor-comms/storytelling-resources/example-topics.md
index e71c29d3..e71c29d3 100644
--- a/communication/marketing-team/storytelling-resources/example-topics.md
+++ b/communication/contributor-comms/storytelling-resources/example-topics.md
diff --git a/communication/marketing-team/storytelling-resources/multichannel-communications.md b/communication/contributor-comms/storytelling-resources/multichannel-communications.md
index dd0b786f..dd0b786f 100644
--- a/communication/marketing-team/storytelling-resources/multichannel-communications.md
+++ b/communication/contributor-comms/storytelling-resources/multichannel-communications.md
diff --git a/communication/marketing-team/storytelling-resources/sig-spotlight-blog-process.md b/communication/contributor-comms/storytelling-resources/sig-spotlight-blog-process.md
index 056047d5..056047d5 100644
--- a/communication/marketing-team/storytelling-resources/sig-spotlight-blog-process.md
+++ b/communication/contributor-comms/storytelling-resources/sig-spotlight-blog-process.md
diff --git a/communication/marketing-team/storytelling-resources/social-guidelines.md b/communication/contributor-comms/storytelling-resources/social-guidelines.md
index 6871ceb6..ecb5b221 100644
--- a/communication/marketing-team/storytelling-resources/social-guidelines.md
+++ b/communication/contributor-comms/storytelling-resources/social-guidelines.md
@@ -4,7 +4,7 @@
## General guidelines
-All messaging must be consistent with the values and principles of the project and the [ethos/vision of the team](./CHARTER.md#ethosvision). Messaging should be positive and uplifting. Be aware that sarcasm and/or jokes are generally hard to read over a medium such as social media.
+All messaging must be consistent with the values and principles of the project and the [ethos/vision of the team](/communication/contributor-comms/CHARTER.md#ethosvision). Messaging should be positive and uplifting. Be aware that sarcasm and/or jokes are generally hard to read over a medium such as social media.
Original messages should come out of this teams' accounts at least twice a week (if not more). However, there should be no more than three tweets per hour (including retweets). Retweets, likes, and responses are unlimited, but they should be used thoughtfully to encourage inclusive and kind participation. Use scheduling software as needed to space out messages. All messages should serve a purpose: have an action and/or thumbnail image ("click link for details," "register today," etc. are example actions). Never include photos, user handles, or other personally identifiable information without explicit permission.
diff --git a/communication/marketing-team/team-resources.md b/communication/contributor-comms/team-resources.md
index 96e27997..96e27997 100644
--- a/communication/marketing-team/team-resources.md
+++ b/communication/contributor-comms/team-resources.md
diff --git a/communication/discuss-guidelines.md b/communication/discuss-guidelines.md
index dded2ff6..11b5d992 100644
--- a/communication/discuss-guidelines.md
+++ b/communication/discuss-guidelines.md
@@ -47,7 +47,7 @@ throughout the project, and includes all communication mediums.
## Privacy Policy
-Discuss adheres to the the [Linux Foundation Privacy Policy].
+Discuss adheres to the [Linux Foundation Privacy Policy].
## Admins
diff --git a/communication/mailing-list-guidelines.md b/communication/mailing-list-guidelines.md
index 50c3713a..f6a94500 100644
--- a/communication/mailing-list-guidelines.md
+++ b/communication/mailing-list-guidelines.md
@@ -136,7 +136,7 @@ list, and again for the members mailing list.
Click **Next**.
-2. Fill out the the **Choose privacy settings** with these options:
+2. Fill out the **Choose privacy settings** with these options:
| Field | Leads ML value | Members ML value |
| --- | --- | --- |
diff --git a/communication/marketing-team/role-handbooks/council.md b/communication/marketing-team/role-handbooks/council.md
deleted file mode 100644
index ea0e7b8e..00000000
--- a/communication/marketing-team/role-handbooks/council.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# Marketing Council Handbook
-
-## Overview
-
-The Marketing Council is made up of multiple individuals working to bring multiple functions together to ensure Kubernetes contributors have a wealth of robust content and communications. The Marketing Council act as joint leaders to the Upstream Marketing team and its key responsibilities to the entire Kubernetes contributor base.
-
-#### How It Works
-
-The ideal Marketing Council is made up of one of each of the leadship roles with one shadow for each. In practice, Council members can cover multiple roles but with the intention of finding someone else to fill the position. Coverage is outlined in the [project README].
-
-## Responsibilities
-
-Responsibilities are categorized by the division of contribution among Marketing Council members. What brings us all together is a commitment to:
-
-- Be welcoming of everyone by being your unique self
-- Be inclusive on contributors, especially non-code contribution
-- Be a leader of this sub-project with a commitment to its charter
-
-#### Program Lead
-
-- Develop high level marketing strategies and themes to address problem areas, challenges, and innovation/moving the project forward; expected to collaborate with Leads on their strategies for functional areas
-- Ensure the team has a unified voice, focus, and work within the charter scope
-- Research and identify new and innovative ways of delivering content that appeals to our mission
-- Facilitates meetings or can delegate to another Marketing Council member
-- Manage the [editorial calendar] and [marketing project] boards
-- Coordinate [storytellers] and other member involvement
-
-#### Promotion Lead
-
-- Lead and encourage use of owned communication channels, including the team's Twitter account and other social channels
-- Helping to recruit other members of the team, ensuring onboarding but delegating to proper lead
-- Promoting contributor events
- - In the events folder or one off contributor events like SIG onboarding sessions
-- KEPs
- - To follow the same process as [social guidelines]
- - No promotion unless there is an explicit documented request
-- Proofreading and editing articles with our [blogging] and [ethos] in mind
-- If time allows, market the team; blog about the team and it's progress, encourage team to blog about their work
-
-#### Liaison Lead
-
-- Act as or facilitate conversations and workflows between all types of internal stakeholders. This includes attending meetings and coordinating efforts with teams such as:
- - SIG Contributor Experience
- - Community Group Chairs and Tech Leads
- - CNCF
- - Steering Committee
- - Contributors
-- Working with the liaison team members to manage communications and workflows between the groups
-- Create new liaison positions as needed to coordinate key initiatives across the Kubernetes community
-- Audit the experience of engaging with the Upstream Marketing team and propose opportunities for improvement
-
-### Minimum Skills and Requirements
-
-Skills:
-
-- Be comfortable with general GitHub workflows. To date, this team still requires some expertise in this department to be effective. Current members can teach specifics but a foundation for this role is necessary. You'll be working inside of multiple repositories with different workflows and helping others on the team with troubleshooting.
-- Be willing and capable of saying "no" as necessary, but try to get to a "yes, and" to help the community achieve its goals. In short, be empathetic.
-- Strong written and verbal communication skills. A willingness to meet (a lot) of new people is important for this work.
-
-Requirements:
-
-- Member of the [Kubernetes GitHub Org]
-- [Reviewer] in the marketing team folder
-- Shadowed under a lead in any role on the team for 6 months total (could be a combination of roles during that time period)
-
-#### Expected Time Investment
-
-- Four hours a week as a minimal target.
-
-#### Duration
-
-Ideally, no lead should be in the same position indefinitely. With that in mind, every member of the Marketing Council is asked to raise awareness of the position and seek a shadow in preparation of them becoming a lead in the future. The team would like to see new leadership every 12 months to keep a fresh perspective.
-
-### Becoming a Shadow
-
-Any Upstream Marketing regular contributor can raise their hand to become a shadow of one or more of the positions in the council. If accepted, the objective of the council members is to nurture that shadow into a leadership position in the next 6 months.
-
-#### Expectations of a Shadow
-
-Consistently communicate and collaborate closely with the Marketing Council member of your choice. The objective is to get you, as the shadown, to be a confident leader of the above responsibilities. Be ready to backfill for them when they are unable to attend a meeting or represent the working group.
-
-[editorial calendar]: https://github.com/orgs/kubernetes/projects/41
-[marketing project]: https://github.com/orgs/kubernetes/projects/39
-[team-resources]: ../team-resources.md
-[Kubernetes GitHub Org]: https://git.k8s.io/community/community-membership.md
-[Reviewer]: ../OWNERS
-[OWNERS]: /communication/OWNERS
-[blogging]: ../storytelling-resources/blog-guidelines.md
-[ethos]: ../CHARTER.md#ethosvision
-[project README]: ../README.md
-[storytellers]: ./storytellers.md \ No newline at end of file
diff --git a/communication/marketing-team/storytelling-resources/blog-guidelines.md b/communication/marketing-team/storytelling-resources/blog-guidelines.md
deleted file mode 100644
index f756b0f6..00000000
--- a/communication/marketing-team/storytelling-resources/blog-guidelines.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Upstream Marketing Blog Guidelines
-
-This initiative falls under the [Upstream Marketing Charter](./CHARTER.md).
-
-We are looking for Kubernetes-curious community members who are **interested in writing** and **care about getting the word out** to our huge community of users, developers, and contributors of all types. Here's how to get involved.
-
-## Requested Content
-
-We are looking for:
-
-* TODO << Request specific types of content
-
-Other types of content, like Kubernetes capabilities and tutorials, are better suited for the [SIG-Docs blogging initiative](/sig-docs/blog-subproject/README.md).
-
-## Submit a Post
-
-The quickest way to get involved is to let the team in [#sig-contribex](https://kubernetes.slack.com/archives/C1TU9EB9S) know that you have an idea for an article.
-
-For now, our official process is to use [SIG-Doc's system](/sig-docs/blog-subproject/README.md).
-
-## Blogger Expectations, Responsibilities, and Info
-
-Anyone is welcome to contribute when they have time.
-
-If you would like to be listed as a member of the team, here are the expectations:
-
-1. Be prepared to write one blog a quarter and participate in edits to other articles. The time commitment is typically 5-10 hours per quarter depending on the number of blog posts in the review queue.
-2. Bloggers are expected to attend at least one upstream marketing team meeting a month or check-in to remain active.
-3. Remain non-partial: if you receive a request to write about a project, an individual, or a group of people from your employer, you should ask an impartial blogger to write it.
-4. As with all contribution to Kubernetes, adhere to the [code of conduct](/code-of-conduct.md), values, and principles of the project.
-
-## How to Write an Effective Blog
-
-Keep the following points in mind as you write in order to speed up the review process:
-
-* Use inclusive language understandable by everyone
- * Rephrase gendered pronouns (change "he" or "she" to "they" or adjust to remove)
- * Remember nothing is simple when you're starting out (remove "just," "simply", and "easy")
- * Define terminology or acronyms (do not assume people know what a term means)
- * Shy away from jargon and colloquial expressions
- * Write clearly and avoid ambiguous sentences
-* Emphasize the things you want readers to remember; tell a story
- * Stay on topic and stick to the facts
- * Design a beginning, middle, and end to your story with a clear call to action
- * Provide evidence and data where applicable, to back up your message
-* Make the article visually appealing
- * Include at least one image (and use public domain or Creative Commons licensed ones)
- * Prefer inclusive images like those from [WOCinTech](https://www.flickr.com/photos/wocintechchat/) and [Queer in Tech](https://www.flickr.com/photos/mapbox/albums/72157713100349311)
- * Find images on sites like [Creative Commons](https://search.creativecommons.org/), [Pexels](https://www.pexels.com/public-domain-images/), and [Unsplash](https://unsplash.com/images/stock/public-domain))
-* Be accountable and honest as an author
- * Remove anything that lacks adequate evidence
- * Avoid interjecting personal reactions
- * Ensure that the blog post is reviewed by the anyone being mentioned in the piece
- * As the author, never talk about your employer, sell, promote, or pitch; this is about upstream community endeavours and the individuals and groups that create it
-
-## Further Recommendations
-
-The following are helpful resources for authoring articles:
-
-* [Creating Quality Content (For Search Engines and People)](https://moz.com/blog/quality-blog-content)
-* [How to write effective documentation for your open source project](https://opensource.com/article/20/3/documentation)
-
-## Review Process
-
-This process is bootstrapped from the sig-docs blog [subproject](/sig-docs/blog-subproject/README.md). Please ask for review from community liaisons on the sig-docs-blog team or let the team in [#sig-contribex](https://kubernetes.slack.com/archives/C1TU9EB9S) know you need help.
diff --git a/communication/meeting-notes-archive/201902-201911_Community_Meeting_Notes.md b/communication/meeting-notes-archive/201902-201911_Community_Meeting_Notes.md
index 29247086..df46b73c 100644
--- a/communication/meeting-notes-archive/201902-201911_Community_Meeting_Notes.md
+++ b/communication/meeting-notes-archive/201902-201911_Community_Meeting_Notes.md
@@ -2320,7 +2320,7 @@ Twitter | [Sep 19th](https://twitter.com/stephenaugustus/status/1174797710043430
* APAC and EU moderators needed the most
* Shoutouts
* Akutz - Major #shoutout to Katharine Berry (@Katharine) for fixing a UX bug within just a few hours of me mentioning it - [https://kubernetes.slack.com/archives/C09QZ4DQB/p1550863111161400](https://kubernetes.slack.com/archives/C09QZ4DQB/p1550863111161400). Ain’t no service like SIG-Testing service, cause SIG-Testing service don’t stop!
- * spiffxp - shoutout to Thomas Runyon (@runyontr) for [https://github.com/kubernetes/kubernetes/pull/72939](https://github.com/kubernetes/kubernetes/pull/72939) allowing us to run eg: `make test-cmd WHAT=deployment` to run just the the deployment cli tests, same sort of thing you can do with `make test` and `make test-integration`
+ * spiffxp - shoutout to Thomas Runyon (@runyontr) for [https://github.com/kubernetes/kubernetes/pull/72939](https://github.com/kubernetes/kubernetes/pull/72939) allowing us to run eg: `make test-cmd WHAT=deployment` to run just the deployment cli tests, same sort of thing you can do with `make test` and `make test-integration`
* bentheelder - shoutout to @gsaenger for writing a wonderful new message for the welcome bot! looking forward to seeing this in more places - ([https://github.com/kubernetes-sigs/contributor-playground/pull/229#issuecomment-466711312](https://github.com/kubernetes-sigs/contributor-playground/pull/229#issuecomment-466711312))
* bentheelder - Shoutout to @jeefy for the really shiny and useful looking structured Kubernetes release notes viewer demo in today's #sig-release meeting, looking forward to seeing more about this!
* Maria - shoutout to Silvia Moura Pina (@smourapina) for putting together a workflow to enable the CI signal subteam of the release team keep on top of flagging issues from e2e tests and coordinate follow-ups and to Jorge Alarcon (@Jorge) for spotting an opportunity to offer broader transparency to what the CI signal team is working on, suggesting a structure and kicking off implementation (find current version at [https://github.com/orgs/kubernetes/projects/11](https://github.com/orgs/kubernetes/projects/11))
diff --git a/communication/moderators.md b/communication/moderators.md
index 99cd13bd..8bb4874a 100644
--- a/communication/moderators.md
+++ b/communication/moderators.md
@@ -44,7 +44,6 @@ Administrator seats: 3
| ------------------- | ------------------- | -------- | ------------------------------------------------------- |
| Aaron Crickenberger | @spiffxp | Americas | [PT - Pacific Time (US West Coast)](https://time.is/PT) |
| Davanum Srinivas | @dims | Americas | [ET - Eastern Time (US East Coast)](https://time.is/ET) |
-| Paris Pittman | @paris | Americas | [PT - Pacific Time (US West Coast)](https://time.is/PT) |
#### Primary Moderators
@@ -175,11 +174,13 @@ Moderators pro tempore seats: 3
### Owner
-Owners seats (non-admin role): 1
+Owners seats (non-admin role): 3
-| Name | Kubernetes Slack ID | Region | Timezone |
-| --------------- | ------------------- | -------- | ---------------------------------------------------- |
-| Chris Aniszczyk | @caniszczyk | Americas | [CT - Central Time (US Central)](https://time.is/CT) |
+| Name | Kubernetes Slack ID | Region | Timezone |
+| --------------- | ------------------- | -------- | ---------------------------------------------------- |
+| Chris Aniszczyk | @caniszczyk | Americas | [CT - Central Time (US Central)](https://time.is/CT) |
+| Bob Killen | @mrbobbytables | Americas | [ET - Eastern Time (US East Coast)](https://time.is/ET) |
+| Ihor Dvoretskyi | @ihor.dvoretskyi | Europe | [EET - Eastern European Time](https://time.is/EET) |
### Moderators
@@ -193,7 +194,6 @@ Moderators seats: 10
| Jorge Alarcon | @alejandrox1 | Americas | [ET - Eastern Time (US East Coast)](https://time.is/ET) |
| Katharine Berry | @Katharine | Americas | [PT - Pacific Time (US West Coast)](https://time.is/PT) |
| Jaice Singer DuMars | @jdumars | Americas | [PT - Pacific Time (US West Coast)](https://time.is/PT) |
-| Paris Pittman | @paris | Americas | [PT - Pacific Time (US West Coast)](https://time.is/PT) |
| Noah Kantrowitz | @coderanger | Americas | [PT - Pacific Time (US West Coast)](https://time.is/PT) |
| Ihor Dvoretskyi | @ihor.dvoretskyi | EMEA | [EET - Eastern European Time](https://time.is/EET) |
| Yang Li | @idealhack | APAC | [JST - Japan Standard Time](https://time.is/Japan) |
@@ -225,7 +225,6 @@ Administrators seats: 6
| Jorge Castro | @castrojo | Americas | [ET - Eastern Time (US East Coast)](https://time.is/ET) |
| Bob Killen | @mrbobbytables | Americas | [ET - Eastern Time (US East Coast)](https://time.is/ET) |
| Jorge Alarcon | @alejandrox1 | Americas | [ET - Eastern Time (US East Coast)](https://time.is/ET) |
-| Paris Pittman | @paris | Americas | [PT - Pacific Time (US West Coast)](https://time.is/PT) |
| Naeil Ezzoueidi | @nzoueidi | EMEA | [CET - Central European Time](https://time.is/CET) |
| Yang Li | @idealhack | APAC | [JST - Japan Standard Time](https://time.is/Japan) |
| Taylor Dolezal | @onlydole | Americas | [PT - Pacific Time (US West Coast)](https://time.is/PT) |
diff --git a/communication/slack-config/OWNERS b/communication/slack-config/OWNERS
index 13a52162..ac070da2 100644
--- a/communication/slack-config/OWNERS
+++ b/communication/slack-config/OWNERS
@@ -8,11 +8,12 @@ approvers:
- mrbobbytables
- alejandrox1
- jdumars
- - parispitmann
- coderanger
- idvoretskyi
- idealhack
- munnerz
- DylanGraham
+emeritus_approvers:
+ - parispitmann
labels:
- area/slack-management
diff --git a/communication/slack-config/channels.yaml b/communication/slack-config/channels.yaml
index a9411546..96dc8d51 100644
--- a/communication/slack-config/channels.yaml
+++ b/communication/slack-config/channels.yaml
@@ -23,6 +23,9 @@ channels:
- name: aus-nz-users
- name: awesome-kubernetes
- name: aws-authenticator
+ - name: aws-controllers-k8s
+ - name: aws-vpc-cni
+ - name: azure-service-operator
- name: bazel
- name: bindings-discuss
- name: bootkube
@@ -60,6 +63,7 @@ channels:
- name: cluster-api-kubemark
- name: cluster-api-kubevirt
- name: cluster-api-nested
+ - name: cluster-api-nutanix
- name: cluster-api-oci
- name: cluster-api-openstack
- name: cluster-api-operator
@@ -83,6 +87,7 @@ channels:
- name: csi-secrets-store #this channel is for secrets-store-csi-driver which is a subproject of sig-auth
- name: de-events
- name: de-users
+ - name: deppy-dev
- name: devfile
- name: devspace
- name: devstats
@@ -90,6 +95,7 @@ channels:
- name: digitalocean-k8s
- name: distroless
- name: diversity
+ - name: dra
- name: draft-dev
- name: draft-users
- name: eks
@@ -106,8 +112,10 @@ channels:
- name: events
- name: external-dns
- name: external-secrets
+ - name: external-secrets-dev
- name: falco
- name: fiaas
+ - name: finops
- name: fi-users
- name: flatcar
- name: flink-operator
@@ -191,7 +199,8 @@ channels:
- name: kcna-exam-prep
- name: klog
- name: knative
- - name: ko-project
+ - name: ko-build
+ id: C01T7DTP65S
- name: kompose
- name: kong
- name: konveyor
@@ -211,10 +220,12 @@ channels:
- name: krex
- name: krustlet
- name: kube-aws
+ - name: kube-bind
- name: kube-deploy
archived: true
- name: kube-monkey
- name: kube-oidc-proxy
+ - name: kube-operating-systems-dev
- name: kube-router
- name: kube-score
- name: kube-spawn
@@ -337,6 +348,7 @@ channels:
- name: openstack-helm
- name: openstack-kolla
- name: operator-builder
+ - name: operator-framework-community
- name: operator-sdk-dev
- name: ops-status
archived: true
@@ -346,10 +358,12 @@ channels:
- name: pharmer
- name: pinniped
- name: pl-users
+ - name: podman-desktop
- name: pr-reviews
- name: prometheus
- name: prometheus-operator
- name: prometheus-operator-dev
+ - name: provider-oci
- name: pt_br-users
- name: purelb-users
- name: raksh
@@ -400,13 +414,8 @@ channels:
- name: sig-instrumentation
- name: sig-multicluster
- name: sig-network
- - name: sig-node
- - name: sig-node-bug-scrub
- - name: sig-node-kmm
- id: C037RE58RED
- - name: sig-node-rkt
- archived: true
- - name: sig-node-swap
+ - name: sig-network-multi-network
+ # sig-node channels are defined in sig-node/
- name: sig-scalability
- name: sig-scheduling
# sig-security* channels are defined in sig-security/
@@ -432,6 +441,7 @@ channels:
- name: suse-caasp
- name: talk-proposals
- name: tanzu-community-edition
+ archived: true
- name: tanzu-streaming-runtimes
- name: terraform-providers
- name: terranetes
diff --git a/communication/slack-config/restrictions.yaml b/communication/slack-config/restrictions.yaml
index 30f97879..b65f837d 100755
--- a/communication/slack-config/restrictions.yaml
+++ b/communication/slack-config/restrictions.yaml
@@ -27,6 +27,11 @@ restrictions:
- path: "sig-network/*.yaml"
channels:
- "^sig-network-.*$"
+ - path: "sig-node/*.yaml"
+ channels:
+ - "^sig-node"
+ usergroups:
+ - "^dra-dev$"
- path: "sig-release/*.yaml"
channels:
- "^sig-release$"
diff --git a/communication/slack-config/sig-node/OWNERS b/communication/slack-config/sig-node/OWNERS
new file mode 100644
index 00000000..810bc689
--- /dev/null
+++ b/communication/slack-config/sig-node/OWNERS
@@ -0,0 +1,8 @@
+# See the OWNERS docs at https://go.k8s.io/owners
+
+reviewers:
+ - sig-node-leads
+approvers:
+ - sig-node-leads
+labels:
+ - sig/node
diff --git a/communication/slack-config/sig-node/config.yaml b/communication/slack-config/sig-node/config.yaml
new file mode 100644
index 00000000..72d41ef8
--- /dev/null
+++ b/communication/slack-config/sig-node/config.yaml
@@ -0,0 +1,8 @@
+channels:
+ - name: sig-node
+ - name: sig-node-bug-scrub
+ - name: sig-node-kmm
+ id: C037RE58RED
+ - name: sig-node-rkt
+ archived: true
+ - name: sig-node-swap
diff --git a/communication/slack-config/sig-node/usergroups.yaml b/communication/slack-config/sig-node/usergroups.yaml
new file mode 100644
index 00000000..1de8d274
--- /dev/null
+++ b/communication/slack-config/sig-node/usergroups.yaml
@@ -0,0 +1,17 @@
+# This file contains a list of all Slack User Groups that are managed by SIG Node.
+
+usergroups:
+ - name: dra-dev
+ long_name: dynamic resource allocation developers
+ description: Developers working on or with the dynamic resource allocation KEP.
+ channels:
+ - sig-node
+ members:
+ # Entries are GitHub handles. They must be listed under ../users.yaml.
+ # Sorted alphabetically!
+ - bart0sh
+ - byako
+ - elezar
+ - klihub
+ - klueska # subproject owner
+ - pohly # subproject owner
diff --git a/communication/slack-config/sig-release/usergroups.yaml b/communication/slack-config/sig-release/usergroups.yaml
index d53c8b2a..2b3b88d8 100644
--- a/communication/slack-config/sig-release/usergroups.yaml
+++ b/communication/slack-config/sig-release/usergroups.yaml
@@ -51,15 +51,15 @@ usergroups:
- release-notes
- sig-release
members:
- - cici37 # 1.25 Release Team Lead
- cpanato # SIG Release Technical Lead
- - gracenng # 1.25 RT Lead Shadow
- - jeremyrickard # SIG Release Technical Lead / 1.23 Release Team EA
- - jlbutler # 1.25 RT Lead Shadow
+ - gracenng # 1.26 RT Lead Shadow
+ - jeremyrickard # SIG Release Technical Lead
- justaugustus # SIG Release Chair
- - leonardpahlke # 1.25 RT Lead Shadow
+ - katcosgrove # 1.26 RT Lead Shadow
+ - leonardpahlke # 1.26 RT Lead
+ - nate-double-u # 1.26 RT Lead Shadow
- puerco # SIG Release Technical Lead
- - salaxander # 1.25 RT Lead Shadow
+ - psaggu # 1.26 RT Lead Shadow
- saschagrunert # SIG Release Chair
# Should match SIG Release Leads at all times:
diff --git a/communication/slack-config/sig-security/config.yaml b/communication/slack-config/sig-security/config.yaml
index 0b2499dc..1d32525d 100644
--- a/communication/slack-config/sig-security/config.yaml
+++ b/communication/slack-config/sig-security/config.yaml
@@ -3,4 +3,4 @@ channels:
- name: sig-security-assess-capi
- name: sig-security-docs
- name: sig-security-tooling
-
+ - name: sig-security-assessments
diff --git a/communication/slack-config/usergroups.yaml b/communication/slack-config/usergroups.yaml
index 10d981df..f814a01a 100644
--- a/communication/slack-config/usergroups.yaml
+++ b/communication/slack-config/usergroups.yaml
@@ -21,8 +21,8 @@ usergroups:
- TaoBeier
- name: contributor-comms
- long_name: Upstream Marketing
- description: Upstream Marketing group.
+ long_name: Contributor Communications
+ description: Contributor Communications group.
channels:
- sig-contribex
members:
@@ -180,18 +180,28 @@ usergroups:
- jonasrosland
- pnbrown
+ - name: podman-desktop-devs
+ long_name: Podman Desktop Dev Team
+ description: Active developers of Podman Desktop on #podman-desktop
+ channels:
+ - podman-desktop
+ members:
+ - cdrage
+ - benoitf
+ - vzhukovs
+
- name: steering-members
long_name: Kubernetes Steering Committee
description: Members of the Kubernetes Steering Committee
channels:
- steering-committee
members:
+ - bentheelder
- cblecker
- - dims
+ - cpanato
- justaugustus
- - liggitt
- mrbobbytables
- - paris
+ - palnabarun
- tpepper
- name: grafana-operator-maintainers
@@ -208,3 +218,38 @@ usergroups:
- robshelly
- vladimirmukhin
- wurbanski
+
+ - name: devfile-devs
+ long_name: Devfile Development Team
+ description: Active developers of Devfile on #devfile
+ channels:
+ - devfile
+ members:
+ - elsony
+ - johnmcollier
+ - kim-tsao
+ - maysunfaisal
+ - michael-valdron
+ - mike-hoang
+ - rtaniwa
+ - schultzp2020
+ - yangcao77
+
+ - name: cluster-api-release-team
+ long_name: Cluster API Release Team
+ description: Members of the Cluster API Release Team
+ members:
+ - alexander-demicev
+ - aniruddha2000
+ - CecileRobertMichon
+ - cpanato
+ - dntosas
+ - furkatgofurov7
+ - hackeramitkumar
+ - joekr
+ - nawazkh
+ - oscr
+ - sayantani11
+ - sbueringer
+ - VibhorChinda
+ - ykakarap
diff --git a/communication/slack-config/users.yaml b/communication/slack-config/users.yaml
index 5ddda289..70583cf5 100644
--- a/communication/slack-config/users.yaml
+++ b/communication/slack-config/users.yaml
@@ -4,28 +4,35 @@ users:
adisky: U9YRVLTEH
alejandrox1: U6AS37R50
aleksandra-malinowska: U357LUPHS
+ alexander-demicev: UR7UCR7RV
AlexB138: U3JA3MDGV
alisondy: U9CBCBLCV
ameukam: U68KPQ448
anandrkskd: U01DRS3V0R2
+ aniruddha2000: U02BU1RP41H
anjaltelang: U028B09KZ5X
ankeesler: UBAA1KQ4A
annajung: U8SLB1P2Q
- AvineshTripathi: U029U44P26B
aravindputrevu: U1G27SDU6
asmacdo: UNVH7RY9J
Atharva-Shinde: U028J67T478
+ AvineshTripathi: U029U44P26B
bai: U4XAULHL3
Bart Farrell: U01DZM7PJDT
+ bart0sh: U8VJC20R3
benjaminapetersen: U0217E7EXV4
+ bentheelder: U1P7T516X
+ benoitf: UCQC3DNUA
bhumijgupta: U022JUBM3B4
briandealwis: UAZKM38JV
bubblemelon: U7K9C643G
+ byako: U03GZBD4J4C
calebamiles: U1ZDD4CUR
camilamacedo86: UJDM393EH
castrojo: U1W1Q6PRQ
cblecker: U3EDWR9FV
cdrage: U2TU9NPH9
+ CecileRobertMichon: U98JPHB2M
cfryanr: U0188B6J42H
chrisshort: U2YGXSD9B
cici37: UTY5J12L9
@@ -40,19 +47,24 @@ users:
dharmit: U0APPPEKE
dims: U0Y7A2MME
divya-mohan0209: UV4J7K97Z
+ dntosas: UKT4D74F3
dougm: U8GG20UE9
+ elezar: ULV21K3CH
+ elsony: UCW8323KL
enj: U2T4CVDTJ
erismaster: U0162FJ79LY
estroz: UKSEANEC9
fabianvf: UAJ3UH29F
feiskyer: U0ASA4398
feloy: UFG7CN85U
+ furkatgofurov7: UV31DL3CG
gianarb: U0FSCELCR
girishramnani: U9M4K75EU
gracenng: U01GX18N6H3
grdryn: U017628HJL8
gsquared94: U0131C0PJBU
guineveresaenger: U4H2QU3DW
+ hackeramitkumar: U045992D532
hasheddan: ULLQEF30C
hoegaarden: U7VA4RZS9
hubertstefanski: U01941KQ2UT
@@ -72,17 +84,23 @@ users:
jlbutler: U0122V3T932
jmccormick2001: UMPLV0G0H
jmrodri: U4KATPQ48
+ joekr: U02MUT273GA
Joel Barker: U014AHSTBPA
joelanford: U1R6NQD8W
joelsmith: U5SLG8T8F
johnbelamaric: U246A1A0N
+ johnmcollier: UCVS4TNMQ
jonasrosland: U0A4G34S2
jrsapi: U0DS2L6E8
justaugustus: U0E0E78AK
kadel: U0DE6E8JY
kaslin: U5ENKU0AE
katharine: UBTBNJ6GL
+ katcosgrove: U01GDERGEHF
kikisdeliveryservice: U9HFFRFT2
+ kim-tsao: U02U1LDH4T1
+ klihub: U9856A799
+ klueska: UF3ARH55Y
Kunal Kushwaha: UQ14U3NAY
LappleApple: U011C07244F
leonardpahlke: U029NBZFV97
@@ -94,27 +112,35 @@ users:
markyjackson-taulia: U19TKJ64E
MarlonGamez: U016N1XK06R
mattmoyer: U0DRP8H42
+ maysunfaisal: U01DEHK2YUB
mbbroberg: U18JTHMDY
micahhausler: U1WJ1BZA5
+ michael-valdron: U03LXKVS0SX
microwavables: UAF606ESE
mik-dass: UCUULSG1W
+ mike-hoang: U03PDV4LS1Z
ming-qiu: U02JVSL5550
mkorbi: UEBLUUA0P
mohammedzee1000: U3PFFE8CD
MonzElmasry: U018U96HYDQ
mrbobbytables: U511ZSKHD
munnerz: U0EC03FTN
+ nate-double-u: U01AWL6BD62
+ nawazkh: U03HJN1C81W
nikhita: U2PQHGMLN
nkubala: UA90QL2BE
nzoueidi: UBU72MWP2
onlydole: U1DD4AZND
+ oscr: U0183J37JUQ
pabloschuhmacher: U01AAGZ06KU
palnabarun: UBH9NTMBM
paris: U5SB22BBQ
+ psaggu: U012EE74CU8
pb82: U019M8295AQ
pensu91: U44FHF81G
phenixblue: UB4UVLEAK
pnbrown: U011JJTQVGF
+ pohly: U91901TMF
prietyc123: U01D4MBLM52
puerco: ULGHLJ7TP
PurneswarPrasad: U027CFKVAB0
@@ -126,11 +152,15 @@ users:
rm3l: U034AQUV7PB
rnapoles-rh: U01KDAMSWJD
robshelly: U01LL4P09SR
+ rtaniwa: U03K27HLHKN
salaxander: UDHV1RXB2
sammy: U8NJFL023
sandipanpanda: U02A47HJ517
saschagrunert: U53SUDBD4
savitharaghunathan: UC8U2V3BM
+ sayantani11: U028S6XNVSN
+ sbueringer: U48TE1L75
+ schultzp2020: U030K8UQA2G
scott-seago: UHGD79E78
sethmccombs: U92LLUZ8A
shamus: US7EUUBK8
@@ -152,10 +182,14 @@ users:
valaparthvi: U016TMJVDAA
varshaprasad96: UK59YP2DA
Verolop: U7NNE57PU
+ VibhorChinda: U031EALE91D
vladimirmukhin: UHVSCSD4G
+ vzhukovs: U030TR1FG85
wilsonehusin: U0100068GF2
wurbanski: URX7CMK97
xmudrii: U4Q2TNGVD
xun-jiang: U02J0QC1VKJ
+ yangcao77: U01D1VCNJQ3
yinw: UMVD1GDCY
+ ykakarap: U0145EMCA03
zubron: U7G0KNS86
diff --git a/communication/slack-guidelines.md b/communication/slack-guidelines.md
index a9f6afa4..45f0e75f 100644
--- a/communication/slack-guidelines.md
+++ b/communication/slack-guidelines.md
@@ -38,7 +38,7 @@ message) one privately.
The Kubernetes Slack Workspace is archived and made available when the
administrators have time. There is no explicit interval.
-[Slack Archive Download][]
+[Slack Archive Download]
### DM (Direct Message) Conversations
@@ -100,7 +100,7 @@ determining if you should request a channel:
- The channel MUST be Kubernetes related in some way.
- Related cloud native projects might be more appropriate on the
- [CNCF Slack][].
+ [CNCF Slack].
- The project MUST be open source.
- Open Source a project BEFORE requesting a channel. We cannot accommodate
every organization's open sourcing launch plans.
@@ -125,18 +125,18 @@ determining if you should request a channel:
project channel is too noisy, but please don't create both at the
start.
- If you need private discussion areas for security-sensitive topics, a
- project-specific Slack or the [CNCF Slack][] may be a better fit.
+ project-specific Slack or the [CNCF Slack] may be a better fit.
- Ask in `#slack-admins` or file an issue if you're unsure It never hurts to
ask.
## Requesting a Channel
-Channels and User Groups are managed by [Tempelis][], a tool that enables
+Channels and User Groups are managed by [Tempelis], a tool that enables
external management of Slack.
-To add a channel, open a Pull Request (PR) updating the [slack-config][].
+To add a channel, open a Pull Request (PR) updating the [slack-config].
-- Add the channel to 'channels.yaml' following the [Channel Documentation][]
+- Add the channel to 'channels.yaml' following the [Channel Documentation]
- Channel names must be 21 characters or less in length, limited by Slack
design.
- Channels must not share the same name with a Slack user or user group.
@@ -167,7 +167,7 @@ There are two approvals needed. `/lgtm` and `/approve`. Once one moderator give
and add the `/approve` command as well as `/hold cancel`, which will remove the hold on the PR.
Once it is signed off and merged, the channel will be created.
-For further information, see the [Slack Config Documentation][].
+For further information, see the [Slack Config Documentation].
### Delegating Channel Ownership
@@ -177,9 +177,9 @@ Admins to sign-off on all requests and passes the responsibility to the most
relevant group.
To delegate channel ownership - Open a Pull Request (PR) updating the
-[slack-config][].
+[slack-config].
-- Create a sub-directory under the [slack-config][] for your sig or group.
+- Create a sub-directory under the [slack-config] for your sig or group.
- Update restrictions.yaml with an entry targeting yaml config files in the
sub-directory you created along with one or more regular expressions that
match the channel names that should be delegated.
@@ -191,7 +191,7 @@ To delegate channel ownership - Open a Pull Request (PR) updating the
- "^kubernetes-foo-[a-z]{1,3}$" # channel regexp - example match: kubernetes-foo-bar
- "^foo-[a-zA-Z]+$" # channel regexp - example match: foo-awesomechannel
```
-- Create an [OWNERS][] file in the sub-directory adding the appropriate
+- Create an [OWNERS] file in the sub-directory adding the appropriate
reviewers and approvers for the desired channels.
- In the directory create one or more channel configs following the Channel
Documentation
@@ -211,18 +211,18 @@ For further information, see the
## Requesting a User Group
-Channels and User Groups are managed by [Tempelis][], a tool that enables
+Channels and User Groups are managed by [Tempelis], a tool that enables
external management of Slack.
-To add a User Group, open a Pull Request (PR) updating the [slack-config][].
+To add a User Group, open a Pull Request (PR) updating the [slack-config].
- Add the users to users.yaml. **NOTE:** This must be a mapping of their
GitHub ID to their Slack Member ID.
- To get a person's Slack Member ID, view their profile. Then click on the
"**...**" and select **Copy member ID**. It will be a 9 character string of
uppercase letters and numbers (example: `U1H63D8SZ`).
-- Update [usergroups.yaml][] Follow the guidelines for creating a User Group
- in the Slack Config [User Group Documentation][].
+- Update [usergroups.yaml] Follow the guidelines for creating a User Group
+ in the Slack Config [User Group Documentation].
- In the PR comments, include details on the User Group and `/cc` the members
you are adding so that they may sign off and accept being added to the
group.
@@ -247,7 +247,7 @@ ensure everyone has a great experience.
Typically approved requests include: GitHub, CNCF requests, or other
tools/platforms used to aid in the management of Slack itself.
-- Create a [GitHub Issue][] using the Slack Request template.
+- Create a [GitHub Issue] using the Slack Request template.
- In the description, describe the request, its intended purpose and benefit
to the community. Supplying links to supporting content such as a document
outlining what OAuth scopes that are requested and why are **STRONGLY
@@ -263,7 +263,7 @@ discussed in Slack itself.
### Admin Expectations and Guidelines
Admins should adhere to the general Kubernetes project
-[moderation guidelines][].
+[moderation guidelines].
Additionally, admins should ensure they have 2-factor auth enabled for their
account and mention they are a Slack admin in the "What I do" portion of their
@@ -315,7 +315,7 @@ In general, use your best judgment.
Once two Slack admins have reviewed and agreed to sponsor the channel, they will
sign off on the Channel Request PR. Once merged, the channel will be created.
-Channels managed by [Tempelis][] will automatically have default messages
+Channels managed by [Tempelis] will automatically have default messages
pinned. For any manually-provisioned channels, such as private channels, add the
below message and pin it.
@@ -359,7 +359,7 @@ steps.
For the reasons listed below, admins may inactivate individual Slack accounts.
Due to Slack's framework, it does not allow for an account to be banned or
suspended in the traditional sense, merely inactivated.
-See [Slack's policy on inactivated accounts][] for more information.
+See [Slack's policy on inactivated accounts] for more information.
#### Reasons to inactivate an account
diff --git a/communication/youtube/OWNERS b/communication/youtube/OWNERS
index bb84ded5..3f77586f 100644
--- a/communication/youtube/OWNERS
+++ b/communication/youtube/OWNERS
@@ -1,7 +1,6 @@
# See the OWNERS docs at https://go.k8s.io/owners
reviewers:
- - parispittman
- jeefy
- mrbobbytables
- chris-short
diff --git a/communication/youtube/youtube-guidelines.md b/communication/youtube/youtube-guidelines.md
index e8f2feab..0bd56d03 100644
--- a/communication/youtube/youtube-guidelines.md
+++ b/communication/youtube/youtube-guidelines.md
@@ -21,15 +21,15 @@ and includes all communications such as YouTube.
## Meeting Playlists
-The [Kubernetes YouTube Channel][] has separate playlists for each SIG, WG, UG
+The [Kubernetes YouTube Channel] has separate playlists for each SIG, WG, UG
meeting recordings, as well as recordings of other recurring events such as the
-Kubernetes [community meeting][], [Office Hours][], [Meet our Contributors][]
+Kubernetes [community meeting], [Office Hours], [Meet our Contributors]
and others.
-[Subprojects][], in addition to SIGs, WGs, UGs may request their own playlists
+[Subprojects], in addition to SIGs, WGs, UGs may request their own playlists
to better target their contributors and increase general discoverability.
-To better serve the community, [collaboration][] has been enabled to share the
+To better serve the community, [collaboration] has been enabled to share the
management of the playlists. Anyone with the appropriate link to the particular
playlist can upload videos *to that particular playlist* (links & playlists are
one-to-one).
@@ -41,9 +41,9 @@ Hours, will be shared with the appropriate point(s) of contact.
### Uploading Guidelines for Collaborators
**NOTE:** If you're using a Google Workspace account (formerly known as G Suite)
-you may need to [update the permissions in your YouTube settings][]. If you have
-any questions, reach out to the [YouTube admins][] or
-[SIG Contributor Experience][]. You may need to reach out to someone at your
+you may need to [update the permissions in your YouTube settings]. If you have
+any questions, reach out to the [YouTube admins] or
+[SIG Contributor Experience]. You may need to reach out to someone at your
organization if you do not have access to Google Workspace Admin permissions.
**NOTE:** Both public and private steering meeting recordings should be made
@@ -103,7 +103,7 @@ our governance documents.
### Moderator Expectations and Guidelines
Moderators should adhere to the general Kubernetes project
-[moderation guidelines][].
+[moderation guidelines].
Moderation responsibilities for YouTube admins is minimal and is centered around
checking and removing any potential comments that would violate the
@@ -112,7 +112,7 @@ checking and removing any potential comments that would violate the
### Trimming and Editing Recordings
-YouTube admins are asked to help [trim][] and [edit][] recordings that come into
+YouTube admins are asked to help [trim] and [edit] recordings that come into
the video queue.
#### Examples:
@@ -149,7 +149,7 @@ the steps outlined below.
you or reset it to a new one.
- Kubernetes YouTube admin permissions
- A correctly set up recurring meeting with a start and end time (this is
- important) - check [Zoom guidelines][] for more details
+ important) - check [Zoom guidelines] for more details
**Steps:**
@@ -166,13 +166,13 @@ the steps outlined below.
The following SIGs and groups are currently running splain.io:
-- [SIG Auth][]
-- [SIG Contributor Experience][]
-- [SIG Docs][]
-- [SIG Network][]
-- [SIG Release][]
-- [Steering Committee][]
-- [WG Data Protection][]
+- [SIG Auth]
+- [SIG Contributor Experience]
+- [SIG Docs]
+- [SIG Network]
+- [SIG Release]
+- [Steering Committee]
+- [WG Data Protection]
- The main Zoom admin account which holds Meet Our Contributors and others (if
you log in to splain using this account, all of the other accounts will be
logged here)
@@ -214,9 +214,9 @@ to hear from you.
### Streaming Events
YouTube admins with a system capable of streaming may be asked to stream public
-Kubernetes Community events such as the weekly [Community Meeting][],
-[Office Hours][], [Meet our Contributors][], or other publicly streamed
-events. For detailed information about streaming, see our [Streaming Config][].
+Kubernetes Community events such as the weekly [Community Meeting],
+[Office Hours], [Meet our Contributors], or other publicly streamed
+events. For detailed information about streaming, see our [Streaming Config].
### Migrating Content
@@ -225,7 +225,7 @@ be useful to grab content from other channels. It is currently NOT POSSIBLE to
move content from one YouTube channel to another, so the content must be
downloaded and then reuploaded to the Kubernetes channel.
-1. Download [youtube-dl][], which makes it easier to bulk download videos.
+1. Download [youtube-dl], which makes it easier to bulk download videos.
2. Download the channel or playlist with: `youtube-dl <url>`
3. Clean up the filenames as they are used to generate new titles. Do this
locally since it is easier than doing it per video in the YouTube web UI.
diff --git a/communication/zoom-guidelines.md b/communication/zoom-guidelines.md
index 9a5e4858..00df1f0a 100644
--- a/communication/zoom-guidelines.md
+++ b/communication/zoom-guidelines.md
@@ -5,34 +5,34 @@ description: |
---
Zoom is the main video communication platform for Kubernetes. It is used for
-running the [community meeting][], [SIG/WG meetings][], [Office Hours][],
-[Meet Our Contributors][] and many other Kubernetes online events. Since the Zoom
+running the [community meeting], [SIG/WG meetings], [Office Hours],
+[Meet Our Contributors] and many other Kubernetes online events. Since the Zoom
meetings are open to the general public, a Zoom host or co-host has to moderate
a meeting in all senses of the word, from starting and stopping the meeting to
-acting on [Kubernetes code of conduct][] issues.
+acting on [Kubernetes code of conduct] issues.
These guidelines are meant as a tool to help Kubernetes members manage their
Zoom resources.
-Check the main [moderation][] page for more information on other tools
+Check the main [moderation] page for more information on other tools
and general moderation guidelines.
## Code of conduct
-The Kubernetes project adheres to the [Kubernetes Code of Conduct][]
+The Kubernetes project adheres to the [Kubernetes Code of Conduct]
throughout all platforms and includes all communication mediums.
## Zoom license management
-Zoom licenses are managed by the [CNCF Service Desk][] through the
-[Zoom Admins][] listed in the [centralized list of administrators][].
+Zoom licenses are managed by the [CNCF Service Desk] through the
+[Zoom Admins] listed in the [centralized list of administrators].
### Obtaining a Zoom license
Ensure that all SIG/WG leads, chairs, and any other necessary trusted owners
have access to the `k-sig-<foo>-leads@googlegroups.com` account as described in
-the [sig creation procedure][]. Once done, contact one of the [Zoom Admins][] to
+the [sig creation procedure]. Once done, contact one of the [Zoom Admins] to
obtain a Zoom license.
## Setting up your meeting and moderation
@@ -42,9 +42,9 @@ and others who would intentionally attempt to disrupt your Zoom call.
To create a meeting with **moderation** enabled, ensure the following:
-- Have the [latest version][] of the Zoom client installed.
+- Have the [latest version] of the Zoom client installed.
- Be logged in as the leads account associated with the meeting **OR** use the
- [host key][] to "claim host".
+ [host key] to "claim host".
- Configure a meeting setup through the "Meeting" menu in the leads Zoom
account. **NOTE:** Do **NOT** use the "Personal Meeting ID". This will
create an "ad-hoc" meeting that is time-bounded and without moderation
@@ -64,7 +64,7 @@ After the meeting has started:
If you're dealing with a troll or bad actor:
- Put the troll or bad actor on **hold**. The participant will be put into a
- [waiting room][] and will not be able to participate in the call until the
+ [waiting room] and will not be able to participate in the call until the
host removes the hold.
- **NOTE:** Depending on your client version this will be called "**Put in
Waiting Room**" instead of on **hold**.
@@ -75,7 +75,7 @@ If you're dealing with a troll or bad actor:
remove.
- After an action has been taken, use the **lock meeting** feature so that no
one else can come into the meeting. If that fails, end the call
- immediately, and contact the [Zoom Admins][] to report the issue.
+ immediately, and contact the [Zoom Admins] to report the issue.
**NOTE:** You can find these actions when clicking on the **more** or **"..."**
options after scrolling over the participants name/information.
@@ -83,21 +83,21 @@ options after scrolling over the participants name/information.
Hosts **must** be comfortable with how to use these moderation tools and the
Zoom settings in general. Make sure whoever is running your meeting is equipped
with the right knowledge and skills. If you have any questions or concerns,
-reach out to the [Zoom Admins][] and they will be able to provide further
+reach out to the [Zoom Admins] and they will be able to provide further
guidance and training.
#### Related moderation documentation
-- Zoom has [documentation on how to use their moderation tools][].
+- Zoom has [documentation on how to use their moderation tools].
- Members of the _leads@_ group have access to an extensive
- [best practices doc][] with screenshots going over the community Zoom best
+ [best practices doc] with screenshots going over the community Zoom best
practices.
### Escalating and Reporting a Problem
Issues that cannot be handled via normal moderation, or with the assistance of
-the [Zoom Admins][] should be escalated to the Kubernetes
-[Code of Conduct Committee][] at conduct@kubernetes.io.
+the [Zoom Admins] should be escalated to the Kubernetes
+[Code of Conduct Committee] at conduct@kubernetes.io.
To contact the admin group in Slack, ping `@zoom-admins` in the `#sig-contribex`
Slack channel.
@@ -105,17 +105,17 @@ Slack channel.
## Meeting recordings
Chairs and TLs are responsible for posting all update meetings to their playlist
-on YouTube. [Please follow this guideline for more details][].
+on YouTube. [Please follow this guideline for more details].
If a violation has been addressed by a host and it has been recorded by Zoom,
-the video should be edited before being posted on the [Kubernetes channel][].
+the video should be edited before being posted on the [Kubernetes channel].
-Contact [SIG Contributor Experience][] if you need help to edit a video
+Contact [SIG Contributor Experience] if you need help to edit a video
before posting it to the public.
## Screen sharing guidelines and recommendations
-Zoom has [documentation on how to use their screen sharing feature][].
+Zoom has [documentation on how to use their screen sharing feature].
Recommendations:
@@ -129,7 +129,7 @@ Recommendations:
## Audio/Video quality recommendations
While video conferencing has been a real boon to productivity there are still
-[lots of things that can go wrong][] during a conference video call.
+[lots of things that can go wrong] during a conference video call.
There are some things that are just plain out of your control, but there are
some things that you can control. Here are some tips if you're just getting into
@@ -142,8 +142,8 @@ favor.
- **A dedicated microphone** - This is the number one upgrade you can do.
Sound is one of those things that can immediately change the quality of
your call. If you plan on being here for the long haul, something like a
- [Blue Yeti][] will work great due to the simplicity of using USB
- audio and having a hardware mute button. Consider a [pop filter][]
+ [Blue Yeti] will work great due to the simplicity of using USB
+ audio and having a hardware mute button. Consider a [pop filter]
as well if necessary.
- **A Video Camera** - A bad image can be worked around if the audio is good.
Certain models have noise canceling dual-microphones, which are a great
@@ -165,7 +165,7 @@ for which models work best.
### Pro-tips
-- [Join on muted audio and video][] in order to prevent noise to those
+- [Join on muted audio and video] in order to prevent noise to those
already in a call.
- If you don't have anything to say at that moment, **MUTE**. This is a common
problem. You can help out a teammate by mentioning it on Zoom chat or
diff --git a/community-membership.md b/community-membership.md
index f823127a..425d4415 100644
--- a/community-membership.md
+++ b/community-membership.md
@@ -125,7 +125,7 @@ an [OWNERS] file (for repos using the bot).
The following apply to the part of codebase for which one would be a reviewer in
an [OWNERS] file (for repos using the bot).
-- Tests are automatically run for PullRequests from members of the Kubernetes GitHub organization
+- Tests are automatically run for Pull Requests from members of the Kubernetes GitHub organization
- Code reviewer status may be a precondition to accepting large code contributions
- Responsible for project quality control via [code reviews]
- Focus on code quality and correctness, including testing and factoring
@@ -233,7 +233,7 @@ an [elevated set of permissions]. These capabilities should not be used by those
that are not familiar with the current state of the Kubernetes project.
Therefore members with an extended period away from the project with no activity
-will be removed from the Kubernetes Github Organizations and will be required to
+will be removed from the Kubernetes GitHub Organizations and will be required to
go through the org membership process again after re-familiarizing themselves
with the current state.
diff --git a/contributors/chairs-and-techleads/README.md b/contributors/chairs-and-techleads/README.md
index e6eed3c7..27879f06 100644
--- a/contributors/chairs-and-techleads/README.md
+++ b/contributors/chairs-and-techleads/README.md
@@ -37,7 +37,7 @@ Other best practices:
[Governance Principles]
## Communication and feedback loops:
-Place for leads to get info, talk to other leads, best practices, demos, and
+A Place for leads to get info, talk to other leads, best practices, demos, and
more:
- [Monthly meeting]
- Time:
@@ -67,7 +67,7 @@ community discussion.
- Great for growing contributor ladder roles
- [mentoring-programs]
-### Recogition
+### Recognition
Is someone in your group deserving of recognition? Great! There are a few ways
to do this depending on the situation and end goals. Our community is built
@@ -85,7 +85,7 @@ Try #shoutouts on the Kubernetes slack!
given the appropriate level of priority.
#### Awards
There are a few times a year that Kubernetes and the larger CNCF community
-intentionally recognizes members of the commuity for certain roles and
+intentionally recognizes members of the community for certain roles and
accomplishments. The leads@ mailing list and slack channel will have
announcements for when nominations are open.
- [Contributor Summit] Awards
@@ -112,4 +112,4 @@ announcements for when nominations are open.
[CNCF Awards]: https://github.com/cncf/awards
[cncf swag store]: (https://store.cncf.io/collections/kubernetes)
[calendar template]: https://github.com/kubernetes/community/blob/master/communication/calendar-guidelines.md#calendar-event-template
-[leads@kubernetes.io]: https://github.com/kubernetes/k8s.io/blob/aa1214087863c7a850bf84936bd1d1b67d0064a9/groups/groups.yaml#L6 \ No newline at end of file
+[leads@kubernetes.io]: https://github.com/kubernetes/k8s.io/blob/aa1214087863c7a850bf84936bd1d1b67d0064a9/groups/groups.yaml#L6
diff --git a/contributors/devel/README.md b/contributors/devel/README.md
index 9daaa3d1..8f5c1194 100644
--- a/contributors/devel/README.md
+++ b/contributors/devel/README.md
@@ -73,7 +73,7 @@ Guide](http://kubernetes.io/docs/admin/).
Authorization applies to all HTTP requests on the main apiserver port.
This doc explains the available authorization implementations.
-* **Admission Control Plugins** ([admission_control](/contributors/design-proposals/api-machinery/admission_control.md))
+* **Admission Control Plugins** ([admission_control](https://git.k8s.io/design-proposals-archive/api-machinery/admission_control.md))
## Building releases
@@ -87,7 +87,7 @@ See the [kubernetes/release](https://github.com/kubernetes/release) repository f
How cherry picks are managed on release branches within the `kubernetes/kubernetes` repository.
* **Getting Kubernetes Builds** [getting-builds.md](sig-release/getting-builds.md)
-
+
* **Targeting enhancements, Issues and PRs to Release Milestones** [release.md](sig-release/release.md)
### SIG Instrumentation
@@ -119,7 +119,7 @@ See the [kubernetes/release](https://github.com/kubernetes/release) repository f
* **Understanding the Kubernetes Scheduler** [scheduling_code_hierarchy_overview.md](sig-scheduling/scheduling_code_hierarchy_overview.md)
-* **Scheduler Algorithm in Kubernetes** [scheduler_algorithm.md](sig-scheduling/scheduler_algorithm.md)
+* **Customizing the Kubernetes Scheduler** [scheduler configuration](https://kubernetes.io/docs/reference/scheduling/config/)
* **Understanding how Pods are queued in Kubernetes Scheduler** [scheduler_queues.md](sig-scheduling/scheduler_queues.md)
@@ -157,7 +157,7 @@ See the [kubernetes/release](https://github.com/kubernetes/release) repository f
* **Integration Testing in Kubernetes** [integration-tests.md](sig-testing/integration-tests.md)
-* **End-to-End Testing in Kubernetes** [e2e-tests.md](sig-testing/e2e-tests.md) and [e2e-tests-kubetest2.md](sig-testing/e2e-tests-kubetest2.md)
+* **End-to-End Testing in Kubernetes** [e2e-tests.md](sig-testing/e2e-tests.md) and [e2e-tests-kubetest2.md](sig-testing/e2e-tests-kubetest2.md)
* **Debugging with Gubernator** [gubernator.md](sig-testing/gubernator.md)
diff --git a/contributors/devel/development.md b/contributors/devel/development.md
index 527b5d77..6729fa1e 100644
--- a/contributors/devel/development.md
+++ b/contributors/devel/development.md
@@ -3,7 +3,7 @@
This document is the canonical source of truth for things like supported
toolchain versions for building Kubernetes.
-Please submit an [issue] on Github if you
+Please submit an [issue] on GitHub if you
* Notice a requirement that this doc does not capture.
* Find a different doc that specifies requirements (the doc should instead link
here).
@@ -322,6 +322,10 @@ this permanent, add this to your `.bashrc` or login script:
export PATH="$GOPATH/src/k8s.io/kubernetes/third_party/etcd:${PATH}"
```
+##### BASH version requirement
+
+To successfully run unit tests in Kubernetes, you will need bash version installed to be >4.3.
+
Once you have installed all required software, you can proceed to the
[Building Kubernetes](#building-kubernetes) section to test if it all works properly.
diff --git a/contributors/devel/running-locally.md b/contributors/devel/running-locally.md
index 3c2d9563..89b5d960 100644
--- a/contributors/devel/running-locally.md
+++ b/contributors/devel/running-locally.md
@@ -50,7 +50,7 @@ The [CFSSL](https://cfssl.org/) binaries (cfssl, cfssljson) must be installed an
The easiest way to get it is to run these shell commands:
```sh
-go get -u github.com/cloudflare/cfssl/cmd/...
+go install github.com/cloudflare/cfssl/cmd/...@latest
PATH=$PATH:$GOPATH/bin
```
diff --git a/contributors/devel/sig-api-machinery/controllers.md b/contributors/devel/sig-api-machinery/controllers.md
index 505769f2..bd5d88f0 100644
--- a/contributors/devel/sig-api-machinery/controllers.md
+++ b/contributors/devel/sig-api-machinery/controllers.md
@@ -62,7 +62,7 @@ When you're writing controllers, there are few guidelines that will help make su
This lets clients know that the controller has processed a resource. Make sure that your controller is the main controller that is responsible for that resource, otherwise if you need to communicate observation via your own controller, you will need to create a different kind of ObservedGeneration in the Status of the resource.
-1. Consider using owner references for resources that result in the creation of other resources (eg. a ReplicaSet results in creating Pods). Thus you ensure that children resources are going to be garbage-collected once a resource managed by your controller is deleted. For more information on owner references, read more [here](/contributors/design-proposals/api-machinery/controller-ref.md).
+1. Consider using owner references for resources that result in the creation of other resources (eg. a ReplicaSet results in creating Pods). Thus you ensure that children resources are going to be garbage-collected once a resource managed by your controller is deleted. For more information on owner references, read more [here](https://git.k8s.io/design-proposals-archive/api-machinery/controller-ref.md).
Pay special attention in the way you are doing adoption. You shouldn't adopt children for a resource when either the parent or the children are marked for deletion. If you are using a cache for your resources, you will likely need to bypass it with a direct API read in case you observe that an owner reference has been updated for one of the children. Thus, you ensure your controller is not racing with the garbage collector.
diff --git a/contributors/devel/sig-api-machinery/generating-clientset.md b/contributors/devel/sig-api-machinery/generating-clientset.md
index 3eb46b3e..8b858fc8 100644
--- a/contributors/devel/sig-api-machinery/generating-clientset.md
+++ b/contributors/devel/sig-api-machinery/generating-clientset.md
@@ -1,6 +1,6 @@
# Generation and release cycle of clientset
-Client-gen is an automatic tool that generates [clientset](/contributors/design-proposals/api-machinery/client-package-structure.md#high-level-client-sets) based on API types. This doc introduces the use of client-gen, and the release cycle of the generated clientsets.
+Client-gen is an automatic tool that generates [clientset](https://git.k8s.io/design-proposals-archive/api-machinery/client-package-structure.md#high-level-client-sets) based on API types. This doc introduces the use of client-gen, and the release cycle of the generated clientsets.
## Using client-gen
diff --git a/contributors/devel/sig-api-machinery/strategic-merge-patch.md b/contributors/devel/sig-api-machinery/strategic-merge-patch.md
index 1b986781..3cd2f891 100644
--- a/contributors/devel/sig-api-machinery/strategic-merge-patch.md
+++ b/contributors/devel/sig-api-machinery/strategic-merge-patch.md
@@ -223,7 +223,7 @@ item that has duplicates will delete all matching items.
`setElementOrder` directive provides a way to specify the order of a list.
The relative order specified in this directive will be retained.
-Please refer to [proposal](/contributors/design-proposals/cli/preserve-order-in-strategic-merge-patch.md) for more information.
+Please refer to [proposal](https://git.k8s.io/design-proposals-archive/cli/preserve-order-in-strategic-merge-patch.md) for more information.
### Syntax
@@ -302,7 +302,7 @@ containers:
`retainKeys` directive provides a mechanism for union types to clear mutual exclusive fields.
When this directive is present in the patch, all the fields not in this directive will be cleared.
-Please refer to [proposal](/contributors/design-proposals/api-machinery/add-new-patchStrategy-to-clear-fields-not-present-in-patch.md) for more information.
+Please refer to [proposal](https://git.k8s.io/design-proposals-archive/api-machinery/add-new-patchStrategy-to-clear-fields-not-present-in-patch.md) for more information.
### Syntax
diff --git a/contributors/devel/sig-architecture/api-conventions.md b/contributors/devel/sig-architecture/api-conventions.md
index a32058a5..98cfc27d 100644
--- a/contributors/devel/sig-architecture/api-conventions.md
+++ b/contributors/devel/sig-architecture/api-conventions.md
@@ -111,7 +111,7 @@ its sole use. When choosing a group name, we recommend selecting a subdomain
your group or organization owns, such as "widget.mycompany.com".
Version strings should match
-[DNS_LABEL](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/identifiers.md)
+[DNS_LABEL](https://git.k8s.io/design-proposals-archive/architecture/identifiers.md)
format.
@@ -419,27 +419,46 @@ Conditions are most useful when they follow some consistent conventions:
consistent standard, the `Ready` and `Succeeded` condition types may be used
by API designers for long-running and bounded-execution objects, respectively.
-The `FooCondition` type for some resource type `Foo` may include a subset of the
-following fields, but must contain at least `type` and `status` fields:
-
+Conditions should follow the standard schema included in [k8s.io/apimachinery/pkg/apis/meta/v1/types.go](https://github.com/kubernetes/apimachinery/blob/release-1.23/pkg/apis/meta/v1/types.go#L1432-L1492).
+It should be included as a top level element in status, similar to
```go
- Type FooConditionType `json:"type" description:"type of Foo condition"`
- Status ConditionStatus `json:"status" description:"status of the condition, one of True, False, Unknown"`
+Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
+```
- // +optional
- Reason *string `json:"reason,omitempty" description:"one-word CamelCase reason for the condition's last transition"`
- // +optional
- Message *string `json:"message,omitempty" description:"human-readable message indicating details about last transition"`
+The `metav1.Conditions` includes the following fields
- // +optional
- LastTransitionTime *unversioned.Time `json:"lastTransitionTime,omitempty" description:"last time the condition transit from one status to another"`
+```go
+// type of condition in CamelCase or in foo.example.com/CamelCase.
+// +required
+Type string `json:"type" protobuf:"bytes,1,opt,name=type"`
+// status of the condition, one of True, False, Unknown.
+// +required
+Status ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"`
+// observedGeneration represents the .metadata.generation that the condition was set based upon.
+// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+// with respect to the current state of the instance.
+// +optional
+ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"`
+// lastTransitionTime is the last time the condition transitioned from one status to another.
+// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
+// +required
+LastTransitionTime Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"`
+// reason contains a programmatic identifier indicating the reason for the condition's last transition.
+// Producers of specific condition types may define expected values and meanings for this field,
+// and whether the values are considered a guaranteed API.
+// The value should be a CamelCase string.
+// This field may not be empty.
+// +required
+Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"`
+// message is a human readable message indicating details about the transition.
+// This may be an empty string.
+// +required
+Message string `json:"message" protobuf:"bytes,6,opt,name=message"`
```
Additional fields may be added in the future.
-Do not use fields that you don't need - simpler is better.
-
-Use of the `Reason` field is encouraged.
+Use of the `Reason` field is required.
Condition types should be named in PascalCase. Short condition names are
preferred (e.g. "Ready" over "MyResourceReady").
@@ -961,7 +980,7 @@ read/modify/write cycle, by verifying that the current value of resourceVersion
matches the specified value.
The resourceVersion is currently backed by [etcd's
-modifiedIndex](https://coreos.com/etcd/docs/latest/v2/api.html).
+mod_revision](https://etcd.io/docs/latest/learning/api/#key-value-pair).
However, it's important to note that the application should *not* rely on the
implementation details of the versioning system maintained by Kubernetes. We may
change the implementation of resourceVersion in the future, such as to change it
@@ -1651,7 +1670,7 @@ called `Fooable`, not `IsFooable`.
### Namespace Names
* The name of a namespace must be a
-[DNS_LABEL](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/identifiers.md).
+[DNS_LABEL](https://git.k8s.io/design-proposals-archive/architecture/identifiers.md).
* The `kube-` prefix is reserved for Kubernetes system namespaces, e.g. `kube-system` and `kube-public`.
* See
[the namespace docs](https://kubernetes.io/docs/user-guide/namespaces/) for more information.
@@ -1976,4 +1995,3 @@ need human evaluation to decide. For example, Service `clusterIP` is highly
coupled to the rest of Service and most instances use it. But it also is
strictly optional and has an increasingly complicated schema of related fields.
An argument could be made for either path.
->>>>>>> 49012588 (Loosen the meaning of status in API conventions)
diff --git a/contributors/devel/sig-architecture/api_changes.md b/contributors/devel/sig-architecture/api_changes.md
index b51e7a7d..22c22b05 100644
--- a/contributors/devel/sig-architecture/api_changes.md
+++ b/contributors/devel/sig-architecture/api_changes.md
@@ -921,8 +921,8 @@ doing!
Check out the [E2E docs](../sig-testing/e2e-tests.md) for detailed information about how to
write end-to-end tests for your feature.
-Make sure the E2E tests are running in the default presubmits for a feature that
-is being promoted to Beta (enabled by default).
+Make sure the E2E tests are running in the default presubmits for a feature/API that
+is enabled by default.
## Examples and docs
@@ -984,7 +984,10 @@ complexity of upgradeability and lack of long-term support and lack of
upgradability.
- Beta level:
- Object Versioning: API version name contains `beta` (e.g. `v2beta3`)
- - Availability: in official Kubernetes releases, and enabled by default
+ - Availability: in official Kubernetes releases; API is disabled by default
+but may be enabled by a flag.
+(Note: beta APIs introduced before v1.24 were enabled by default, but this
+[changed for new beta APIs](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/3136-beta-apis-off-by-default/README.md))
- Audience: users interested in providing feedback on features
- Completeness: all API operations, CLI commands, and UI support should be
implemented; end-to-end tests complete; the API has had a thorough API review
diff --git a/contributors/devel/sig-architecture/conformance-tests.md b/contributors/devel/sig-architecture/conformance-tests.md
index 30b951df..91026639 100644
--- a/contributors/devel/sig-architecture/conformance-tests.md
+++ b/contributors/devel/sig-architecture/conformance-tests.md
@@ -107,7 +107,7 @@ Generally speaking, the goals are to:
- Make sure tests that are already passing remain passing. If new OS-specific
functionality is added, it should be in a new test.
- Ensure that new tests covering Linux-specific functionality are tagged with `[LinuxOnly]`
-(see: [Kinds of Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md#kinds-of-tests),
+(see: [Kinds of Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md#kinds-of-tests)).
- Give future reviewers a reference to an active issue or documentation clarifying why a test
cannot run on Windows.
@@ -115,7 +115,7 @@ The tests that are running today:
- Rely only on container images that already have a multi-architecture manifest
including Windows versions, or have been ported by SIG-Windows
-(see [kubernetes-sigs/windows-testing/images](https://github.com/kubernetes-sigs/windows-testing/tree/master/images)
+(see [kubernetes-sigs/windows-testing/images](https://github.com/kubernetes-sigs/windows-testing/tree/master/images)).
- Do not depend on any functionality that is different or not available on Windows. The full list
is available in the Windows Kubernetes docs under [api](https://kubernetes.io/docs/setup/windows/intro-windows-in-kubernetes/#api).
A brief summary is included here as a starting point. If the docs are insufficient
@@ -139,7 +139,7 @@ implicitly by Docker or ContainerD, not by the kubelet. Do not check properties
- Networking
- Pods set `HostNetwork=true`. For Windows, this can only be enabled for Windows Privileged Containers. In other cases, the Pod will not start.
- Network and DNS settings must be passed through CNI. Windows does not use `/etc/resolv.conf`, so tests should not rely on reading that file to check DNS settings.
- - If you to check network settings such as dns search lists, please use [agnhost](https://github.com/kubernetes/kubernetes/tree/master/test/images/agnhost) to output needed data from the container.
+ - If you want to check network settings such as dns search lists, please use [agnhost](https://github.com/kubernetes/kubernetes/tree/master/test/images/agnhost) to output needed data from the container.
- Windows treats all DNS lookups with a `.` to be FQDN, not PQDN. For example `kubernetes` will resolve as a PQDN,
but `kubernetes.default` will be resolved as a FQDN and fail.
- ICMP only works between pods on the same network, and are not routable to external networks. TCP/UDP are routable.
@@ -276,8 +276,7 @@ this approval process:
- changes to the conformance criteria or process
- changes to the conformance infrastructure code
-There are six columns in this board. New PRs should enter in the To Triage
-column, and [Conformance test reviewers] will pick it up from there and move it
+New PRs should enter in the To Triage column, and [Conformance test reviewers] will pick it up from there and move it
through the process. New end-to-end tests that are intended to be promoted to
conformance tests in the future may be added to this board, but they will not
move all the way to the Needs Approval column, as that is intended only for the
@@ -361,7 +360,7 @@ Conformance test results, by provider and releases, can be viewed in the
[testgrid conformance dashboard]. If you wish to contribute test results
for your provider, please see the [testgrid conformance README]
-[kubernetes versioning policy]: /contributors/design-proposals/release/versioning.md#supported-releases-and-component-skew
+[kubernetes versioning policy]: https://git.k8s.io/design-proposals-archive/release/versioning.md#supported-releases-and-component-skew
[Conformance Test Review board]: https://github.com/orgs/kubernetes/projects/9
[Conformance test reviewers]: https://github.com/kubernetes/kubernetes/blob/master/test/conformance/testdata/OWNERS
[conformance test requirements]: #conformance-test-requirements
diff --git a/contributors/devel/sig-node/OWNERS b/contributors/devel/sig-node/OWNERS
index dcf3663c..2ea840ee 100644
--- a/contributors/devel/sig-node/OWNERS
+++ b/contributors/devel/sig-node/OWNERS
@@ -2,11 +2,11 @@
reviewers:
- sig-node-leads
- - ehashman
- SergeyKanzhelev
approvers:
- sig-node-leads
- - ehashman
- SergeyKanzhelev
+emeritus_approvers:
+ - ehashman
labels:
- sig/node
diff --git a/contributors/devel/sig-node/cri-container-stats.md b/contributors/devel/sig-node/cri-container-stats.md
index a760d404..fa12baa6 100644
--- a/contributors/devel/sig-node/cri-container-stats.md
+++ b/contributors/devel/sig-node/cri-container-stats.md
@@ -12,7 +12,7 @@ Historically Kubelet relied on the [cAdvisor](https://github.com/google/cadvisor
library, an open-source project hosted in a separate repository, to retrieve
container metrics such as CPU and memory usage. These metrics are then aggregated
and exposed through Kubelet's [Summary
-API](https://git.k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1/types.go)
+API](https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kubelet/pkg/apis/stats/v1alpha1/types.go)
for the monitoring pipeline (and other components) to consume. Any container
runtime (e.g., Docker and Rkt) integrated with Kubernetes needed to add a
corresponding package in cAdvisor to support tracking container and image file
@@ -23,9 +23,9 @@ progression to augment CRI to serve container metrics to eliminate a separate
integration point.
*See the [core metrics design
-proposal](/contributors/design-proposals/instrumentation/core-metrics-pipeline.md)
+proposal](https://git.k8s.io/design-proposals-archive/instrumentation/core-metrics-pipeline.md)
for more information on metrics exposed by Kubelet, and [monitoring
-architecture](/contributors/design-proposals/instrumentation/monitoring_architecture.md)
+architecture](https://git.k8s.io/design-proposals-archive/instrumentation/monitoring_architecture.md)
for the evolving monitoring pipeline in Kubernetes.*
# Container Metrics
@@ -86,7 +86,7 @@ message FilesystemUsage {
// The underlying storage of the filesystem.
StorageIdentifier storage_id = 2;
// UsedBytes represents the bytes used for images on the filesystem.
- // This may differ from the total bytes used on the filesystem and may not
+ // This may differ from the total bytes used on the filesystem and may not
// equal CapacityBytes - AvailableBytes.
UInt64Value used_bytes = 3;
// InodesUsed represents the inodes used by the images.
diff --git a/contributors/devel/sig-node/e2e-node-tests.md b/contributors/devel/sig-node/e2e-node-tests.md
index f212957c..bbfbdee7 100644
--- a/contributors/devel/sig-node/e2e-node-tests.md
+++ b/contributors/devel/sig-node/e2e-node-tests.md
@@ -340,7 +340,7 @@ Some topology manager tests require minimal knowledge of the host topology in or
The required information is to which NUMA node in the system are the SRIOV device attached to.
The test code tries to autodetect the information it needs, skipping the relevant tests if the autodetection fails.
-You can override the autodetection adding annotations to the the config map like this example:
+You can override the autodetection adding annotations to the config map like this example:
```yaml
metadata:
annotations:
diff --git a/contributors/devel/sig-node/node-performance-testing.md b/contributors/devel/sig-node/node-performance-testing.md
index 6316985c..d44dce24 100644
--- a/contributors/devel/sig-node/node-performance-testing.md
+++ b/contributors/devel/sig-node/node-performance-testing.md
@@ -10,7 +10,7 @@ must be taken in setting up the cluster to make the intended measurements. In
addition to taking the following steps into consideration, it is important to
document precisely which setup was used. For example, performance can vary
wildly from commit-to-commit, so it is very important to **document which commit
-or version** of Kubernetes was used, which Docker version was used, etc.
+or version** of Kubernetes was used, which container runtime version was used, etc.
### Addon pods
@@ -54,8 +54,10 @@ environment etc. with a single node to worry about. On the other hand, having
multiple nodes will let you gather more data in parallel for more robust
sampling.
-## E2E Performance Test
+## Performance Dashboard
+Since Kubernetes release 1.22 kubelet resource usage is also being tracked via [k8s performance dashboard](http://perf-dash.k8s.io/).
+## E2E Performance Test
There is an end-to-end test for collecting overall resource usage of node
components: [kubelet_perf.go](https://git.k8s.io/kubernetes/test/e2e/node/kubelet_perf.go). To
run the test, simply make sure you have an e2e cluster running (`kubetest --up`) and [set up](#cluster-set-up) correctly.
@@ -63,9 +65,22 @@ run the test, simply make sure you have an e2e cluster running (`kubetest --up`)
Run the test with `kubetest --test --test_args="--ginkgo.focus=resource\susage\stracking"`. You may also wish to customise the number of pods or other parameters of the test (remember to rerun
`make WHAT=test/e2e/e2e.test` after you do).
+Note: Due to the amount of time those tests consume they are not currently running in CI, see [issue](https://github.com/kubernetes/kubernetes/issues/81490).
+
+## Node E2E Peformance Test
+These node e2e tests measure node performance after deploying performance sensitive workloads.
+
+source: https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/node_perf_test.go
+
+testgrid : https://testgrid.k8s.io/sig-node-kubelet#node-performance-test
+
+To run theses tests follow [node e2e setup guide](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/e2e-node-tests.md) and run
+```make test-e2e-node FOCUS="Node Performance Testing" SKIP="" PARALLELISM=1```
+
## Profiling
-Kubelet installs the [go pprof handlers](https://golang.org/pkg/net/http/pprof/), which can be queried for CPU profiles:
+Kubelet installs the [go pprof handlers](https://golang.org/pkg/net/http/pprof/), which can be queried for CPU profiles.
+To enable the pprof endpint for kubelet pass `--enable-debugging-handlers=true` as kubelet flag or `EnableDebuggingHandlers=true` as a kubelet configuration option.
```console
$ kubectl proxy &
diff --git a/contributors/devel/sig-release/kubernetes-versions.md b/contributors/devel/sig-release/kubernetes-versions.md
index a5f06099..754d7539 100644
--- a/contributors/devel/sig-release/kubernetes-versions.md
+++ b/contributors/devel/sig-release/kubernetes-versions.md
@@ -328,6 +328,7 @@ The following generic markers are available:
- `k8s-stable1`
- `k8s-stable2`
- `k8s-stable3`
+- `k8s-stable4`
Generic markers reference cross builds generated via the `ci-kubernetes-build`
jobs, which run approximately every hour.
@@ -400,6 +401,7 @@ We publish a set of additional generic version markers:
- `k8s-stable1`
- `k8s-stable2`
- `k8s-stable3`
+- `k8s-stable4`
Depending on the point in the release cycle, the meaning of these markers can
change.
diff --git a/contributors/devel/sig-release/release.md b/contributors/devel/sig-release/release.md
index 2b3495c9..a697f652 100644
--- a/contributors/devel/sig-release/release.md
+++ b/contributors/devel/sig-release/release.md
@@ -112,7 +112,7 @@ The general labeling process should be consistent across artifact types.
referring to a release MAJOR.MINOR `vX.Y` version.
See also
- [release versioning](/contributors/design-proposals/release/versioning.md).
+ [release versioning](https://git.k8s.io/sig-release/release-engineering/versioning.md).
- *release branch*: Git branch `release-X.Y` created for the `vX.Y` milestone.
diff --git a/contributors/devel/sig-scheduling/scheduler_algorithm.md b/contributors/devel/sig-scheduling/scheduler_algorithm.md
deleted file mode 100644
index e9a099a2..00000000
--- a/contributors/devel/sig-scheduling/scheduler_algorithm.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Scheduler Algorithm in Kubernetes
-
-For each unscheduled Pod, the Kubernetes scheduler tries to find a node across the cluster according to a set of rules. A general introduction to the Kubernetes scheduler can be found at [scheduling_code_hierarchy_overview.md](scheduling_code_hierarchy_overview.md). In this document, the algorithm of how to select a node for the Pod is explained. There are two steps before a destination node of a Pod is chosen. The first step is filtering all the nodes and the second is ranking the remaining nodes to find a best fit for the Pod.
-
-## Filtering the nodes
-
-The purpose of filtering the nodes is to filter out the nodes that do not meet certain requirements of the Pod. For example, if the free resource on a node (measured by the capacity minus the sum of the resource requests of all the Pods that already run on the node) is less than the Pod's required resource, the node should not be considered in the ranking phase so it is filtered out. Currently, there are several "predicates" implementing different filtering policies, including:
-
-- `NoDiskConflict`: Evaluate if a pod can fit due to the volumes it requests, and those that are already mounted. Currently supported volumes are: AWS EBS, GCE PD, ISCSI and Ceph RBD. Only Persistent Volume Claims for those supported types are checked. Persistent Volumes added directly to pods are not evaluated and are not constrained by this policy.
-- `NoVolumeZoneConflict`: Evaluate if the volumes a pod requests are available on the node, given the Zone restrictions.
-- `PodFitsResources`: Check if the free resource (CPU and Memory) meets the requirement of the Pod. The free resource is measured by the capacity minus the sum of requests of all Pods on the node. To learn more about the resource QoS in Kubernetes, please check [QoS proposal](../../design-proposals/node/resource-qos.md).
-- `PodFitsHostPorts`: Check if any HostPort required by the Pod is already occupied on the node.
-- `HostName`: Filter out all nodes except the one specified in the PodSpec's NodeName field.
-- `MatchNodeSelector`: Check if the labels of the node match the labels specified in the Pod's `nodeSelector` field and, as of Kubernetes v1.2, also match the `nodeAffinity` if present. See [here](https://kubernetes.io/docs/user-guide/node-selection/) for more details on both.
-- `MaxEBSVolumeCount`: Ensure that the number of attached ElasticBlockStore volumes does not exceed a maximum value (by default, 39, since Amazon recommends a maximum of 40 with one of those 40 reserved for the root volume -- see [Amazon's documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html#linux-specific-volume-limits)). The maximum value can be controlled by setting the `KUBE_MAX_PD_VOLS` environment variable.
-- `MaxGCEPDVolumeCount`: Ensure that the number of attached GCE PersistentDisk volumes does not exceed a maximum value (by default, 16, which is the maximum GCE allows -- see [GCE's documentation](https://cloud.google.com/compute/docs/disks/persistent-disks#limits_for_predefined_machine_types)). The maximum value can be controlled by setting the `KUBE_MAX_PD_VOLS` environment variable.
-- `CheckNodeMemoryPressure`: Check if a pod can be scheduled on a node reporting memory pressure condition. Currently, no ``BestEffort`` pods should be placed on a node under memory pressure as it gets automatically evicted by kubelet.
-- `CheckNodeDiskPressure`: Check if a pod can be scheduled on a node reporting disk pressure condition. Currently, no pods should be placed on a node under disk pressure as it gets automatically evicted by kubelet.
-
-The details of the above predicates can be found in [pkg/scheduler/framework/plugins/legacy_registry.go]. All predicates mentioned above can be used in combination to perform a sophisticated filtering policy. Kubernetes uses some, but not all, of these predicates by default. You can see which ones are used by default in [pkg/scheduler/framework/plugins/legacy_registry.go].
-
-## Ranking the nodes
-
-The filtered nodes are considered suitable to host the Pod, and it is often that there are more than one nodes remaining. Kubernetes prioritizes the remaining nodes to find the "best" one for the Pod. The prioritization is performed by a set of priority functions. For each remaining node, a priority function gives a score which scales from 0-10 with 10 representing for "most preferred" and 0 for "least preferred". Each priority function is weighted by a positive number and the final score of each node is calculated by adding up all the weighted scores. For example, suppose there are two priority functions, `priorityFunc1` and `priorityFunc2` with weighting factors `weight1` and `weight2` respectively, the final score of some NodeA is:
-
- finalScoreNodeA = (weight1 * priorityFunc1) + (weight2 * priorityFunc2)
-
-After the scores of all nodes are calculated, the node with highest score is chosen as the host of the Pod. If there are more than one nodes with equal highest scores, a random one among them is chosen.
-
-Currently, Kubernetes scheduler provides some practical priority functions, including:
-
-- `LeastRequestedPriority`: The node is prioritized based on the fraction of the node that would be free if the new Pod were scheduled onto the node. (In other words, (capacity - sum of requests of all Pods already on the node - request of Pod that is being scheduled) / capacity). CPU and memory are equally weighted. The node with the highest free fraction is the most preferred. Note that this priority function has the effect of spreading Pods across the nodes with respect to resource consumption.
-- `BalancedResourceAllocation`: This priority function tries to put the Pod on a node such that the CPU and Memory utilization rate is balanced after the Pod is deployed.
-- `SelectorSpreadPriority`: Spread Pods by minimizing the number of Pods belonging to the same service, replication controller, or replica set on the same node. If zone information is present on the nodes, the priority will be adjusted so that pods are spread across zones and nodes.
-- `CalculateAntiAffinityPriority`: Spread Pods by minimizing the number of Pods belonging to the same service on nodes with the same value for a particular label.
-- `ImageLocalityPriority`: Nodes are prioritized based on locality of images requested by a pod. Nodes with larger size of already-installed packages required by the pod will be preferred over nodes with no already-installed packages required by the pod or a small total size of already-installed packages required by the pod.
-- `NodeAffinityPriority`: (Kubernetes v1.2) Implements `preferredDuringSchedulingIgnoredDuringExecution` node affinity; see [here](https://kubernetes.io/docs/user-guide/node-selection/) for more details.
-
-The details of the above priority functions can be found in [pkg/scheduler/framework/plugins/legacy_registry.go]. Kubernetes uses some, but not all, of these priority functions by default. You can see which ones are used by default in [pkg/scheduler/framework/plugins/legacy_registry.go]. Similar as predicates, you can combine the above priority functions and assign weight factors (positive number) to them as you want (check [scheduler.md](scheduler.md) for how to customize).
-
-[pkg/scheduler/framework/plugins/legacy_registry.go]: https://releases.k8s.io/HEAD/pkg/scheduler/framework/plugins/legacy_registry.go \ No newline at end of file
diff --git a/contributors/devel/sig-storage/flexvolume.md b/contributors/devel/sig-storage/flexvolume.md
index 4283c114..f2b415d3 100644
--- a/contributors/devel/sig-storage/flexvolume.md
+++ b/contributors/devel/sig-storage/flexvolume.md
@@ -16,10 +16,10 @@ The vendor and driver names must match flexVolume.driver in the volume spec, wit
## Dynamic Plugin Discovery
Beginning in v1.8, Flexvolume supports the ability to detect drivers on the fly. Instead of requiring drivers to exist at system initialization time or having to restart kubelet or controller manager, drivers can be installed, upgraded/downgraded, and uninstalled while the system is running.
-For more information, please refer to the [design document](/contributors/design-proposals/storage/flexvolume-deployment.md).
+For more information, please refer to the [design document](https://git.k8s.io/design-proposals-archive/storage/flexvolume-deployment.md).
## Automated Plugin Installation/Upgrade
-One possible way to install and upgrade your Flexvolume drivers is by using a DaemonSet. See [Recommended Driver Deployment Method](/contributors/design-proposals/storage/flexvolume-deployment.md#recommended-driver-deployment-method) for details, and see [here](https://git.k8s.io/examples/staging/volumes/flexvolume/deploy/) for an example.
+One possible way to install and upgrade your Flexvolume drivers is by using a DaemonSet. See [Recommended Driver Deployment Method](https://git.k8s.io/design-proposals-archive/storage/flexvolume-deployment.md#recommended-driver-deployment-method) for details, and see [here](https://git.k8s.io/examples/staging/volumes/flexvolume/deploy/) for an example.
## Plugin details
The plugin expects the following call-outs are implemented for the backend drivers. Some call-outs are optional. Call-outs are invoked from Kubelet and Controller Manager.
diff --git a/contributors/devel/sig-testing/writing-good-conformance-tests.md b/contributors/devel/sig-testing/writing-good-conformance-tests.md
index dbddf4b0..6830b660 100644
--- a/contributors/devel/sig-testing/writing-good-conformance-tests.md
+++ b/contributors/devel/sig-testing/writing-good-conformance-tests.md
@@ -7,7 +7,7 @@ way.
Conformance tests are promoted from existing e2e tests which have
been proven to be stable and "non-flaky".
-Please read the the ["Writing good e2e tests"](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/writing-good-e2e-tests.md) guide as a supplement to this document.
+Please read the ["Writing good e2e tests"](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/writing-good-e2e-tests.md) guide as a supplement to this document.
### Requirements ###
diff --git a/contributors/guide/OWNERS b/contributors/guide/OWNERS
index 2ae0a6da..6e7ebd56 100644
--- a/contributors/guide/OWNERS
+++ b/contributors/guide/OWNERS
@@ -2,10 +2,10 @@
approvers:
- mrbobbytables
- - parispittman
emeritus_approvers:
- castrojo
- guineveresaenger
+ - parispittman
labels:
- sig/contributor-experience
- area/contributor-guide
diff --git a/contributors/guide/contributing.md b/contributors/guide/contributing.md
index 5ea85606..dfc004ba 100644
--- a/contributors/guide/contributing.md
+++ b/contributors/guide/contributing.md
@@ -60,9 +60,9 @@ Refer to its [command reference documentation](https://go.k8s.io/bot-commands).
Common new contributor PR issues are:
-* not having correctly signed the CLA ahead of your first PR. See the [CLA page](/CLA.md) for troubleshooting help, in some cases you might need to file a ticket with the CNCF to resolve a CLA problem.
-* finding the right SIG or reviewer(s) for the PR (see [Code Review](#code-review) section) and following any SIG or repository specific contributing guidelines (see [Learn about SIGs](first-contribution.md#learn-about-sigs) section)
-* dealing with test cases which fail on your PR, unrelated to the changes you introduce (see [Test Flakes](/contributors/devel/sig-testing/flaky-tests.md))
+* Not having correctly signed the CLA ahead of your first PR. See the [CLA page](/CLA.md) for troubleshooting help, in some cases you might need to file a ticket with the CNCF to resolve a CLA problem.
+* Finding the right SIG or reviewer(s) for the PR (see [Code Review](#code-review) section) and following any SIG or repository specific contributing guidelines (see [Learn about SIGs](first-contribution.md#learn-about-sigs) section)
+* Dealing with test cases which fail on your PR, unrelated to the changes you introduce (see [Test Flakes](/contributors/devel/sig-testing/flaky-tests.md))
* Not following [scalability good practices](scalability-good-practices.md)
* Include mentions (like @person) and [keywords](https://help.github.com/en/articles/closing-issues-using-keywords) which could close the issue (like fixes #xxxx) in commit messages.
@@ -73,10 +73,10 @@ There are two aspects of code review: giving and receiving.
To make it easier for your PR to receive reviews, consider the reviewers will need you to:
-* follow the project [coding conventions](coding-conventions.md)
-* write [good commit messages](https://chris.beams.io/posts/git-commit/)
-* break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue
-* label PRs with appropriate SIGs and reviewers: to do this read the messages the bot sends you to guide you through the PR process
+* Follow the project [coding conventions](coding-conventions.md)
+* Write [good commit messages](https://chris.beams.io/posts/git-commit/)
+* Break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue
+* Label PRs with appropriate SIGs and reviewers: to do this read the messages the bot sends you to guide you through the PR process
Reviewers, the people giving the review, are highly encouraged to revisit the [Code of Conduct](/code-of-conduct.md) as well as [community expectations](./expectations.md#expectations-of-reviewers-review-latency) and must go above and beyond to promote a collaborative, respectful community.
When reviewing PRs from others [The Gentle Art of Patch Review](http://sage.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/) suggests an iterative series of focuses which is designed to lead new contributors to positive collaboration without inundating them initially with nuances:
diff --git a/contributors/guide/contributor-cheatsheet/README.md b/contributors/guide/contributor-cheatsheet/README.md
index f6c8ef34..f4fd8956 100644
--- a/contributors/guide/contributor-cheatsheet/README.md
+++ b/contributors/guide/contributor-cheatsheet/README.md
@@ -415,7 +415,7 @@ git push --force
[GitHub workflow]: /contributors/guide/github-workflow.md#3-branch
[squashing commits]: /contributors/guide/pull-requests.md#6-squashing-and-commit-titles
[owners]: /contributors/guide/owners.md
-[testing locally]: /contributors/guide/README.md#testing
+[testing locally]: /contributors/devel/sig-testing/testing.md
[Atlassian git tutorial]: https://www.atlassian.com/git/tutorials
[git magic]: http://www-cs-students.stanford.edu/~blynn/gitmagic/
[Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/
diff --git a/contributors/guide/issue-triage.md b/contributors/guide/issue-triage.md
index 6c01a4d6..db0aa94d 100644
--- a/contributors/guide/issue-triage.md
+++ b/contributors/guide/issue-triage.md
@@ -40,7 +40,7 @@ description: |
- [Further Notes](#further-notes)
- [Support Requests: Channels](#support-requests-channels)
- [User Support Response: Example](#user-support-response-example)
-
+
## Scope
These guidelines serve as a primary document for triaging incoming issues to Kubernetes. SIGs and projects are encouraged to use this guidance as a starting point, and customize to address specific triaging needs.
@@ -51,7 +51,7 @@ These guidelines serve as a primary document for triaging incoming issues to Kub
Issue triage is a process by which a SIG intakes and reviews new GitHub issues and requests, and organizes them to be actioned—either by its own members, or by other SIGs. Triaging involves categorizing issues and pull requests based on factors such as priority/urgency, SIG ownership of the issue, and the issue kind (bug, feature, etc.).
-Triage can happen asynchronously and continuously, or in regularly scheduled meetings. Several Kubernetes SIGs and projects have adopted their own approaches to triaging.
+Triage can happen asynchronously and continuously, or in regularly scheduled meetings. Several Kubernetes SIGs and projects have adopted their own approaches to triaging.
## Why Is Triaging Beneficial?
@@ -65,11 +65,11 @@ SIGs who triage regularly say it offers a number of benefits, such as:
- Building prioritization, negotiation and decision-making skills, which are critical to most tech roles
- Reinforcement of SIG community and culture
-People who enjoy product management and iterating on processes tend to enjoy triaging because it empowers their SIGs to maintain a steady, continuous flow of work that is assessed and prioritized based on feedback and value.
+People who enjoy product management and iterating on processes tend to enjoy triaging because it empowers their SIGs to maintain a steady, continuous flow of work that is assessed and prioritized based on feedback and value.
# How to Triage: A Step-by-Step Flow
-This guide walks you through a standard triaging process, beginning with tools and tips.
+This guide walks you through a standard triaging process, beginning with tools and tips.
## Triage-Related Tools
@@ -85,7 +85,7 @@ Opening new issues and leaving comments on other people's issues are possible fo
### Triage Party
-[Triage Party](https://github.com/google/triage-party) is a tool for triaging incoming GitHub issues for large open-source projects, built with the GitHub API. Made public in April 2020, it facilitates "massively multi-player GitHub triage" and reduces contributor response latency.
+[Triage Party](https://github.com/google/triage-party) is a tool for triaging incoming GitHub issues for large open-source projects, built with the GitHub API. Made public in April 2020, it facilitates "massively multi-player GitHub triage" and reduces contributor response latency.
Its features include:
- Queries across multiple repositories
@@ -101,7 +101,7 @@ Its features include:
### GitHub Project Boards
-GitHub offers project boards, set up like [kanban boards](https://en.wikipedia.org/wiki/Kanban), to help teams organize and track their workflow in order to get work done. The Release Team has come to depend on [their project board](https://github.com/orgs/kubernetes/projects/29) for planning new Kubernetes releases; they also use it as an archive to show the work done for past releases.
+GitHub offers project boards, set up like [kanban boards](https://en.wikipedia.org/wiki/Kanban), to help teams organize and track their workflow in order to get work done. The Release Team has come to depend on [their project board](https://github.com/orgs/kubernetes/projects/29) for planning new Kubernetes releases; they also use it as an archive to show the work done for past releases.
Other SIGs are also using project boards:
- [Contributor Experience](https://github.com/orgs/kubernetes/projects/1)
@@ -122,7 +122,7 @@ Several SIGs consistently meet weekly or monthly to triage issues. Here are some
### Running a Triage Meeting: Tips from api-machinery
-The [api-machinery SIG](/sig-api-machinery) has found that triage meetings offer valuable opportunities for newcomers to listen, learn, and start contributing. The SIG hold triage meetings every Tuesday and Thursday and archive recordings via their [YouTube playlist](https://www.youtube.com/playlist?list=PL69nYSiGNLP21oW3hbLyjjj4XhrwKxH2R). [Watch an example of one of their meetings.](https://www.youtube.com/watch?v=bRptR9vd4S8&list=PL69nYSiGNLP21oW3hbLyjjj4XhrwKxH2R&index=2&t=13s)
+The [api-machinery SIG](/sig-api-machinery) has found that triage meetings offer valuable opportunities for newcomers to listen, learn, and start contributing. The SIG hold triage meetings every Tuesday and Thursday and archive recordings via their [YouTube playlist](https://www.youtube.com/playlist?list=PL69nYSiGNLP21oW3hbLyjjj4XhrwKxH2R). [Watch an example of one of their meetings](https://www.youtube.com/watch?v=bRptR9vd4S8&list=PL69nYSiGNLP21oW3hbLyjjj4XhrwKxH2R&index=2&t=13s).
In a typical triage meeting, api-machinery members sort through every issue that they haven't triaged since the previous meeting, using a simple query and issue number to track open PRs and issues. They usually follow this process:
1. Read through the comments and the code briefly to understand what the issue is about.
@@ -135,7 +135,7 @@ The api-machinery SIG has found that consistently meeting on a regular, fixed sc
- We try to balance the load, and ask people if they are okay taking on an issue before assigning it to them.
- We skip issues that are closed.
- We also skip cherrypicks, because we consider that the code change was reviewed in the original PR.
-- We ensure participation from the entire SIG and support company diversity.
+- We ensure participation from the entire SIG and support company diversity.
- We use this opportunity to add [`help wanted` and `good first issue`](#help-wantedgood-first-issues) labels.
### Triage Guide by cluster-lifecycle
@@ -144,7 +144,7 @@ The cluster-lifecycle SIG has developed a [triaging page](/sig-cluster-lifecycle
## Step One: Review Newly Created Open Issues
-The first step in a successful triage meeting is reviewing newly created open issues. Kubernetes issues are listed [here](https://github.com/kubernetes/kubernetes/issues). Labels are the primary tools for triaging. [Here's a comprehensive label list.](https://github.com/kubernetes/kubernetes/labels)
+The first step in a successful triage meeting is reviewing newly created open issues. Kubernetes issues are listed [here](https://github.com/kubernetes/kubernetes/issues). Labels are the primary tools for triaging. [Here's a comprehensive label list](https://github.com/kubernetes/kubernetes/labels).
New issues are automatically assigned a `needs-triage` label indicating that these issues are currently awaiting triage. After triaging an issue, the issue owning SIG will use the bot command `/triage accepted`. This command removes the `needs-triage` label and adds the `triage/accepted` label.
@@ -171,7 +171,7 @@ We suggest preparing your triage by filtering out the oldest, unlabelled issues
Use [these `triage/` and `kind/support` labels](https://github.com/kubernetes/kubernetes/labels?utf8=%E2%9C%93&q=triage%2F+kind%2Fsupport) to find open issues that can be quickly closed. A triage engineer can add the appropriate labels.
Depending on your permissions, either close or comment on any issues that are identified as support requests, duplicates, or not-reproducible bugs, or that lack enough information from the reporter.
-
+
### Support Requests
Some people mistakenly use GitHub issues to file support requests. Usually they are asking for help configuring some aspect of Kubernetes. To handle such an issue, direct the author to use our [support request channels](#support-requests-channels). Then apply the `kind/support` label, which is directed to our support structures, and apply the `close` label.
@@ -191,7 +191,7 @@ The `triage/needs-information` label indicates an issue needs more information i
First, validate if the problem is a bug by trying to reproduce it.
If you can reproduce it:
-* [Define its priority.](##step-three-define-priority)
+* [Define its priority](#step-three-define-priority).
* Search for duplicates to see if the issue has been reported already. If a duplicate is found, let the issue reporter know, reference the original issue, and close the duplicate.
If you can't reproduce it:
@@ -218,28 +218,28 @@ Usually the `kind` label is applied by the person submitting the issue. Issues t
## Step Three: Define Priority
-We use GitHub labels for prioritization. If an issue lacks a `priority` label, this means it has not been reviewed and prioritized yet.
+We use GitHub labels for prioritization. If an issue lacks a `priority` label, this means it has not been reviewed and prioritized yet.
We aim for consistency across the entire project. However, if you notice an issue that you believe to be incorrectly prioritized, please leave a comment offering your counter-proposal and we will evaluate it.
|Priority label|What it means|Examples|
|---|---|---|
-| `priority/critical-urgent` | Team leaders are responsible for making sure that these issues (in their area) are being actively worked on—i.e., drop what you're doing. Stuff is burning. These should be fixed before the next release. | user-visible bugs in core features <br> broken builds <br> tests and critical security issues |
+| `priority/critical-urgent` | Team leaders are responsible for making sure that these issues (in their area) are being actively worked on—i.e., drop what you're doing. Stuff is burning. These should be fixed before the next release. | user-visible bugs in core features <br> broken builds <br> tests and critical security issues |
| `priority/important-soon` | Must be staffed and worked on either currently or very soon—ideally in time for the next release. Important, but wouldn't block a release. | [**XXXX**] |
| `priority/important-longterm` | Important over the long term, but may not be currently staffed and/or may require multiple releases to complete. Wouldn't block a release. | [**XXXX**]|
-| `priority/backlog` | General agreement that this is a nice-to-have, but no one's available to work on it anytime soon. Community contributions would be most welcome in the meantime, though it might take a while to get them reviewed if reviewers are fully occupied with higher-priority issues—for example, immediately before a release.| [**XXXX**] |
-| `priority/awaiting-more-evidence` | Possibly useful, but not yet enough support to actually get it done. | Mostly placeholders for potentially good ideas, so that they don't get completely forgotten, and can be referenced or deduped every time they come up |
+| `priority/backlog` | General agreement that this is a nice-to-have, but no one's available to work on it anytime soon. Community contributions would be most welcome in the meantime, though it might take a while to get them reviewed if reviewers are fully occupied with higher-priority issues—for example, immediately before a release.| [**XXXX**] |
+| `priority/awaiting-more-evidence` | Possibly useful, but not yet enough support to actually get it done. | Mostly placeholders for potentially good ideas, so that they don't get completely forgotten, and can be referenced or deduped every time they come up |
-## Step Four: Find and Set the Right SIG(s) to Own an Issue
+## Step Four: Find and Set the Right SIG(s) to Own an Issue
Components are divided among [Special Interest Groups (SIGs)](/sig-list.md). [The bot](https://go.k8s.io/bot-commands) assists in finding a proper SIG to own an issue.
* For example, typing `/sig network` in a comment should add the `sig/network` label.
* Multiword SIGs use dashes: for example, `/sig cluster-lifecycle`.
* Keep in mind that these commands must be on their own lines, and at the front of the comment.
-* If you are not sure about who should own an issue, defer to the SIG label only.
+* If you are not sure about who should own an issue, defer to the SIG label only.
* If you feel an issue should warrant a notification, ping a team with an `@` mention, in this format: `@kubernetes/sig-<group-name>-<group-suffix>`. Here, the `<group-suffix>` can be one of:
- `bugs`
- `feature-requests`
@@ -252,7 +252,7 @@ Components are divided among [Special Interest Groups (SIGs)](/sig-list.md). [Th
If you think you can fix the issue, assign it to yourself with *just* the `/assign` command. If you cannot self-assign for permissions-related reasons, leave a comment that you'd like to claim it and [begin working on a PR](github-workflow.md).
-When an issue already has an assignee, **do not** assign it to yourself or create a PR without talking to the existing assignee or going through the [Follow Up](#Step-Five:-Follow-Up) steps as described in this document. Creating a PR when someone else is already working on an issue is not a good practice and is discouraged.
+When an issue already has an assignee, **do not** assign it to yourself or create a PR without talking to the existing assignee or going through the [Follow Up](#step-five-follow-up) steps as described in this document. Creating a PR when someone else is already working on an issue is not a good practice and is discouraged.
## Step Five: Follow Up
@@ -266,7 +266,7 @@ If you find an issue with a SIG label assigned, but there's no evidence of movem
### If an Issue Has No Activity After 90 Days
-When an issue goes 90 days without activity, the [k8s-triage-robot](https://github.com/k8s-triage-robot) adds the `lifecycle/stale` label to that issue. You can block the bot by applying the `/lifecycle frozen` label preemptively, or remove the label with the `/remove-lifecycle stale` command. The k8s-triage-robot adds comments in the issue that include additional details. If you take neither step, the issue will eventually be auto-closed.
+When an issue goes 90 days without activity, the [k8s-triage-robot](https://github.com/k8s-triage-robot) adds the `lifecycle/stale` label to that issue. You can block the bot by applying the `/lifecycle frozen` label preemptively, or remove the label with the `/remove-lifecycle stale` command. The k8s-triage-robot adds comments in the issue that include additional details. If you take neither step, the issue will eventually be auto-closed.
## Further Notes
@@ -274,8 +274,8 @@ When an issue goes 90 days without activity, the [k8s-triage-robot](https://gith
These should be directed to the following:
* [User documentation](https://kubernetes.io/docs/home/) and
-[troubleshooting guide](https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/)
-* [Slack](https://kubernetes.slack.com) ([registration](http://slack.k8s.io))
+[troubleshooting guide](https://kubernetes.io/docs/tasks/debug/)
+* [Slack](https://kubernetes.slack.com) ([registration](https://slack.k8s.io))
* [Discussion forums](https://discuss.kubernetes.io)
### User Support Response: Example
@@ -300,7 +300,7 @@ support, try to redirect them to Discuss. Here is an example response:
> to similar questions, and also familiarize yourself with:
>
> * [user documentation](https://kubernetes.io/docs/home/)
-> * [troubleshooting guide](https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/)
+> * [troubleshooting guide](https://kubernetes.io/docs/tasks/debug/)
>
> Again, thanks for using Kubernetes.
>
diff --git a/contributors/guide/non-code-contributions.md b/contributors/guide/non-code-contributions.md
index 9143fb30..11813bac 100644
--- a/contributors/guide/non-code-contributions.md
+++ b/contributors/guide/non-code-contributions.md
@@ -3,7 +3,7 @@ title: "Non-code Contributions"
weight: 11
description: |
Looking for a good entrance into the project? or to do something different?
- There are many ways to contribute to the the Kubernetes project without having
+ There are many ways to contribute to the Kubernetes project without having
to have coding experience: issue triage, writing documentation, joining the
release team and much more.
---
diff --git a/contributors/guide/pull-requests.md b/contributors/guide/pull-requests.md
index 242e0bc9..e666c62c 100644
--- a/contributors/guide/pull-requests.md
+++ b/contributors/guide/pull-requests.md
@@ -178,7 +178,7 @@ Are you willing to bet a few days or weeks of work on it?
It's better to get confirmation beforehand.
-When you want to make a large or otherwise significant change, you should follow the [Kubernetes Enhancement Proposal process](https://git.k8s.io/enhancements/keps/0001-kubernetes-enhancement-proposal-process.md).
+When you want to make a large or otherwise significant change, you should follow the [Kubernetes Enhancement Proposal process](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/0000-kep-process/README.md).
Even for small changes, it is often a good idea to gather feedback on an issue you filed, or even simply ask in the appropriate SIG's Slack channel to invite discussion and feedback from code owners.
Here's a [list of SIGs](/sig-list.md), this includes their public meetings.
diff --git a/contributors/guide/release-notes.md b/contributors/guide/release-notes.md
index 98a16c7d..321b9e58 100644
--- a/contributors/guide/release-notes.md
+++ b/contributors/guide/release-notes.md
@@ -73,7 +73,7 @@ Here are some pull requests with examples of exemplary release notes:
- https://github.com/kubernetes/kubernetes/pull/97252
- https://github.com/kubernetes/kubernetes/pull/105517
-For more tips on writing good release notes, check out the [Release Notes Handbook][].
+For more tips on writing good release notes, check out the [Release Notes Handbook].
## Applying a Release Note
diff --git a/elections/steering/2022/README.md b/elections/steering/2022/README.md
index 821b62da..4fefde35 100644
--- a/elections/steering/2022/README.md
+++ b/elections/steering/2022/README.md
@@ -1,5 +1,4 @@
# 2022 VOTERS GUIDE - KUBERNETES STEERING COMMITTEE ELECTION
-# DRAFT -- INCOMPLETE -- GUIDE IS IN PROGRESS
## Important Links
@@ -136,7 +135,7 @@ Examples of contributions that would NOT be considered:
|:------------------------|:----------------------------------------------------------------------|
| Friday, July 22 | Steering Committee selects Election Committee |
| Monday, August 15 | Announcement of Election and publication of voters.md |
-| ???, August ?? | Steering Committee Q+A for the candidates |
+| Monday, August 29 | Steering Committee Q+A for the candidates |
| Tuesday, August 30 | Candidate nominations due at the end of the day in AoE time |
| Friday, September 2 | All candidate bios due at the end of the day in AoE time |
| Tuesday, September 6 | Election Begins via email ballots |
diff --git a/elections/steering/2022/ballots.csv b/elections/steering/2022/ballots.csv
new file mode 100644
index 00000000..65e34f11
--- /dev/null
+++ b/elections/steering/2022/ballots.csv
@@ -0,0 +1,220 @@
+qedrakmar,lavalamp,bentheelder,mrbobbytables,cpanato,palnabarun,deads2k,cici37
+6,8,4,2,3,5,7,1
+8,1,6,3,5,7,2,4
+8,8,1,2,8,8,8,3
+8,1,1,8,8,8,1,8
+8,8,3,4,1,2,8,8
+6,7,2,1,4,3,8,5
+6,7,1,2,3,5,8,4
+8,2,3,4,6,8,1,5
+6,8,4,2,7,3,5,1
+8,1,2,3,8,8,4,5
+8,5,1,3,4,2,6,7
+7,5,2,1,3,4,6,8
+8,8,8,8,8,8,8,8
+3,8,1,2,3,3,8,4
+No opinion,No opinion,3,1,No opinion,No opinion,2,No opinion
+8,7,5,1,4,3,2,6
+No opinion,5,1,2,6,3,4,No opinion
+No opinion,2,1,3,No opinion,No opinion,No opinion,No opinion
+No opinion,No opinion,7,No opinion,No opinion,8,No opinion,No opinion
+8,1,2,8,8,8,4,3
+1,7,4,2,5,6,8,3
+8,1,3,5,8,6,4,2
+3,2,3,1,8,8,8,2
+8,4,2,8,8,8,3,1
+No opinion,2,No opinion,No opinion,No opinion,No opinion,1,No opinion
+8,5,3,7,2,6,1,4
+8,1,4,2,5,8,3,8
+6,8,1,2,3,4,8,5
+5,8,2,1,6,4,7,3
+4,4,2,1,8,8,3,8
+4,4,2,1,8,8,3,8
+4,8,7,3,6,5,1,2
+8,8,8,1,4,5,2,3
+6,1,3,4,6,6,5,2
+No opinion,No opinion,2,3,4,1,No opinion,No opinion
+8,5,1,1,4,6,7,5
+No opinion,1,2,5,No opinion,No opinion,4,3
+8,7,4,1,6,2,3,5
+4,4,1,1,4,4,4,4
+7,8,8,8,7,7,8,7
+8,1,2,3,8,8,8,4
+8,8,1,1,3,2,8,2
+4,7,3,1,2,5,8,6
+4,2,2,1,3,2,1,3
+7,8,1,2,5,3,8,4
+8,1,3,4,8,8,2,8
+8,2,3,4,5,8,1,8
+8,7,5,1,2,3,4,6
+7,1,3,4,6,8,2,5
+5,7,2,3,1,6,8,4
+5,7,3,2,6,4,8,1
+5,7,1,2,8,3,4,6
+4,7,3,1,6,5,8,2
+No opinion,3,1,4,No opinion,No opinion,5,2
+3,2,2,1,2,3,3,1
+8,2,1,3,8,8,4,8
+8,8,8,8,8,8,8,8
+8,1,4,5,8,8,3,2
+No opinion,No opinion,No opinion,3,1,No opinion,No opinion,2
+7,4,2,1,6,5,8,3
+3,No opinion,2,1,4,6,No opinion,5
+8,8,2,2,3,1,8,3
+No opinion,No opinion,3,2,1,4,No opinion,No opinion
+3,8,1,1,4,5,6,4
+7,4,5,3,2,1,8,6
+6,3,1,5,8,4,2,8
+5,8,4,2,3,1,7,6
+8,8,8,2,3,1,8,4
+No opinion,3,3,2,4,1,8,4
+7,8,1,1,8,4,2,8
+6,2,3,5,8,7,1,4
+7,8,6,4,1,2,3,5
+8,7,3,2,5,1,4,6
+8,2,8,8,8,3,1,8
+8,7,3,4,8,6,1,4
+2,2,2,2,2,1,2,2
+No opinion,No opinion,8,No opinion,8,No opinion,No opinion,No opinion
+8,8,2,1,8,8,8,8
+No opinion,8,8,8,No opinion,No opinion,No opinion,No opinion
+8,8,8,1,2,3,8,8
+3,3,2,2,2,1,3,2
+8,6,4,1,5,3,2,7
+8,8,2,1,4,8,3,8
+8,8,2,3,8,1,8,8
+2,2,1,1,1,2,2,2
+8,8,1,5,2,3,8,4
+No opinion,No opinion,No opinion,2,No opinion,1,No opinion,No opinion
+8,3,2,4,8,8,1,8
+8,8,8,3,2,1,8,8
+6,3,2,1,6,6,3,6
+No opinion,2,1,3,No opinion,No opinion,No opinion,No opinion
+6,2,3,1,8,5,7,4
+No opinion,No opinion,2,No opinion,No opinion,No opinion,1,No opinion
+3,4,1,1,1,1,2,2
+8,8,8,1,8,4,3,2
+8,2,3,1,5,4,6,7
+8,1,1,1,8,1,4,4
+8,8,2,4,1,8,8,3
+8,8,4,3,2,1,8,8
+4,6,2,3,1,7,8,5
+8,4,1,3,8,8,8,2
+No opinion,No opinion,8,6,6,8,No opinion,No opinion
+6,4,3,2,5,7,1,8
+6,1,3,No opinion,No opinion,5,2,4
+4,8,1,2,5,6,8,3
+8,7,1,3,8,2,2,7
+2,No opinion,No opinion,3,No opinion,4,No opinion,1
+8,5,1,2,8,6,3,7
+6,3,1,2,4,7,8,5
+8,2,4,3,8,8,5,1
+8,2,4,5,6,7,3,1
+No opinion,1,2,4,No opinion,No opinion,3,No opinion
+8,1,8,8,3,8,2,8
+7,5,2,3,8,6,1,4
+8,1,2,3,4,5,6,7
+No opinion,No opinion,No opinion,No opinion,8,8,No opinion,No opinion
+8,8,3,2,4,1,8,8
+8,4,2,5,3,1,8,8
+No opinion,No opinion,No opinion,No opinion,No opinion,1,No opinion,No opinion
+No opinion,No opinion,5,No opinion,No opinion,1,No opinion,No opinion
+5,6,2,4,3,1,8,7
+No opinion,No opinion,2,3,4,1,No opinion,No opinion
+8,2,4,1,8,5,3,8
+8,2,3,1,5,6,7,4
+8,5,3,1,4,7,2,6
+5,4,2,1,3,1,4,4
+8,No opinion,4,1,2,3,7,No opinion
+No opinion,No opinion,No opinion,No opinion,No opinion,1,No opinion,No opinion
+5,6,1,2,4,8,7,3
+8,6,4,2,7,3,1,5
+No opinion,No opinion,No opinion,No opinion,No opinion,8,No opinion,No opinion
+8,4,1,2,8,8,5,3
+5,6,3,8,4,1,7,2
+8,8,4,2,8,1,3,8
+8,8,1,1,8,8,8,1
+8,6,1,3,4,2,5,7
+No opinion,No opinion,8,No opinion,5,No opinion,8,No opinion
+6,5,4,1,2,3,8,7
+No opinion,2,1,3,4,No opinion,No opinion,5
+8,2,3,1,4,7,6,5
+2,7,6,1,4,5,8,3
+3,8,1,1,1,2,8,3
+8,1,8,8,8,8,1,1
+No opinion,No opinion,2,No opinion,No opinion,1,No opinion,No opinion
+2,4,No opinion,1,No opinion,No opinion,8,3
+7,4,2,1,6,5,8,3
+No opinion,No opinion,2,2,No opinion,1,No opinion,2
+7,6,4,3,5,1,2,8
+8,8,3,8,1,4,8,2
+No opinion,4,2,1,No opinion,No opinion,3,No opinion
+No opinion,No opinion,3,2,No opinion,1,No opinion,No opinion
+8,4,3,1,7,6,5,2
+6,8,2,7,4,5,3,1
+No opinion,4,5,4,2,1,No opinion,No opinion
+7,6,5,4,3,1,8,2
+8,8,8,8,8,2,1,3
+6,7,2,1,4,5,3,8
+8,2,8,1,8,8,3,8
+8,8,8,8,8,8,8,8
+8,8,2,1,8,6,5,3
+8,8,8,8,8,8,8,8
+4,1,2,2,8,5,6,8
+2,No opinion,4,1,No opinion,No opinion,3,No opinion
+8,3,2,5,7,6,4,1
+8,1,4,2,7,6,3,5
+No opinion,3,1,2,No opinion,No opinion,5,4
+8,1,2,4,7,6,5,3
+7,6,2,1,5,3,8,4
+No opinion,7,8,No opinion,5,5,8,6
+6,1,2,3,4,5,8,7
+3,No opinion,2,4,No opinion,No opinion,1,No opinion
+4,7,6,1,5,2,8,3
+3,8,7,8,5,2,6,5
+5,No opinion,No opinion,2,3,1,No opinion,4
+8,1,1,8,8,8,1,8
+8,4,2,3,8,8,1,8
+6,7,1,2,3,4,8,5
+5,8,1,2,4,3,8,6
+8,8,3,2,8,8,8,1
+No opinion,2,No opinion,No opinion,No opinion,No opinion,1,3
+8,3,2,6,7,4,1,5
+8,4,2,3,7,5,1,6
+No opinion,No opinion,3,2,4,No opinion,1,No opinion
+8,8,8,8,8,8,8,8
+5,6,2,1,4,3,7,8
+8,8,3,1,8,2,8,8
+7,3,4,2,5,8,6,1
+8,8,8,8,8,8,8,8
+No opinion,4,2,3,No opinion,No opinion,1,5
+No opinion,No opinion,1,1,3,1,2,3
+No opinion,No opinion,1,1,3,1,2,3
+2,8,1,4,3,5,7,6
+3,1,7,2,6,4,8,5
+7,5,3,1,4,2,8,6
+8,8,1,8,8,8,8,8
+No opinion,No opinion,8,No opinion,No opinion,8,8,No opinion
+5,3,1,1,2,2,8,4
+7,6,3,1,4,2,5,8
+8,3,2,1,8,8,4,8
+8,8,8,8,8,1,8,8
+2,8,3,4,1,8,8,8
+6,5,2,1,8,7,3,4
+No opinion,No opinion,No opinion,No opinion,8,8,No opinion,8
+5,5,1,2,3,5,4,5
+8,2,8,8,8,8,1,3
+8,2,1,3,8,8,6,7
+8,8,1,8,8,8,8,8
+5,1,2,8,5,3,5,4
+No opinion,2,3,No opinion,No opinion,No opinion,1,No opinion
+6,7,1,3,4,5,8,2
+8,6,1,2,4,3,7,5
+3,4,2,1,7,6,8,5
+2,2,2,1,2,2,2,2
+7,8,3,1,2,4,5,6
+1,1,1,1,2,2,8,2
+8,8,1,1,8,8,1,8
+6,2,3,4,8,5,1,7
+3,No opinion,2,1,4,5,No opinion,6
+8,4,1,8,8,2,3,8
diff --git a/elections/steering/2022/candidate-bentheelder.md b/elections/steering/2022/candidate-bentheelder.md
new file mode 100644
index 00000000..d598267f
--- /dev/null
+++ b/elections/steering/2022/candidate-bentheelder.md
@@ -0,0 +1,86 @@
+-------------------------------------------------------------
+name: Benjamin Elder
+ID: bentheelder
+info:
+ - employer: Google
+ - slack: bentheelder
+-------------------------------------------------------------
+
+## SIGS
+
+I've historically been most active in these sigs:
+
+- SIG Testing: **Chair**, **Tech Lead**
+- SIG Release: General Contributor
+- SIG K8s Infra: General Contributor, Infra Admin
+- Architecture: Code Organization subproject
+- Contributor Experience: General Contributor
+
+But you'll also find me contributing across the project.
+
+## What I have done
+
+I first got involved in Kubernetes in the 2015, just before 1.0, as a
+[Google Summer of Code][Google Summer of Code] student. during which time I developed the initial
+`iptables` kube-proxy backend, which replaced the inefficient userspace backend
+by default in v1.2.
+
+In 2017 I graduated and took up full time Kubernetes development at Google as a
+junior engineer working primarily on SIG Testing, where I've worked to improve
+the contributor experience.
+
+I developed [KIND][KIND] to make e2e testing Kubernetes faster and
+locally reproducible without cloud access.
+I led the effort to consolidate on a single build system and eliminate bazel to
+reduce contributor friction.
+I worked with SIG docs to create and pilot a pattern for subprojects to
+officially host their own docs within the project for docs that do not belong
+on the main kubernetes.io site, like [kind.sigs.k8s.io][kind.sigs.k8s.io].
+I was also release lead shadow on the 1.14 release.
+
+I've been one of the [most active contributors][most active contributors] to the project over the years and
+I've since won the 2020 CNCF [Top Committer Award][Top Committer Award] for my extensive contributions.
+
+You will find me active all across the project contributing where I can. I've
+spent a lot of time maintaining the project's infra and helping transition older
+infrastructure Google set up early in the project to community control. I help
+maintain most of the build, test, and release tools / scripts, as well as the
+cluster e2e tools including KIND and `cluster/`, as well as critical infra
+like the project's CI, DNS, etc.
+
+
+## What I'll do
+
+I am passionate about the Kubernetes community and I will do everything in my
+power to uphold and strengthen it's health, [values][values], and inclusivity.
+
+Steering represents:
+- An important interface between the project and the CNCF
+- Authoring, reviewing, and approving governance documents, such as the charters
+- An escalation path within the community, for matters unable to be resolved within the SIGs / WGs
+
+Steering is about people, governance, and long term project health.
+Steering is *not* about arbitrating technical decisions, which are left to the SIGs.
+
+Within that scope, I will bring my perspective as someone who has risen from an
+inexperienced student contributor to a leader to help guide and enact processes
+and policies that prioritize community health.
+
+In particular: I believe we need to do better enabling
+future leaders / contributor growth, and being inclusive of our existing global,
+diverse contributor base. We need to put more emphasis on sustainability, and
+I believe steering is well positioned to do so.
+
+## Resources About Me
+
+- [elder.dev/about](https://elder.dev/aboput)
+ - You can find a more personal bio, my [speaking][speaking] and more here
+- [twitter.com/BenTheElder](https://twitter.com/BenTheElder)
+
+[most active contributors]: https://k8s.devstats.cncf.io/d/13/developer-activity-counts-by-repository-group?orgId=1
+[values]: https://www.kubernetes.dev/community/values/
+[kind.sigs.k8s.io]: https://kind.sigs.k8s.io/
+[Google Summer of Code]: https://summerofcode.withgoogle.com/
+[KIND]: https://sigs.k8s.io/kind
+[Top Committer Award]: https://www.cncf.io/announcements/2020/11/20/cloud-native-computing-foundation-announces-2020-community-awards-winners
+[speaking]: https://elder.dev/about/#speaking
diff --git a/elections/steering/2022/candidate-cici37.md b/elections/steering/2022/candidate-cici37.md
new file mode 100644
index 00000000..81d2de94
--- /dev/null
+++ b/elections/steering/2022/candidate-cici37.md
@@ -0,0 +1,42 @@
+-------------------------------------------------------------
+name: Cici Huang
+ID: cici37
+info:
+ - employer: Google
+ - slack: cici37
+-------------------------------------------------------------
+
+<!-- Please make a copy of this template as "candidate-githubid.md" and save it to
+the election directory -->
+
+## SIGS
+
+- Release:
+ - Kubernetes 1.25 release lead
+ - Kubernetes 1.24 release lead shadow
+ - Kubernetes 1.23 Release Notes Lead
+- SIG api-machinery
+- SIG cloud provider
+
+
+## What I have done
+
+My journey with the Kubernetes community starts in SIG cloud provider around 2020. I worked towards the effort of moving in-tree cloud providers out-of-tree. I have moved the cloud provider specific component out-of-tree and made CCM flexible for controller modification which cleared the blocker for all in-tree cloud providers. I have also demonstrated the way to leverage CCM for upcoming/existing cloud providers by demoing in SIG meetings, providing sample code, and documentation. I won the [Kubernetes 2020 Contributors Award](https://www.kubernetes.dev/community/awards/2020/).
+
+I am also a contributor in SIG api-machinery. I recently led the effort of promoting CRD expression validation to beta in Kubernetes 1.25 which is a great feature targeting to replace the validating admission webhook. I am also working towards expanding this power further to Admission Control.
+
+I have led the Kubernetes 1.25 release team to a smooth release recently. In the 1.25 release, it includes a total of 40 enhancements and 16 feature blogs planned which is a new record. It went out smoothly without missing any milestones with great quality. I have coordinated across the community in order to guarantee the successful release. I also led the Kubernetes 1.23 release notes team to ensure the release notes generation, CHANGLOG info, Major Themes properly out with the release.
+
+## What I'll do
+
+As a Kubernetes community member, I truly appreciate the collaborative, open spirit in this community that brings so many individuals to a combined power that supports the project and the community year-round. That is also the reason I picked **Combiner** as the Kubernetes 1.25 release theme.
+
+Serving in the Steering Committee bears some similarities to serving in the release team, which is being a great coordinator and a great listener. Serving in the steering committee means way more than governance, financial planning, and oversight pertaining to me. It helps to maintain a healthy, long standing community. It ensures that all the voices are heard. It helps to keep delivering great stuff and continuously satisfying the users. It helps to build great relationships not only with CNCF but also with peer projects, with each SIG, with each contributor, and with the users.
+
+I would love to contribute to this effort to the best of my abilities.
+
+
+## Resources About Me
+
+- [Google Open Source Summit Talk](https://www.youtube.com/watch?v=cPO8dHtxcuk)
+- [kubernetespodcast](https://kubernetespodcast.com/episode/187-kubernetes-1.25/)
diff --git a/elections/steering/2022/candidate-cpanato.md b/elections/steering/2022/candidate-cpanato.md
new file mode 100644
index 00000000..f6cc9550
--- /dev/null
+++ b/elections/steering/2022/candidate-cpanato.md
@@ -0,0 +1,37 @@
+-------------------------------------------------------------
+name: Carlos Panato
+ID: cpanato
+info:
+ - employer: Chainguard
+ - slack: cpanato
+-------------------------------------------------------------
+
+<!-- Please make a copy of this template as "candidate-githubid.md" and save it to
+the election directory -->
+
+## SIGS
+
+- sig-release
+- sig-cluster-lifecycle
+
+## What I have done
+
+ - Start contributing more to Kubernetes repositories around 2018, and before that, it was more inside the companies I used to work.
+ - Today I contribute more for SIG-Release, acting as a branch manager and Techinical Lead to build and release Kubernetes to the wild.
+ - Contribute to all things related to Cluster API project and focus my contribution on GCP and DigitalOcean.
+ - Help to onboard new branch managers in the SIG-Release and any other member who has any questions.
+ - Served in the K8s Code of Conduct Committee
+ - Help in the mailing list administration and help to build tools to support the organization, like the moderator words for slack and other small tools.
+
+## What I'll do
+
+ - I will try to get onboard contributors underrepresented by making the process more inclusive and having more formal mentorship programs and knowledge transfer.
+ - I will try to keep the community safe and welcoming.
+ - I will try to incentivize the attention to understaffed work, like documentation
+ - Have fun with the steering committee, and try to spread the joy across all sigs.
+
+## Resources About Me
+
+- [Cluster API Deep Dive](https://www.youtube.com/watch?v=npFO5Fixqcc&list=PLj6h78yzYM2Pn8RxfLh2qrXBDftr6Qjut&index=67&t=17s)
+- [Releasing Kubernetes Less Often and More Secure](https://www.youtube.com/watch?v=qhQYu077zZU&list=PLj6h78yzYM2MCEgkd8zH0vJWF7jdQ-GRR&index=239&t=2s)
+- [twitter](https://twitter.com/comedordexis)
diff --git a/elections/steering/2022/candidate-deads2k.md b/elections/steering/2022/candidate-deads2k.md
new file mode 100644
index 00000000..41b51dc2
--- /dev/null
+++ b/elections/steering/2022/candidate-deads2k.md
@@ -0,0 +1,49 @@
+-------------------------------------------------------------
+name: David Eads
+ID: deads2k
+info:
+ - employer: Red Hat
+ - slack: deads2k
+-------------------------------------------------------------
+
+<!-- Please make a copy of this template as "candidate-githubid.md" and save it to
+the election directory -->
+
+## SIGS
+
+- sig-api-machinery - tech lead and chair
+- sig-auth - tech lead
+- production readiness sig-arch subproject
+- wg-reliability - organizer
+
+## What I have done
+
+I've contributed to Kubernetes in a technical capacity since 2014.
+In the past seven years, I've contributed code to most areas in kubernetes/kubernetes.
+
+Most of my focus has been in api-machinery (CRDs, the kube-apiserver),
+client/controller patterns (client-go), auth (authorization in particular).
+If there was a theme to my work, I would say that it was about enabling an ecosystem to grow
+on top of our project. To that end, I have worked with many people with varying
+roles across most of the sigs and inside and outside the Kubernetes project. I have helped
+them learn to use Kubernetes and I have listened to them so that I could learn what
+capabilities we need to develop.
+
+I take pride in creating solid foundations that others can build on top of with confidence.
+
+## What I'll do
+
+I will work to maintain a stable, trustworthy, and transparent governance structure.
+I think it is important to ensure a professional working environment.
+
+I will evaluate decisions for their impact
+- to our users' confidence in the Kubernetes project
+- to our contributors' ability to work on the technology in this project
+- to our community's long term health
+
+## Resources About Me
+
+- [Meet the Contributors](https://www.youtube.com/watch?reload=9&v=sQTATR_X_sU)
+- [KubeCon Operating kube-apiserver without hiccups](https://www.youtube.com/watch?v=pED17NXiexw)
+- [KubeCon Into the Deep Waters of API Machinery](https://www.youtube.com/watch?v=0VWNWJktcHk)
+- [Admission Webhook Webinar](https://webinars.dev/cncf/whats-new-kubernetes-1-9.md/)
diff --git a/elections/steering/2022/candidate-lavalamp.md b/elections/steering/2022/candidate-lavalamp.md
new file mode 100644
index 00000000..bf63e17d
--- /dev/null
+++ b/elections/steering/2022/candidate-lavalamp.md
@@ -0,0 +1,48 @@
+
+-------------------------------------------------------------
+name: Daniel Smith
+ID: lavalamp
+info:
+ - employer: Google
+ - slack: lavalamp
+-------------------------------------------------------------
+
+## SIGS
+
+- API Machinery (TL)
+- API Expression Working Group (instigator)
+- API Reviewer/Approver
+
+## What I have done
+
+I joined Kubernetes before it was open source, and was the top contributor for its first few years.
+I worked with people in every area of the project, eventually specializing on making it
+possible for an ecosystem to form around Kubernetes. API consistency and extensibility are critical for
+that; I started and continue to co-run the API Machinery SIG (example feature: server-side
+appy). Other focuses include reliability and scalability (example: empowering the priority and fairness team).
+
+I see my main ability as being able to understand and predict the behavior of complicated systems, whether made of software or people.
+
+## What I'll do
+
+I believe Kubernetes will be used in important systems for decades to come.
+- I will evaluate decisions for the long term.
+- Especially decisions that have ongoing effects (e.g. rules changes): I will carefully consider long-term incentives.
+- Surviving the long term requires surviving the short term; I'll seek to be proactive, so that our long and short term interests won't conflict.
+- I will seek to minimize accumulation of excess complexity.
+
+Long-term success requires a long-term community.
+- I will evaluate decisions in terms of their expected effect on the future size & health of the community.
+- And from the perspectives of all community members (e.g. users, cluster administrators, and developers).
+- Small clusters are important too! Users without large clouds to support them are users also!
+
+Long-term success requires Kubernetes to actually work.
+- Kubernetes has formed an ecosystem; we must maintain it, and make good on compatibility promises.
+- Reliability, non-flaky tests, and scalability are more important than new features.
+- (The Steering Committee doesn’t make technical decisions, but policies, programs, rules, etc may have indirect impact)
+
+## Resources About Me
+
+- My most popular talk: [The Kubernetes Control Plane For Busy People Who Like Pictures](https://www.youtube.com/watch?v=zCXiXKMqnuE)
+- https://twitter.com/originalavalamp
+
diff --git a/elections/steering/2022/candidate-mrbobbytables.md b/elections/steering/2022/candidate-mrbobbytables.md
new file mode 100644
index 00000000..1a1e2268
--- /dev/null
+++ b/elections/steering/2022/candidate-mrbobbytables.md
@@ -0,0 +1,96 @@
+-------------------------------------------------------------
+name: Bob Killen
+ID: mrbobbytables
+info:
+ - employer: Google
+ - slack: mrbobbytables
+-------------------------------------------------------------
+
+## SIGS
+
+- SIG Contributor Experience - Co-chair and owner of multiple subprojects
+- Steering Committee - active committee member elected 2020
+- SIG Release - Release Team from 1.15 -> 1.19
+- SIG Architecture: Enhancements Subproject Owner
+
+## What I have done
+
+Most of my tenure as a contributor in the project has been focused on growing
+and sustaining a safe & healthy contributor community within the project.
+
+A few notable things include:
+- [Defined policy around inactive members][Defined policy around inactive members], and routinely pruned OWNERS to
+ ensure an active reviewer/approver pool.
+- Rolled out [improved triage automation & workflow][improved triage automation & workflow] practices across the org.
+- I have helped run every Contributor Summit since 2018, and have served as lead
+ for [NA 2021][NA 2021], [NA 2022][NA 2022] along with leading both virtual Celebrations
+ ([1][c1], [2][c2]) during the Pandemic.
+- Trusted member of the [GitHub Admin Team][GitHub Admin Team], including acting as representative
+ to GitHub for the project.
+- [Moderator of all our communications platforms][Moderator of all our communications platforms]
+- Leading the development of an online "New Contributor Course" to serve as
+ a replacement for the New Contributor Workshop (Slated to launch before
+ KubeCon)
+- As a represenative of the Steering Committee, presented a [Keynote talk][Keynote talk] with
+ Aeva Black (@AevaOnline) from the Code of Conduct Committee @ KubeCon 2019 on
+ shaping the Kubernetes Community Culture.
+- Dogfooding leadership succession mentoring by co-leading in the
+ [SIG ContribEx lead shadow program][SIG ContribEx lead shadow program], bringing on 6 potential future chairs
+ and TLs.
+
+Outside of Kubernetes, I have also been involved heavily with the CNCF as an
+[Ambassador][Ambassador], co-chair of the [Research User Group], and a Program Committee
+Member of KubeCon and various other colo events since 2018.
+
+My efforts both for Kubernetes and the broader community were recognized in
+2019 when I received the [CNCF Chop Wood Carry Water Award][CNCF Chop Wood Carry Water Award].
+
+[NA 2021]: https://www.kubernetes.dev/events/2021/kcsna/
+[NA 2022]: https://www.kubernetes.dev/events/2022/kcsna/
+[c1]: https://www.kubernetes.dev/events/2020/kcc/
+[c2]: https://www.kubernetes.dev/events/2021/kcc/
+[Defined policy around inactive members]: https://groups.google.com/d/msg/kubernetes-dev/AvCa-sGx9Jw/zByeyP9LAgAJ
+[improved triage automation & workflow]: https://github.com/kubernetes/enhancements/tree/master/keps/sig-contributor-experience/1553-issue-triage
+[Contributor Summits]: https://www.kubernetes.dev/events/
+[GitHub Admin Team]: http://git.k8s.io/community/github-management#github-administration-team
+[Moderator of all our communications platforms]: https://git.k8s.io/community/communication/moderators.md
+[Keynote talk]: https://youtu.be/aVZWOMGE5q8
+[SIG ContribEx lead shadow program]: https://docs.google.com/document/d/1CBz8qV_mD6rbDmTsMuosTOQGRXGhN3d8UrcULUI6Vkw/edit#bookmark=id.6p8mxrh41rzf
+[Ambassador]: https://www.cncf.io/people/ambassadors/
+[Research User Group]: https://github.com/cncf/research-user-group
+[CNCF Chop Wood Carry Water Award]: https://github.com/cncf/awards#chop-wood-carry-water-2
+
+## What I'll do
+
+I appreciate your consideration for what would be my final term on steering :)
+
+In my time in the project, I've been an end-user consumer, part-time hobby
+contributor, owner, elected leader, and most recently, a contributor working
+for one of the big cloud providers. I've worn many different hats and
+understand the frustrations and boons that have come with each role.
+
+These experiences come heavily into play as we look toward developing
+strategies for the project's long-term success. Steering has recognized that the
+time of the [9 to 5 contributor][9 to 5 contributor] has past, and we need to develop policies and
+processes to ensure we can continue to grow new contributors, reviewers,
+approvers, and our future SIG/WG/Committee leaders.
+
+This means engaging with the CNCF, its members, and the end-user community.
+It means looking into improving leadership continuity through things like terms,
+the creation of more roles, and a further investment in mentorship. It means
+continuing to do outreach and create a diverse and welcoming place for all
+contributors. I wish to drive focus in or community toward these key areas,
+and encourage action through policy. I want to build sustainable models for
+ourselves and continue to be a role-model project for the broader Cloud Native
+community.
+
+I'll stop my own ranting there, but hopefully it gives you an idea of what's
+important to me and what I'd like to focus on if elected.
+
+
+[9 to 5 contributor]: https://github.com/kubernetes/steering/blob/main/reports/summary-2021.md#the-9-to-5-contributor-is-almost-over-and-we-have-to-adjust
+
+## Resources About Me
+
+- Website: https://mrbobbytabl.es
+- Twitter: [@mrbobbytables](https://twitter.com/mrbobbytables)
diff --git a/elections/steering/2022/candidate-palnabarun.md b/elections/steering/2022/candidate-palnabarun.md
new file mode 100644
index 00000000..4371910b
--- /dev/null
+++ b/elections/steering/2022/candidate-palnabarun.md
@@ -0,0 +1,47 @@
+-------------------------------------------------------------
+name: Nabarun Pal
+ID: palnabarun
+info:
+ - employer: VMware
+ - slack: palnabarun
+-------------------------------------------------------------
+
+## SIGS
+
+- Code of Conduct Committee (CoCC)
+- API Machinery: Clients Subproject
+- Architecture: Code Organization, Enhancements
+- Contributor Experience: Events, GitHub Admin, dev@kubernetes.io moderator
+- Testing: Deflaking test jobs
+- Release:
+ - Release Manager
+ - Release Team (1.17-1.21, 1.23-1.24, 1.26)
+ - 1.26 Emeritus Adviser
+ - 1.24 Branch Manager
+ - 1.21 Release Lead
+ - 1.19 Enhancements Lead
+
+## What I have done
+
+I got involved with the Kubernetes community on my own time to give back to a project that I was using to build an internal platform at my day job. Since then, I have been associated with the Kubernetes Releases after joining the 1.17 Enhancements team. I was the Release Lead for Kubernetes 1.21, the Enhancements Team Lead for Kubernetes 1.19 and Branch Manager for 1.24. I contribute to SIG Release as a Release Manager and the Emeritus Adviser for Kubernetes 1.26.
+
+I was elected to the Kubernetes Code of Conduct Committee, maintain the Kubernetes GitHub organizations as a GitHub Administrators, contributed to the Kubernetes Python client in various areas, and led multiple Kubernetes New Contributor Workshops in the APAC region, helping new contributors to start with Kubernetes. In the groups I was part of, I tried to make the meetings/processes more sustainable for geographically diverse contributors. One of the examples of such initiatives is asynchronous updates instead of meetings.
+
+I have mentored people from all walks of life through regular 1:1 sessions. Additionally, I have been the Technology Working Group Lead for PyCon India.
+
+## What I'll do
+
+Over the past 3.5 years that I have been contributing to Kubernetes growing through the ranks, I have seen first-hand the challenges faced by sections of the contributor community. I want to work toward solving those issues. I believe that my active involvement in multiple aspects of the Kubernetes project equips me to form informed opinions on key decisions.
+
+- Helping SIGs come up with well-defined plans to support new contributors and a clear ladder for them to get promoted to reviewers/approvers
+- Ensure the practices and processes of the community are sustainable in the long term
+- Further emphasize the importance of asynchronous communication over public channels to reduce friction and bias
+- Continue and impart thoughts from my own experience to the community efforts to help part-time contributors working on their own time to contribute to the project sustainably
+- Reducing the geographical and linguistic disadvantage of contributors from APAC/EMEA timezones
+- Uphold the [values of the community](https://github.com/kubernetes/community/blob/master/values.md) while dealing with conflicts as I have been doing at CoCC
+
+## Resources
+
+- Talks: [https://nabarun.dev/speaking/](https://nabarun.dev/speaking/)
+- Twitter: [https://twitter.com/theonlynabarun](https://twitter.com/theonlynabarun)
+- 1:1 Mentoring: [https://calendly.com/palnabarun/1-on-1](https://calendly.com/palnabarun/1-on-1)
diff --git a/elections/steering/2022/candidate-qedrakmar.md b/elections/steering/2022/candidate-qedrakmar.md
new file mode 100644
index 00000000..86c1f319
--- /dev/null
+++ b/elections/steering/2022/candidate-qedrakmar.md
@@ -0,0 +1,31 @@
+-------------------------------------------------------------
+name: Noah Abrahams
+ID: qedrakmar
+info:
+ - employer: Oracle
+ - slack: nabrahams
+-------------------------------------------------------------
+
+## SIGS
+
+- SIG Contributor Experience
+
+## What I have done
+
+I got started with Kubernetes in 2016, and have been devoted to the project and ecosystem since then.
+
+I have previously been part of Release Team, the long lost SIG-PM, and helped the early formation of WG-LTS. As a contributor, my rallying cry has been around non-code contributions, and I created and lead the non-code contributor subproject under SIG Contributor Experience. As stated elsewhere, I focus on the behind-the-scenes work that doesn’t make my GitHub profile any greener.
+
+I’ve helped onboard new contributors through previous New Contributors Workshops, group mentoring, speaking at and running meetups (I created the Las Vegas meetup), and generally trying to remove impediments to getting people involved. You’ll find me on the Kubecon Program Committee, helping run Contributor Summits all over the world, working CNCF booth duty as an Ambassador at conferences, and anywhere else that I can help people get better and become more involved.
+
+## What I'll do
+
+I will emphasize our priorities of People first, Project second, Company third. Since this committee primarily operates in a human-centered role, and not really a technical role, I intend to focus on the people in our communities, whether they are not yet a contributor, are happily part of this ecosystem, or they’ve already climbed the maintainer ladder and are facing burnout.
+
+I will be a steward, a resource, a liaison, and a friend, providing for the health and well-being of this community, and every one of the people whose lives it touches, so this project can continue to grow and thrive. This naturally means also focusing on inclusion and accessibility to ensure that no-one is left behind or made to feel unwelcome.
+
+## Resources About Me
+
+- My very silly Kubecon LA Talk: [A Safari of Kubernetes and its Natural Habitat](https://www.youtube.com/watch?v=RnhRj_EsYtk)
+- [A talk about communication at a New Contributor Workshop, 2018](https://www.youtube.com/watch?v=AVoat-IdCGA)
+- [My Twitter](https://twitter.com/Noah_Abrahams)
diff --git a/elections/steering/2022/results.md b/elections/steering/2022/results.md
new file mode 100644
index 00000000..37637496
--- /dev/null
+++ b/elections/steering/2022/results.md
@@ -0,0 +1,23 @@
+# Results of the 2022 Steering Committee Election
+
+- Number of seats open: 3 (2 year term)
+- Number of eligible voters: 698
+- Number of votes cast: 219
+- Turnout: 31.37%
+
+## Winners
+
+The winners of the open seats are as follows for their two year term:
+
+1. [Bob Killen](https://github.com/mrbobbytables)
+2. [Benjamin Elder](https://github.com/bentheelder)
+3. [Nabarun Pal](https://github.com/palnabarun)
+
+The rest of the candidates were placed as follows:
+4. [Cici Huang](https://github.com/cici37)
+5. [Carlos Tadeu Panato Junior](https://github.com/cpanato)
+6. [Daniel Smith](https://github.com/lavalamp)
+7. [David Eads](https://github.com/deads2k)
+8. [Noah Abrahams](https://github.com/qedrakmar)
+
+Proportional representation limits were not invoked for this election.
diff --git a/elections/steering/2022/templates/election-templates.md b/elections/steering/2022/templates/election-templates.md
index 8cd7e2b8..a8b134bb 100644
--- a/elections/steering/2022/templates/election-templates.md
+++ b/elections/steering/2022/templates/election-templates.md
@@ -23,7 +23,7 @@ The requirements for voting are to have had at least 50 project contributions in
## New Voting System
-This is the second year we will be using Elekto[5] for the Kubernetes Steering elections. Elekto was commissioned as an internship project for us by the CNCF. You'll find it has a much more modern UI, and does not rely on email at all to enable voting. It uses GitHub authentication so all we need to know is your GitHub username. If you log in to Elekto at https://elections.k8s.io/app/elections/2022, you can also directly check your eligibility if you don't want to search through the YAML file linked above.
+This is the second year we will be using Elekto[5] for the Kubernetes Steering elections. Elekto was commissioned as an internship project for us by the CNCF. You'll find it has a much more modern UI, and does not rely on email at all to enable voting. It uses GitHub authentication so all we need to know is your GitHub username. If you log in to Elekto at https://elections.k8s.io/app/elections/2022, you can also directly check your eligibility to vote if you don't want to search through the YAML file linked above.
## Schedule
@@ -51,9 +51,116 @@ We will be posting regular updates to dev@kubernetes during the election as well
[5] Elekto: https://elekto.dev - Our elections platform
-Thank you from all your election officers. If you have any questions, you can reach us via election@k8s.io, or message us on Slack any time.
+Thank you from all your election officials. If you have any questions, you can reach us via election@k8s.io, or message us on Slack any time.
Noah Kantrowitz
Kaslin Fields
Davanum Srinivas
+== Candidate Qualification
+
+Per the requirements of the https://git.k8s.io/steering/elections.md[candidate process], I have verified that {name of candidate} has the necessary endorsements to qualify to run for steering committee.
+
+{candidate}, please prepare a bio for yourself based on the https://github.com/kubernetes/community/blob/master/elections/steering/2022/nomination-template.md[nomination-template.md] file and submit a PR before September 2nd.
+
+== Reminder 1 week before the end of nominations:
+
+Kubernetes Devs:
+
+Election update!
+
+We have XXX candidates[1] who have been nominated to run for Steering Committee, which is already a lot! But you have until August 30th to nominate additional candidates, using the nomination process[2].
+
+Contributors, now is also the time to check your eligibility by visiting the elections app[3] and seeing if you are marked Eligible. If you are not and should be, you can request an exception[4] in that app.
+
+Candidates, you have through October 14th to submit your candidate profiles[2] with a PR to the community repo. Please do this as soon as you can.
+
+[1] https://github.com/kubernetes/community/issues?q=is%3Aissue+%22Steering+Committee+Nomination%3A%22+in%3Atitle
+[2] https://github.com/kubernetes/community/tree/master/elections/steering/2022#candidacy-process
+[3] https://elections.k8s.io/app/elections
+[4] https://github.com/kubernetes/community/tree/master/elections/steering/2022#voter-exception
+
+== Election Status Updates
+
+Post these weekly to kubernetes-dev
+
+$greeting,
+
+The Kubernetes Steering Committee Election begins today/is underway! Please visit https://elections.k8s.io/app/elections and watch out for announcements as well.
+
+The list of candidates and links to their bios are all available here: https://git.k8s.io/community/elections/steering/2022
+
+// Voting
+
+* You should check to see if you are in voters.md. Your github handle MUST BE IN THIS DOCUMENT to vote: https://github.com/kubernetes/community/blob/master/elections/steering/2022/voters.yaml
+
+* If you feel you have made enough contributions (50+ as counted in DevStats) to be able to vote but you are NOT in voters.yaml, you file an exception https://elections.k8s.io/app/elections/steering---2022/exception[here]
+
+* If you are planning on running for Steering Committee please see this section of the documentation; you need to PR your biography into the repo by September 2nd: https://github.com/kubernetes/community/tree/master/elections/steering/2022#candidacy-process
+
+// Schedule
+
+The next deadline is XXX , you have until then to complete your ballot. If you have any questions, let us know.
+
+| August XX | All candidate bios due by AoE |
+| August XX | Election Begins via email ballots |
+| September XX | Deadline to submit voter exception forms |
+| September XX | Election Closes by 0000 UTC AoE |
+| September XX | Announcement of Results at Community Meeting |
+
+// Resources
+
+Voters Guide - https://git.k8s.io/community/elections/steering/2022
+Steering Committee - https://git.k8s.io/steering
+Steering Committee Charter - https://git.k8s.io/steering/charter.md
+Election Process - https://git.k8s.io/steering/elections.md
+
+On behalf of the election officials,
+Name (github), Name (github), etc
+
+If you have questions, please feel free to ask on the list; otherwise, you can reach the Election Officials at election@k8s.io or #sig-contribex-elections on kubernetes slack
+
+== Election Poll Header
+
+Welcome to the 2022 annual Kubernetes Steering Committee election. More information, including candidates, links to candidate bios, deadlines and procedures, can be found <a href="https://github.com/kubernetes/community/tree/master/elections/steering/2022">on the 2022 election page.</a>
+<br /><br />
+All eligible <a href="https://github.com/kubernetes/community/blob/master/elections/steering/2022/voters.yaml">voters</a> for this election will be able to vote using https://elections.k8s.io/app/elections/steering---2022[https://elections.k8s.io/app/elections/steering---2022]
+<br /><br />
+The Steering Committee Election is a preference election. Please arrange the candidates in the order you would prefer them. Three members of the committee will be elected this year. PLEASE NOTE: "No opinion" is also a voting option if you do not feel comfortable ranking every single candidate.
+<br /><br />
+To report issues with this election, or ask questions, email <a href="mailto:election@kubernetes.io">the Election Officials.</a>
+
+== Election Results
+
+This mail only goes to the incumbent members of steering who are NOT running that year!
+
+$greeting,
+
+Please keep this information private!
+
+An incumbent steering member announces the results. At least one of you please come to the community meeting tomorrow to make the announcement. Let us know if you cannot.
+
+After the community meeting, we'll publish this blog post (feedback encouraged).
+
+A note on the results, as per previous elections we plan on announcing/celebrating the winners and only publishing their names, GitHub handles, and affiliations. We purposely don't mention rankings or the results of the rest of the field.
+
+We will quietly check in the full election results (with anonymized ballots) into the community repo in the next few weeks. This will satisfy transparency requirements while being respectful to the other candidates.
+
+Results and data from the 2022 Steering Committee election:
+
+* XXX eligible voters as determined by:
+** XXX org members with 50+ DevStats recorded contributions between
+ Aug 1 2021 and Aug 1 2022.
+** XX additional exception voters comprising XX% of exception requests
+** Of the XXX eligible voters, no useful address could be initially
+ determined for XX of them, XX members submitted corrected email addresses,
+ and X were denied due to ineligibility
+
+XXX total votes cast as of the close on September XX at 5pm PT (XX%)
+
+Last Year's data: XXX eligible voters with XXX votes cast (XX%)
+
+Final Results:
+
+(paste these from CIVS)
+1. Jane Containerface (@github) (Condorcet winner: wins contests with all other choices)
diff --git a/elections/steering/2022/voters.yaml b/elections/steering/2022/voters.yaml
index 88b3a400..3ed0efa6 100644
--- a/elections/steering/2022/voters.yaml
+++ b/elections/steering/2022/voters.yaml
@@ -2,7 +2,7 @@
##################################
#
# The process for determining elegible voters can be found in
-# https://github.com/kubernetes/community/tree/master/events/elections/2022
+# https://github.com/kubernetes/community/tree/master/elections/steering/2022
#
# If you feel you meet the eligibility criteria but do not see your GitHub username
# below, please fill out an exception request and the elections team will get back to
@@ -12,10 +12,14 @@
# 2022-08-13: Initial voter list prepared using devstats data provided Lukasz Gryglicki
# and current organization membership status.
# 2022-08-15: Add incoming CoCC members and exception link.
+# 2022-08-28: Add voters from exception requests.
+# 2022-09-05: Add voters from exception requests.
+# 2022-09-09: Add voters from exception requests.
+# 2022-09-14: Add voters from exception requests.
#
eligible_voters:
-- 196Ikuchil
- '249043822'
+- 196Ikuchil
- a7i
- aartij17
- Abirdcfly
@@ -61,6 +65,7 @@ eligible_voters:
- aravindhp
- ardaguclu
- Arhell
+- ArkaSaha30
- Arvinderpal
- asalkeld
- ash2k
@@ -137,6 +142,7 @@ eligible_voters:
- corneliusweig
- cpanato
- cprivitere
+- craigbox
- cristicalin
- csantanapr
- cyclinder
@@ -257,6 +263,7 @@ eligible_voters:
- hzxuzhonghu
- iamemilio
- iamNoah1
+- IanColdwater
- ianychoi
- ibabou
- idvoretskyi
@@ -284,6 +291,7 @@ eligible_voters:
- jbartosik
- jberkus
- jcjesus
+- jeefy
- Jefftree
- jeffvance
- jeremyrickard
@@ -331,6 +339,7 @@ eligible_voters:
- Karthik-K-N
- Kartik494
- kaslin
+- katcosgrove
- kavyashree-r
- kbhawkey
- kcmartin
@@ -355,6 +364,7 @@ eligible_voters:
- krmayankk
- kundan2707
- kvaps
+- lachie83
- landreasyan
- lauchokyip
- lauralorenz
@@ -484,6 +494,7 @@ eligible_voters:
- parispittman
- parul5sahoo
- pawbana
+- pchan
- perithompson
- petr-muller
- phenixblue
@@ -508,11 +519,13 @@ eligible_voters:
- PushkarJ
- pydctw
- qabpea
+- qedrakmar
- RA489
- raelga
- Raffo
- RainbowMango
- Rajalakshmi-Girish
+- rajaskakodkar
- ramineni
- ramrodo
- Random-Liu
@@ -531,6 +544,7 @@ eligible_voters:
- riita10069
- rikatz
- RinkiyaKeDad
+- Rishit-dagli
- ritazh
- rjbez17
- rmohr
@@ -545,6 +559,7 @@ eligible_voters:
- RyanAoh
- s-kawamura-w664
- s-urbaniak
+- saad-ali
- saikat-royc
- salaxander
- sallyom
@@ -649,6 +664,7 @@ eligible_voters:
- Verolop
- verult
- vinayakankugoyal
+- vinaykul
- vincepri
- vladimirvivien
- vllry
diff --git a/elections/steering/OWNERS b/elections/steering/OWNERS
index de4ba9fd..a08ed834 100644
--- a/elections/steering/OWNERS
+++ b/elections/steering/OWNERS
@@ -2,11 +2,12 @@
approvers:
- jberkus
- - parispittman
- jdumars
- committee-steering
- sig-contributor-experience-leads
- coderanger
- dims
+emeritus_approvers:
+ - parispittman
labels:
- committee/steering
diff --git a/events/OWNERS b/events/OWNERS
index 11bddf19..71503abe 100644
--- a/events/OWNERS
+++ b/events/OWNERS
@@ -1,9 +1,10 @@
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- - parispittman
- mrbobbytables
- jberkus
- sig-contributor-experience-leads
+emeritus_approvers:
+ - parispittman
labels:
- sig/contributor-experience
diff --git a/events/awards/README.md b/events/awards/README.md
index 43751b77..1f326cd1 100644
--- a/events/awards/README.md
+++ b/events/awards/README.md
@@ -10,7 +10,9 @@ These awards are handed out during the end-of-year Contributor Summit.
- [2021 Contributor Award Recipients][2021-awards-recipients]
- [2020 Contributor Award Recipients][2020-awards-recipients]
+- [2019 Contributor Award Recipients][2019-awards-recipients]
[playbook]: ./README.md
[2021-awards-recipients]: ./award-recipients/2021-award-recipients.md
-[2020-awards-recipients]: ./award-recipients/2020-award-recipients.md \ No newline at end of file
+[2020-awards-recipients]: ./award-recipients/2020-award-recipients.md
+[2019-awards-recipients]: ./award-recipients/2019-award-recipients.md \ No newline at end of file
diff --git a/events/awards/award-recipients/2019-award-recipients.md b/events/awards/award-recipients/2019-award-recipients.md
new file mode 100644
index 00000000..6d089cd7
--- /dev/null
+++ b/events/awards/award-recipients/2019-award-recipients.md
@@ -0,0 +1,35 @@
+# Kubernetes Contributor Awards
+
+Every year the Kubernetes Contributor Community select awardees for outstanding contributions to the project
+
+# 2019
+
+By Special Interest Group (SIG)
+
+#### Cloud Provider
+
+- Lubomir Ivanov
+
+#### Instrumentation
+
+- Han Kang
+
+#### Release
+
+- Katharine Berry
+
+#### Scheduling
+
+- Huang Wei
+
+#### Storage
+
+- Michelle Au
+
+#### Windows
+
+- Jordan Liggitt
+
+#### WG Multitenancy
+
+- Ryan Bezdicek \ No newline at end of file
diff --git a/governance.md b/governance.md
index 5a866d90..0ef27937 100644
--- a/governance.md
+++ b/governance.md
@@ -160,7 +160,7 @@ See [user group governance] for more details about forming and disbanding
User Groups.
To facilitate discoverability and engagement,
-user groups are documented in [sigs.yaml]
+user groups are documented in [sigs.yaml].
## Community Group Annual Reports
As you can see in the descriptions above, the project is robust with diverse
@@ -213,7 +213,7 @@ All contributors must sign the CNCF CLA, as described [here](CLA.md).
[SIG Lifecycle]: /sig-wg-lifecycle.md
[We have them!]: /values.md
[Kubernetes code of conduct]: /code-of-conduct.md
-[design principles]: /contributors/design-proposals/architecture/principles.md
+[design principles]: https://git.k8s.io/design-proposals-archive/architecture/principles.md
[scope]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
[community members]: /community-membership.md
[sig governance]: /committee-steering/governance/sig-governance.md
diff --git a/hack/generate-devstats-repo-sql.py b/hack/generate-devstats-repo-sql.py
index 71d77497..c86c26f0 100755
--- a/hack/generate-devstats-repo-sql.py
+++ b/hack/generate-devstats-repo-sql.py
@@ -15,7 +15,7 @@
# limitations under the License.
"""
-Output devstats repo_groups.sql based on subproject defintions in sigs.yaml
+Output devstats repo_groups.sql based on subproject definitions in sigs.yaml
This is likely missing a few repos because:
- some repos lack an owner (eg: kubernetes/kubernetes)
diff --git a/liaisons.md b/liaisons.md
index c50a88e8..65558da9 100644
--- a/liaisons.md
+++ b/liaisons.md
@@ -30,37 +30,37 @@ members will assume one of the departing members groups.
| Community Group | Steering Committee Liaison |
| -------------------------- | -------------------------- |
-| [SIG API Machinery](sig-api-machinery/README.md) | Davanum Srinivas (**[@dims](https://github.com/dims)**) |
+| [SIG API Machinery](sig-api-machinery/README.md) | Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**) |
| [SIG Apps](sig-apps/README.md) | Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**) |
-| [SIG Architecture](sig-architecture/README.md) | Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**) |
+| [SIG Architecture](sig-architecture/README.md) | Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**) |
| [SIG Auth](sig-auth/README.md) | Christoph Blecker (**[@cblecker](https://github.com/cblecker)**) |
| [SIG Autoscaling](sig-autoscaling/README.md) | Tim Pepper (**[@tpepper](https://github.com/tpepper)**) |
| [SIG CLI](sig-cli/README.md) | Stephen Augustus (**[@justaugustus](https://github.com/justaugustus)**) |
| [SIG Cloud Provider](sig-cloud-provider/README.md) | Stephen Augustus (**[@justaugustus](https://github.com/justaugustus)**) |
-| [SIG Cluster Lifecycle](sig-cluster-lifecycle/README.md) | Davanum Srinivas (**[@dims](https://github.com/dims)**) |
+| [SIG Cluster Lifecycle](sig-cluster-lifecycle/README.md) | Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**) |
| [SIG Contributor Experience](sig-contributor-experience/README.md) | Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**) |
-| [SIG Docs](sig-docs/README.md) | Paris Pittman (**[@parispittman](https://github.com/parispittman)**) |
+| [SIG Docs](sig-docs/README.md) | Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**) |
| [SIG Instrumentation](sig-instrumentation/README.md) | Christoph Blecker (**[@cblecker](https://github.com/cblecker)**) |
| [SIG K8s Infra](sig-k8s-infra/README.md) | Stephen Augustus (**[@justaugustus](https://github.com/justaugustus)**) |
| [SIG Multicluster](sig-multicluster/README.md) | Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**) |
| [SIG Network](sig-network/README.md) | Tim Pepper (**[@tpepper](https://github.com/tpepper)**) |
| [SIG Node](sig-node/README.md) | Tim Pepper (**[@tpepper](https://github.com/tpepper)**) |
-| [SIG Release](sig-release/README.md) | Davanum Srinivas (**[@dims](https://github.com/dims)**) |
+| [SIG Release](sig-release/README.md) | Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**) |
| [SIG Scalability](sig-scalability/README.md) | Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**) |
-| [SIG Scheduling](sig-scheduling/README.md) | Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**) |
-| [SIG Security](sig-security/README.md) | Paris Pittman (**[@parispittman](https://github.com/parispittman)**) |
-| [SIG Storage](sig-storage/README.md) | Paris Pittman (**[@parispittman](https://github.com/parispittman)**) |
-| [SIG Testing](sig-testing/README.md) | Paris Pittman (**[@parispittman](https://github.com/parispittman)**) |
+| [SIG Scheduling](sig-scheduling/README.md) | Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**) |
+| [SIG Security](sig-security/README.md) | Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**) |
+| [SIG Storage](sig-storage/README.md) | Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**) |
+| [SIG Testing](sig-testing/README.md) | Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**) |
| [SIG UI](sig-ui/README.md) | Stephen Augustus (**[@justaugustus](https://github.com/justaugustus)**) |
-| [SIG Usability](sig-usability/README.md) | Davanum Srinivas (**[@dims](https://github.com/dims)**) |
-| [SIG Windows](sig-windows/README.md) | Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**) |
-| [WG API Expression](wg-api-expression/README.md) | Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**) |
+| [SIG Usability](sig-usability/README.md) | Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**) |
+| [SIG Windows](sig-windows/README.md) | Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**) |
+| [WG API Expression](wg-api-expression/README.md) | Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**) |
| [WG Batch](wg-batch/README.md) | Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**) |
| [WG Data Protection](wg-data-protection/README.md) | Christoph Blecker (**[@cblecker](https://github.com/cblecker)**) |
| [WG IoT Edge](wg-iot-edge/README.md) | Christoph Blecker (**[@cblecker](https://github.com/cblecker)**) |
-| [WG Multitenancy](wg-multitenancy/README.md) | Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**) |
+| [WG Multitenancy](wg-multitenancy/README.md) | Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**) |
| [WG Policy](wg-policy/README.md) | Christoph Blecker (**[@cblecker](https://github.com/cblecker)**) |
-| [WG Structured Logging](wg-structured-logging/README.md) | Davanum Srinivas (**[@dims](https://github.com/dims)**) |
+| [WG Structured Logging](wg-structured-logging/README.md) | Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**) |
| [UG Big Data](ug-big-data/README.md) | Tim Pepper (**[@tpepper](https://github.com/tpepper)**) |
| [UG VMware Users](ug-vmware-users/README.md) | Tim Pepper (**[@tpepper](https://github.com/tpepper)**) |
| [Committee Code of Conduct](committee-code-of-conduct/README.md) | Tim Pepper (**[@tpepper](https://github.com/tpepper)**) |
diff --git a/mentoring/OWNERS b/mentoring/OWNERS
index bb13fa55..570487ed 100644
--- a/mentoring/OWNERS
+++ b/mentoring/OWNERS
@@ -1,11 +1,11 @@
# See the OWNERS docs at https://go.k8s.io/owners
approvers:
- - parispittman
- nikhita
- sig-contributor-experience-leads
emeritus_approvers:
- markyjackson-taulia # for community-bridge and meeting bosun
+ - parispittman # processes and programs and logos
labels:
- sig/contributor-experience
- area/mentorship-planning
diff --git a/mentoring/processes/group-mentoring.md b/mentoring/processes/group-mentoring.md
index a3fc7fe7..ef34836d 100644
--- a/mentoring/processes/group-mentoring.md
+++ b/mentoring/processes/group-mentoring.md
@@ -22,10 +22,11 @@ suggestions:
*Reviewer*
- Enhancements
-- Overview of Release Cycle
+- Overview of Release Cycle
+- Overview of SIGs subprojects
- Development
- Triage
- - Reviews
+ - Reviews - detailed walk thrus
- API Changes
- Testing
- Code Freeze
@@ -54,24 +55,32 @@ Examples:
0. Need is established and SIG provides a mentor*
1. ContribEx kicks off two issues, sets a target start and end date, and selects
a coordinator
- - issue #1: outreach issue to collect folks who are interested, issue will
- close when there are the max participants needed
- - issue #2 setting up infra - template here: [TODO link to example]
-2. ContribEx or SIG member posts the issue to the following places:
- - SIG and k-dev mailing lists
+ - issue #1: outreach issue to collect folks who are interested and set up
+ infra, issue will close when there are the max participants needed
+ example: https://github.com/kubernetes/community/issues/5962
+ key bits of info: target, start/end date, sign up and requirements, slack info,
+ mentors, coordinators
+ - issue #2: structure of sessions and assign guest speakers
+ start with a hackmd to coordinate with mentors and then set issue
+1. ContribEx Coordinator(s) posts issue #1 to the following places:
+ - SIG list first and then k-dev mailing lists with timeboxes for responses
- #diversity, #kubernetes-contributors, #sig-[name], and other slack channels
-3. Coordinator arranges a doodle for the kick off meeting and days/times that
-would be best for the mentor and group for slack standups and touch points. Once conscensus is reached, coordinator schedules it.
-4. Mentor creates template that serves as a reference guide for the group. See
+3. Slack stand ups happen on the day of the SIG meetings but the 30-min
+bi-weekly meetings will need to be arranged. Coorindator should send out a
+doodle to the selected group with a few times that work for the mentors.
+4. Coorindator and mentors work together on the three-month plan template.
+Coordinator will schedule the speakers and create a calendar for the group.
+example here: https://hackmd.io/1aAIaMChR8Gfi31aOKBHlA
+5. Mentor creates template that serves as a reference guide for the group. See
a sig-node example here: https://hackmd.io/8i8prErgSOamUmEZDDZPWA
-5. Program begins at the kick off meeting
+6. Program begins at the kick off meeting
- [TODO add kick off template]
-6. Feedback is continuous as you stand up weekly; however, the ContribEx
+7. Feedback is continuous as you stand up weekly; however, the ContribEx
Coorindator will set a mid program check-in. In this check-in, members of the
group will start their application process for their roles and any group members
who have not had the time.
- [TODO add community membership template]
-7. By this point, folks should know where they stand. At the end of the program,
+8. By this point, folks should know where they stand. At the end of the program,
mentors and/or individuals will start the PR process in OWNERS files or
sigs.yaml for leadership roles for those who are ready
diff --git a/mentoring/programs/outreachy.md b/mentoring/programs/outreachy.md
index 7f835b08..24cb8a2f 100644
--- a/mentoring/programs/outreachy.md
+++ b/mentoring/programs/outreachy.md
@@ -20,7 +20,7 @@ This [slide deck](https://docs.google.com/presentation/d/1JqcALpsg07eH665ZXQrIvO
## Communication
- Mailing List: development announcements and discussions appear on the [`kubernetes-dev`](https://groups.google.com/forum/#!forum/kubernetes-dev) Google Group.
-- Slack: Please [sign up](http://slack.k8s.io/) for an invite and join the the [#outreachy-apps](https://kubernetes.slack.com/messages/outreachy-apps) channel.
+- Slack: Please [sign up](http://slack.k8s.io/) for an invite and join the [#outreachy-apps](https://kubernetes.slack.com/messages/outreachy-apps) channel.
## Contribute
diff --git a/sig-api-machinery/README.md b/sig-api-machinery/README.md
index e8daa788..469399d9 100644
--- a/sig-api-machinery/README.md
+++ b/sig-api-machinery/README.md
@@ -47,7 +47,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
- [@kubernetes/sig-api-machinery-pr-reviews](https://github.com/orgs/kubernetes/teams/sig-api-machinery-pr-reviews) - PR Reviews
- [@kubernetes/sig-api-machinery-proposals](https://github.com/orgs/kubernetes/teams/sig-api-machinery-proposals) - Design Proposals
- [@kubernetes/sig-api-machinery-test-failures](https://github.com/orgs/kubernetes/teams/sig-api-machinery-test-failures) - Test Failures and Triage
-- Steering Committee Liaison: Davanum Srinivas (**[@dims](https://github.com/dims)**)
+- Steering Committee Liaison: Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**)
## Working Groups
diff --git a/sig-architecture/Kubernetes_PRR_Survey_2020Q1.pdf b/sig-architecture/Kubernetes_PRR_Survey_2020Q1.pdf
new file mode 100644
index 00000000..2fb9e4ea
--- /dev/null
+++ b/sig-architecture/Kubernetes_PRR_Survey_2020Q1.pdf
Binary files differ
diff --git a/sig-architecture/Kubernetes_PRR_Survey_2021Q2.pdf b/sig-architecture/Kubernetes_PRR_Survey_2021Q2.pdf
new file mode 100644
index 00000000..087bfd94
--- /dev/null
+++ b/sig-architecture/Kubernetes_PRR_Survey_2021Q2.pdf
Binary files differ
diff --git a/sig-architecture/Kubernetes_PRR_Survey_2022Q2.pdf b/sig-architecture/Kubernetes_PRR_Survey_2022Q2.pdf
new file mode 100644
index 00000000..b106c037
--- /dev/null
+++ b/sig-architecture/Kubernetes_PRR_Survey_2022Q2.pdf
Binary files differ
diff --git a/sig-architecture/README.md b/sig-architecture/README.md
index 597b424f..4d2a76fa 100644
--- a/sig-architecture/README.md
+++ b/sig-architecture/README.md
@@ -36,7 +36,7 @@ The [charter](charter.md) defines the scope and governance of the Architecture S
The Chairs of the SIG run operations and processes governing the SIG.
* Derek Carr (**[@derekwaynecarr](https://github.com/derekwaynecarr)**), Red Hat
-* Davanum Srinivas (**[@dims](https://github.com/dims)**), VMware
+* Davanum Srinivas (**[@dims](https://github.com/dims)**), Amazon Web Services
* John Belamaric (**[@johnbelamaric](https://github.com/johnbelamaric)**), Google
## Contact
@@ -51,7 +51,7 @@ The Chairs of the SIG run operations and processes governing the SIG.
- [@kubernetes/sig-architecture-pr-reviews](https://github.com/orgs/kubernetes/teams/sig-architecture-pr-reviews) - PR Reviews
- [@kubernetes/sig-architecture-proposals](https://github.com/orgs/kubernetes/teams/sig-architecture-proposals) - Design Proposals
- [@kubernetes/sig-architecture-test-failures](https://github.com/orgs/kubernetes/teams/sig-architecture-test-failures) - Test Failures and Triage
-- Steering Committee Liaison: Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**)
+- Steering Committee Liaison: Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**)
## Working Groups
@@ -119,13 +119,13 @@ Establishing and documenting design principles, documenting and evolving the sys
Establishing and documenting conventions for system and user-facing APIs, define and operate the APl review process, final API implementation consistency validation, co-own top-level API directories with API machinery; maintaining, evolving, and enforcing the deprecation policy
-* [Kubernetes Design and Architecture](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/architecture.md)
-* [Design principles](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/principles.md)
+* [Kubernetes Design and Architecture](https://git.k8s.io/design-proposals-archive/architecture/architecture.md)
+* [Design principles](https://git.k8s.io/design-proposals-archive/architecture/principles.md)
* [API conventions](/contributors/devel/sig-architecture/api-conventions.md)
* [API Review process](https://github.com/kubernetes/community/blob/master/sig-architecture/api-review-process.md)
* [Deprecation policy](https://kubernetes.io/docs/reference/deprecation-policy/)
-Please see the [API Reviews](https://github.com/orgs/kubernetes/projects/13) tracking board to follow the work of this sub-project. Please reach out to folks in the [OWNERS](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/OWNERS) file if you are interested in joining this effort.
+Please see the [API Reviews](https://github.com/orgs/kubernetes/projects/13) tracking board to follow the work of this sub-project. Please reach out to folks in the [OWNERS](https://git.k8s.io/design-proposals-archive/architecture/OWNERS) file if you are interested in joining this effort.
## Enhancement Proposals
diff --git a/sig-architecture/generics.md b/sig-architecture/generics.md
index 059a65f2..f468bab2 100644
--- a/sig-architecture/generics.md
+++ b/sig-architecture/generics.md
@@ -1,9 +1,9 @@
# Background
-In general, Kubernetes has not restricted using new Go features, we've quickly
+In general, Kubernetes has not restricted using new Go features. We've quickly
adopted new standard library types and methods and will continue to do so.
-Generally the latest stable go release is in use on the main development branch.
+Generally the latest stable Go release is in use on the main development branch.
This includes all of the staging libraries (client-go etc.) that originate in the
main [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) repository.
@@ -14,19 +14,21 @@ Now that v1.24.0 is out, use of generics should be allowed.
# Generics Policy
-Generics may be used in Kubernetes starting in v1.25, with the following restrictions
-applying only until v1.24 is [out of support][version-support]:
+Generics may be used in Kubernetes starting in v1.24, with the following restrictions
+applying only until v1.23 is [out of support][version-support]:
- Generics should **not** be used in Kubernetes libraries used across multiple Kubernetes
-versions, that is the non "staged" libraries like:
+ versions, that is the non "staged" libraries like:
- [k8s.io/utils](https://github.com/kubernetes/utils)
- [sigs.k8s.io/yaml](https://github.com/kubernetes-sigs/yaml)
- [k8s.io/klog](https://github.com/kubernetes/klog)
- etc.
-- Generics should be **avoided** when writing Kubernetes bug fixes that are likely to be backported, to streamline cherry-picking to older release branches.
+- Generics should be **avoided** when writing Kubernetes bug fixes that are
+ likely to be backported to v1.23 or older, to streamline cherry-picking to
+ those release branches which predate Go 1.18.
-These restrictions should be considered lifted when v1.24 is out of support.
+These restrictions should be considered lifted when v1.23 is out of support.
## Recommendations for Reviewers
diff --git a/sig-architecture/naming/recommendations/001-master-control-plane.md b/sig-architecture/naming/recommendations/001-master-control-plane.md
index 444d8aa2..e32785cf 100644
--- a/sig-architecture/naming/recommendations/001-master-control-plane.md
+++ b/sig-architecture/naming/recommendations/001-master-control-plane.md
@@ -119,7 +119,7 @@ Prior discussions:
- `--endpoint-reconciler-type master-count`
- ...probably more
-[architecture]: https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md#architecture
+[architecture]: https://git.k8s.io/design-proposals-archive/architecture/architecture.md#architecture
[wg-naming-thread]: https://groups.google.com/g/kubernetes-wg-naming/c/VqrBCdUHdPc
[sig-arch-thread]: https://groups.google.com/u/1/g/kubernetes-sig-architecture/c/ZKUOPy2PNJ4/m/q3dC6pNtBQAJ
[framework]: https://git.k8s.io/community/wg-naming/language-evaluation-framework.md
diff --git a/sig-architecture/production-readiness.md b/sig-architecture/production-readiness.md
index b3699d7d..19bcf9b6 100644
--- a/sig-architecture/production-readiness.md
+++ b/sig-architecture/production-readiness.md
@@ -20,6 +20,12 @@ As of 1.21, PRRs are now blocking. PRR _approval_ is required for the enhancemen
to be part of the release. This means that any KEPs targeting the release for any
stage will require production readiness approval by the *Enhancements Freeze Date*.
+Introduced in 1.23, *Product Readiness Freeze* happens a week before *Enhancements
+Freeze Date*. All KEPs must be opted in by this date to help PRR reviewers provision
+their workload. KEPs opted in after the *Product Readiness Freeze* are at risk of not
+being reviewed by the PRR team, depending on bandwidth. KEP owners can file an
+[Exception request](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) if the PRR has not been completed post Enhancements Freeze.
+
Note that some of the questions in the [KEP template] should be answered in both
the KEP's README.md and the `kep.yaml`, in order to support automated checks on
the PRR. The template points out these as needed.
diff --git a/sig-auth/README.md b/sig-auth/README.md
index f0d174e7..6946e1ab 100644
--- a/sig-auth/README.md
+++ b/sig-auth/README.md
@@ -144,6 +144,7 @@ API validation and policies enforced during admission, such as PodSecurityPolicy
- **Owners:**
- [kubernetes-sigs/pspmigrator](https://github.com/kubernetes-sigs/pspmigrator/blob/main/OWNERS)
- [kubernetes-sigs/wg-policy-prototypes](https://github.com/kubernetes-sigs/wg-policy-prototypes/blob/master/OWNERS)
+ - [kubernetes/kms](https://github.com/kubernetes/kms/blob/main/OWNERS)
- [kubernetes/kubernetes/pkg/apis/imagepolicy](https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/imagepolicy/OWNERS)
- [kubernetes/kubernetes/pkg/apis/policy](https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/policy/OWNERS)
- [kubernetes/kubernetes/pkg/registry/policy](https://github.com/kubernetes/kubernetes/blob/master/pkg/registry/policy/OWNERS)
@@ -167,6 +168,10 @@ Infrastructure implementing Kubernetes service account based workload identity.
- [kubernetes/kubernetes/pkg/kubelet/token](https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/token/OWNERS)
- [kubernetes/kubernetes/pkg/serviceaccount](https://github.com/kubernetes/kubernetes/blob/master/pkg/serviceaccount/OWNERS)
- [kubernetes/kubernetes/plugin/pkg/admission/serviceaccount](https://github.com/kubernetes/kubernetes/blob/master/plugin/pkg/admission/serviceaccount/OWNERS)
+### sig-auth-tools
+Tooling to automate the SIG Auth project boards
+- **Owners:**
+ - [kubernetes-sigs/sig-auth-tools](https://github.com/kubernetes-sigs/sig-auth-tools/blob/main/OWNERS)
[subproject-definition]: https://github.com/kubernetes/community/blob/master/governance.md#subprojects
[working-group-definition]: https://github.com/kubernetes/community/blob/master/governance.md#working-groups
diff --git a/sig-cli/CONTRIBUTING.md b/sig-cli/CONTRIBUTING.md
index e7c639bf..870e97fd 100644
--- a/sig-cli/CONTRIBUTING.md
+++ b/sig-cli/CONTRIBUTING.md
@@ -404,8 +404,8 @@ See the sig-cli [community page] for points of contact and meeting times:
[communication]: /sig-cli/README.md#contact
[community page]: /sig-cli
[design proposal]: #design-proposals
-[design repo]: /contributors/design-proposals/cli
-[design template]: /contributors/design-proposals/Design_Proposal_TEMPLATE.md
+[design repo]: https://git.k8s.io/design-proposals-archive/cli
+[design template]: https://git.k8s.io/design-proposals-archive/Design_Proposal_TEMPLATE.md
[development guide]: /contributors/devel/development.md
[existing issue]: #adopt-an-issue
[feature repo]: https://github.com/kubernetes/features
diff --git a/sig-cli/README.md b/sig-cli/README.md
index 57ba5b85..82ece69f 100644
--- a/sig-cli/README.md
+++ b/sig-cli/README.md
@@ -14,13 +14,13 @@ The [charter](charter.md) defines the scope and governance of the CLI Special In
## Meetings
*Joining the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-cli) for the group will typically add invites for the following meetings to your calendar.*
-* Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09) (monthly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29).
+* Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09) (every four weeks). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29).
* [Meeting notes and Agenda](https://docs.google.com/document/d/1r0YElcXt6G5mOWxwZiXgGu_X6he3F--wKwg-9UBc29I/edit?usp=sharing).
* [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP28HaTzSlFe6RJVxpFmbUvF).
* KRM Functions Subproject Meeting: [Wednesdays at 10:30 PT (Pacific Time)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=10:30&tz=PT%20%28Pacific%20Time%29).
* [Meeting notes and Agenda](https://docs.google.com/document/d/1x80l4i88F27zSCxSjlhvwFdH6jQAHou1k1ibuXrDTaw/edit).
* [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP28HaTzSlFe6RJVxpFmbUvF).
-* Kustomize Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09) (monthly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29).
+* Kustomize Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09) (every four weeks). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29).
* [Meeting notes and Agenda](https://docs.google.com/document/d/1r0YElcXt6G5mOWxwZiXgGu_X6he3F--wKwg-9UBc29I/edit?usp=sharing).
* [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP28HaTzSlFe6RJVxpFmbUvF).
* Regular SIG Meeting: [Wednesdays at 09:00 PT (Pacific Time)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29).
diff --git a/sig-cloud-provider/README.md b/sig-cloud-provider/README.md
index 1d1970e7..528c58e4 100644
--- a/sig-cloud-provider/README.md
+++ b/sig-cloud-provider/README.md
@@ -133,6 +133,12 @@ The following [subprojects][subproject-definition] are owned by sig-cloud-provid
- **Meetings:**
- Regular IBM Subproject Meeting: [Wednesdays at 14:00 ET (Eastern Time)](https://zoom.us/j/9392903494) (monthly - last Wednesday every month). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=14:00&tz=ET%20%28Eastern%20Time%29).
- [Meeting notes and Agenda](https://docs.google.com/document/d/1qd_LTu5GFaxUhSWTHigowHt3XwjJVf1L57kupj8lnwg/edit).
+### provider-oci
+- **Owners:**
+ - [oracle/cluster-api-provider-oci](https://github.com/oracle/cluster-api-provider-oci/blob/main/OWNERS)
+- **Meetings:**
+ - Regular Oracle Cloud Subproject Meeting: [Tuesdays at 06:00 PT (Pacific Time)](https://oracle.zoom.us/j/99910180651?pwd=MjhhVC9jZjU3eGIxdjNTYm1UU3V6dz09) (First Tuesday of each month). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=06:00&tz=PT%20%28Pacific%20Time%29).
+ - [Meeting notes and Agenda](https://docs.google.com/document/d/1mgZxjDbnSv74Vut1aHtWplG6vsR9zu5sqXvQN8SPgCc).
### provider-openstack
- **Owners:**
- [kubernetes/cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack/blob/master/OWNERS)
diff --git a/sig-cluster-lifecycle/README.md b/sig-cluster-lifecycle/README.md
index 751f1133..49390aea 100644
--- a/sig-cluster-lifecycle/README.md
+++ b/sig-cluster-lifecycle/README.md
@@ -45,7 +45,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/sig%2Fcluster-lifecycle)
- GitHub Teams:
- [@kubernetes/sig-cluster-lifecycle](https://github.com/orgs/kubernetes/teams/sig-cluster-lifecycle) - SIG Cluster Lifecycle mailing list
-- Steering Committee Liaison: Davanum Srinivas (**[@dims](https://github.com/dims)**)
+- Steering Committee Liaison: Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**)
## Working Groups
@@ -103,7 +103,7 @@ Cluster API infrastructure provider for Azure
- Slack: [#cluster-api-azure](https://kubernetes.slack.com/messages/cluster-api-azure)
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle)
- **Meetings:**
- - Cluster API Provider Azure office hours: [Thursdays at 08:00 PT (Pacific Time)](https://zoom.us/j/566930821?pwd=N2JuRWljc3hGS3ZnVlBLTk42TFlzQT09) (bi-weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=08:00&tz=PT%20%28Pacific%20Time%29).
+ - Cluster API Provider Azure office hours: [Thursdays at 09:00 PT (Pacific Time)](https://zoom.us/j/566930821?pwd=N2JuRWljc3hGS3ZnVlBLTk42TFlzQT09) (weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29).
- [Meeting notes and Agenda](http://bit.ly/k8s-capz-agenda).
- [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP29D0nYgAGWt1ZFqS9Z7lw4).
### cluster-api-provider-cloudstack
@@ -252,6 +252,7 @@ A project that uses Ansible / Vagrant for deploying production ready clusters on
### minikube
Implements a local Kubernetes cluster for application development on macOS, Linux, and Windows
- **Owners:**
+ - [kubernetes-sigs/minikube-gui](https://github.com/kubernetes-sigs/minikube-gui/blob/main/OWNERS)
- [kubernetes/minikube](https://github.com/kubernetes/minikube/blob/master/OWNERS)
- **Contact:**
- Slack: [#minikube](https://kubernetes.slack.com/messages/minikube)
diff --git a/sig-contributor-experience/README.md b/sig-contributor-experience/README.md
index d11e0dcc..4954f44b 100644
--- a/sig-contributor-experience/README.md
+++ b/sig-contributor-experience/README.md
@@ -23,7 +23,6 @@ The [charter](charter.md) defines the scope and governance of the Contributor Ex
### Chairs
The Chairs of the SIG run operations and processes governing the SIG.
-* Alison Dowdney (**[@alisondy](https://github.com/alisondy)**), Kasten
* Josh Berkus (**[@jberkus](https://github.com/jberkus)**), Red Hat
* Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**), Google
@@ -37,6 +36,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
## Emeritus Leads
* Elsie Phillips (**[@Phillels](https://github.com/Phillels)**)
+* Alison Dowdney (**[@alisondy](https://github.com/alisondy)**)
* Jorge Castro (**[@castrojo](https://github.com/castrojo)**)
* Garrett Rodrigues (**[@grodrigues3](https://github.com/grodrigues3)**)
* Paris Pittman (**[@parispittman](https://github.com/parispittman)**)
@@ -68,7 +68,7 @@ Contributor Communications focuses on amplifying the success of Kubernetes contr
- **Owners:**
- [kubernetes-sigs/contributor-tweets](https://github.com/kubernetes-sigs/contributor-tweets/blob/master/OWNERS)
- [kubernetes-sigs/lwkd](https://github.com/kubernetes-sigs/lwkd/blob/main/OWNERS)
- - [kubernetes/community/communication/marketing-team](https://github.com/kubernetes/community/blob/master/communication/marketing-team/OWNERS)
+ - [kubernetes/community/communication/contributor-comms](https://github.com/kubernetes/community/blob/master/communication/contributor-comms/OWNERS)
- **Meetings:**
- Contributor Comms - Upstream Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time)](https://zoom.us/j/596959769?pwd=TURBNlZPb3BEWVFmbWlCYXlMVVJiUT09) (weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=8:00&tz=PT%20%28Pacific%20Time%29).
- [Meeting notes and Agenda](https://docs.google.com/document/d/1KDoqbw2A6W7rLSbIRuOlqH8gkoOnp2IHHuV9KyJDD2c/edit).
diff --git a/sig-docs/CONTRIBUTING.md b/sig-docs/CONTRIBUTING.md
index e4f8b6bc..03ad059d 100644
--- a/sig-docs/CONTRIBUTING.md
+++ b/sig-docs/CONTRIBUTING.md
@@ -18,7 +18,7 @@ Before opening a pull request, contributors must sign the [CNCF Contributor Lice
Contributors should be familiar with the following:
- [kubernetes/website repo](https://github.com/kubernetes/website)
-- [Reference docs repo](https://github.com/kubernetes-sigs/reference-docs))
+- [Reference docs repo](https://github.com/kubernetes-sigs/reference-docs)
- [Hugo static site generator](https://gohugo.io/)
- [Documentation content guide](https://kubernetes.io/docs/contribute/style/content-guide/)
- [What's allowed](https://kubernetes.io/docs/contribute/style/content-guide/#what-s-allowed)
@@ -40,4 +40,4 @@ Anyone can review pull requests and the review process is outlined in the
## Questions about contributing
Feel free to ask any questions in the [#sig-docs](https://kubernetes.slack.com/messages/sig-docs)
Slack channel or in a
-[SIG Docs meeting](https://github.com/kubernetes/community/tree/master/sig-docs#meetings). \ No newline at end of file
+[SIG Docs meeting](https://github.com/kubernetes/community/tree/master/sig-docs#meetings).
diff --git a/sig-docs/README.md b/sig-docs/README.md
index 28b4fba3..1dc87aac 100644
--- a/sig-docs/README.md
+++ b/sig-docs/README.md
@@ -20,9 +20,12 @@ The [charter](charter.md) defines the scope and governance of the Docs Special I
* Korean Team Meeting: [Thursdays at 13:00 UTC](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=13:00&tz=UTC).
* [Meeting notes and Agenda](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit).
* [Meeting recordings](https://www.youtube.com/playlist?list=PLAOP7m08QDCWZ7RwGca6cU4vzrOMw3ht7).
-* Localization Subgroup Meeting: [Mondays at 15:00 UTC](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/) (monthly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=15:00&tz=UTC).
+* Localization Subproject Meeting: [Mondays at 15:00 UTC](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/) (first Monday of the month). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=15:00&tz=UTC).
* [Meeting notes and Agenda](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/).
* [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP3b5hlx0YV7Lo7DtckM84y8).
+* New Contributor Meet and Greet: [Tuesdays at 10:30 UTC](https://zoom.us/j/92822621820?pwd=S1p4RnB1RmNSZ3JjYlRRUVd4UjFPZz09) (first Tuesday of the month). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=10:30&tz=UTC).
+ * [Meeting notes and Agenda](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/).
+ * [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP3b5hlx0YV7Lo7DtckM84y8).
* Regular SIG Meeting: [Tuesdays at 17:30 UTC](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/edit) (weekly - except fourth Tuesday every month). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=17:30&tz=UTC).
* [Meeting notes and Agenda](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/edit).
* [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP3b5hlx0YV7Lo7DtckM84y8).
@@ -79,7 +82,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
- [@kubernetes/sig-docs-pt-owners](https://github.com/orgs/kubernetes/teams/sig-docs-pt-owners) - Portuguese language content
- [@kubernetes/sig-docs-uk-owners](https://github.com/orgs/kubernetes/teams/sig-docs-uk-owners) - Ukrainian language content
- [@kubernetes/sig-docs-zh-owners](https://github.com/orgs/kubernetes/teams/sig-docs-zh-owners) - Chinese language content
-- Steering Committee Liaison: Paris Pittman (**[@parispittman](https://github.com/parispittman)**)
+- Steering Committee Liaison: Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**)
## Subprojects
@@ -87,6 +90,9 @@ The following [subprojects][subproject-definition] are owned by sig-docs:
### kubernetes-blog
- **Owners:**
- [kubernetes/website/content/en/blog](https://github.com/kubernetes/website/blob/master/content/en/blog/OWNERS)
+### localization
+- **Owners:**
+ - [kubernetes/website](https://github.com/kubernetes/website/blob/master/OWNERS)
### reference-docs
- **Owners:**
- [kubernetes-sigs/reference-docs](https://github.com/kubernetes-sigs/reference-docs/blob/master/OWNERS)
@@ -97,11 +103,5 @@ The following [subprojects][subproject-definition] are owned by sig-docs:
[subproject-definition]: https://github.com/kubernetes/community/blob/master/governance.md#subprojects
[working-group-definition]: https://github.com/kubernetes/community/blob/master/governance.md#working-groups
<!-- BEGIN CUSTOM CONTENT -->
-## Goals
-* Discuss documentation and docs issues for kubernetes.io
-* Content for the official Kubernetes blog
-* Lead docs releases for Kubernetes
-* Suggest improvements to user onboarding through better documentation on kubernetes.io
-* Documentation metrics and user feedback
-* Help community contributors get involved in Kubernetes documentation
+
<!-- END CUSTOM CONTENT -->
diff --git a/sig-instrumentation/README.md b/sig-instrumentation/README.md
index 30ae9385..900e683c 100644
--- a/sig-instrumentation/README.md
+++ b/sig-instrumentation/README.md
@@ -24,7 +24,7 @@ The [charter](charter.md) defines the scope and governance of the Instrumentatio
### Chairs
The Chairs of the SIG run operations and processes governing the SIG.
-* Elana Hashman (**[@ehashman](https://github.com/ehashman)**), Red Hat
+* Elana Hashman (**[@ehashman](https://github.com/ehashman)**), Apple
* Han Kang (**[@logicalhan](https://github.com/logicalhan)**), Google
### Technical Leads
diff --git a/sig-k8s-infra/README.md b/sig-k8s-infra/README.md
index 36255842..9d480fb4 100644
--- a/sig-k8s-infra/README.md
+++ b/sig-k8s-infra/README.md
@@ -24,8 +24,8 @@ The [charter](charter.md) defines the scope and governance of the K8s Infra Spec
### Chairs
The Chairs of the SIG run operations and processes governing the SIG.
-* Arnaud Meukam (**[@ameukam](https://github.com/ameukam)**), Alter Way
-* Davanum Srinivas (**[@dims](https://github.com/dims)**), VMware
+* Arnaud Meukam (**[@ameukam](https://github.com/ameukam)**), VMware
+* Davanum Srinivas (**[@dims](https://github.com/dims)**), Amazon Web Services
### Technical Leads
The Technical Leads of the SIG establish new subprojects, decommission existing
@@ -83,10 +83,21 @@ Code and configuration to manage Kubernetes project infrastructure, including va
- Regular SIG Meeting: [Wednesdays at 20:00 UTC](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09) (bi-weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=20:00&tz=UTC).
- [Meeting notes and Agenda](http://bit.ly/sig-k8s-infra-notes).
- [Meeting recordings](http://bit.ly/sig-k8s-infra-playlist).
-### oci-proxy
-Experimental project for OCI distribution
+### porche
+A custom HTTP redirector serving Kubernetes binaries from existing vendor supported and approved storage services.
- **Owners:**
- - [kubernetes-sigs/oci-proxy](https://github.com/kubernetes-sigs/oci-proxy/blob/main/OWNERS)
+ - [kubernetes-sigs/porche](https://github.com/kubernetes-sigs/porche/blob/main/OWNERS)
+- **Contact:**
+ - Slack: [#sig-k8s-infra](https://kubernetes.slack.com/messages/sig-k8s-infra)
+ - [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-k8s-infra)
+- **Meetings:**
+ - Regular SIG Meeting: [Wednesdays at 20:00 UTC](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09) (bi-weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=20:00&tz=UTC).
+ - [Meeting notes and Agenda](http://bit.ly/sig-k8s-infra-notes).
+ - [Meeting recordings](http://bit.ly/sig-k8s-infra-playlist).
+### registry.k8s.io
+A custom HTTP redirector serving Kubernetes container image blobs from existing vendor supported container registries.
+- **Owners:**
+ - [kubernetes/registry.k8s.io](https://github.com/kubernetes/registry.k8s.io/blob/main/OWNERS)
- **Contact:**
- Slack: [#sig-k8s-infra](https://kubernetes.slack.com/messages/sig-k8s-infra)
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-k8s-infra)
diff --git a/sig-list.md b/sig-list.md
index a9949e77..85637206 100644
--- a/sig-list.md
+++ b/sig-list.md
@@ -34,25 +34,25 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md)
|------|-------|--------|---------|----------|
|[API Machinery](sig-api-machinery/README.md)|[api-machinery](https://github.com/kubernetes/kubernetes/labels/sig%2Fapi-machinery)|* [David Eads](https://github.com/deads2k), Red Hat<br>* [Federico Bongiovanni](https://github.com/fedebongio), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-api-machinery)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-api-machinery)|* Kubebuilder and Controller Runtime Meeting: [Thursdays at 09:00 PT (Pacific Time) (biweekly)]()<br>* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/my/apimachinery)<br>
|[Apps](sig-apps/README.md)|[apps](https://github.com/kubernetes/kubernetes/labels/sig%2Fapps)|* [Janet Kuo](https://github.com/janetkuo), Google<br>* [Kenneth Owens](https://github.com/kow3ns), Brex<br>* [Maciej Szulik](https://github.com/soltysh), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-apps)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-apps)|* Regular SIG Meeting: [Mondays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/739385290?pwd=ekVmNGRjT214MGJkY1JUUUpPMVlJUT09)<br>
-|[Architecture](sig-architecture/README.md)|[architecture](https://github.com/kubernetes/kubernetes/labels/sig%2Farchitecture)|* [Derek Carr](https://github.com/derekwaynecarr), Red Hat<br>* [Davanum Srinivas](https://github.com/dims), VMware<br>* [John Belamaric](https://github.com/johnbelamaric), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-architecture)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)|* Enhancements Subproject Meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/95357819945)<br>* Production Readiness Office Hours: [Wednesdays at 12:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/482444151)<br>* Regular SIG Meeting: [Thursdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/845605479)<br>* code organization Office Hours: [Thursdays at 14:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/159990793)<br>* conformance office Hours: [Wednesdays at 18:00 UTC (First Wednesday of the month)](https://zoom.us/j/427337923)<br>
+|[Architecture](sig-architecture/README.md)|[architecture](https://github.com/kubernetes/kubernetes/labels/sig%2Farchitecture)|* [Derek Carr](https://github.com/derekwaynecarr), Red Hat<br>* [Davanum Srinivas](https://github.com/dims), Amazon Web Services<br>* [John Belamaric](https://github.com/johnbelamaric), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-architecture)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)|* Enhancements Subproject Meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/95357819945)<br>* Production Readiness Office Hours: [Wednesdays at 12:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/482444151)<br>* Regular SIG Meeting: [Thursdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/845605479)<br>* code organization Office Hours: [Thursdays at 14:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/159990793)<br>* conformance office Hours: [Wednesdays at 18:00 UTC (First Wednesday of the month)](https://zoom.us/j/427337923)<br>
|[Auth](sig-auth/README.md)|[auth](https://github.com/kubernetes/kubernetes/labels/sig%2Fauth)|* [Mo Khan](https://github.com/enj), Microsoft<br>* [Mike Danese](https://github.com/mikedanese), Google<br>* [Rita Zhang](https://github.com/ritazh), Microsoft<br>|* [Slack](https://kubernetes.slack.com/messages/sig-auth)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-auth)|* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/264572674)<br>* Secrets Store CSI Meeting: [Thursdays at 8:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/91272289538)<br>* Weekly Issues/PR Triage Meeting: [Mondays at 9:00 PT (Pacific Time) (weekly)](https://zoom.us/j/264572674)<br>
|[Autoscaling](sig-autoscaling/README.md)|[autoscaling](https://github.com/kubernetes/kubernetes/labels/sig%2Fautoscaling)|* [Guy Templeton](https://github.com/gjtempleton), Skyscanner<br>* [Marcin Wielgus](https://github.com/mwielgus), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-autoscaling)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-autoscaling)|* Regular SIG Meeting: [Mondays at 16:00 Poland (weekly)](https://zoom.us/j/944410904)<br>
-|[CLI](sig-cli/README.md)|[cli](https://github.com/kubernetes/kubernetes/labels/sig%2Fcli)|* [Katrina Verey](https://github.com/KnVerey), Shopify<br>* [Eddie Zaneski](https://github.com/eddiezane), Chainguard, Inc<br>* [Sean Sullivan](https://github.com/seans3), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cli)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cli)|* Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (monthly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>* KRM Functions Subproject Meeting: [Wednesdays at 10:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>* Kustomize Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (monthly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>* Regular SIG Meeting: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>
-|[Cloud Provider](sig-cloud-provider/README.md)|[cloud-provider](https://github.com/kubernetes/kubernetes/labels/sig%2Fcloud-provider)|* [Andrew Sy Kim](https://github.com/andrewsykim), Google<br>* [Nick Turner](https://github.com/nckturner), Amazon<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cloud-provider)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cloud-provider)|* Regular SIG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/508079177?pwd=ZmEvMksxdTFTc0N1eXFLRm91QUlyUT09)<br>* (cloud-provider-extraction-migration) Weekly Sync removing the in-tree cloud providers led by @cheftako and @mcrute: [Thursdays at 13:30 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1KLsGGzNXQbsPeELCeF_q-f0h0CEGSe20xiwvcR2NlYM/edit)<br>* (provider-alibaba-cloud) Regular Alibaba Cloud Subproject Meeting: [Tuesdays at 12:00 UTC (monthly 2020 start date: Jan. 7th)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)<br>* (provider-aws) Regular AWS Subproject Meeting: [Fridays at 9:00 PT (Pacific Time) (biweekly 2019 start date: Jan. 11th)](https://zoom.us/my/k8ssigaws)<br>* (provider-azure) Azure Subproject Meeting: [Mondays at 18:00 PT (Pacific Time) (monthly - third Monday)](https://zoom.us/j/586836662)<br>* (provider-gcp) Regular GCP Subproject Meeting: [Thursdays at 16:00 UTC (biweekly)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)<br>* (provider-ibmcloud) Regular IBM Subproject Meeting: [Wednesdays at 14:00 ET (Eastern Time) (monthly - last Wednesday every month)](https://zoom.us/j/9392903494)<br>* (provider-openstack) Regular OpenStack Subproject Meeting: [Wednesdays at 08:00 PT (Pacific Time) (biweekly starting Wednesday March 20, 2019)](https://docs.google.com/document/d/1bW3j4hFN4D8rv2LFv-DybB3gcE5ISAaOO_OpvDCgrGg/edit)<br>* (provider-vsphere) Cloud Provider vSphere monthly syncup: [Wednesdays at 09:00 PT (Pacific Time) (monthly - first Wednesday every month)](https://zoom.us/j/584244729)<br>
-|[Cluster Lifecycle](sig-cluster-lifecycle/README.md)|[cluster-lifecycle](https://github.com/kubernetes/kubernetes/labels/sig%2Fcluster-lifecycle)|* [Justin Santa Barbara](https://github.com/justinsb), Google<br>* [Lubomir Ivanov](https://github.com/neolit123), VMware<br>* [Vince Prignano](https://github.com/vincepri), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cluster-lifecycle)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle)|* Regular SIG Meeting: [Tuesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/916523531?pwd=eVhPNU5IQWtBYWhmT1N4T0V6bHZFZz09)<br>* (cluster-addons) Cluster Addons meeting: [Tuesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/130096731?pwd=U3pzWloxZ0lpbEtadTZGSERRdENrZz09)<br>* (cluster-api) Cluster API office hours: [Wednesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/861487554?pwd=dTVGVVFCblFJc0VBbkFqQlU0dHpiUT09)<br>* (cluster-api-provider-aws) Cluster API Provider AWS office hours: [Mondays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/423312508?pwd=Tk9OWnZ4WHg2T2xRek9xZXA1eFQ4dz09)<br>* (cluster-api-provider-azure) Cluster API Provider Azure office hours: [Thursdays at 08:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/566930821?pwd=N2JuRWljc3hGS3ZnVlBLTk42TFlzQT09)<br>* (cluster-api-provider-digitalocean) Cluster API Provider DigitalOcean office hours: [Thursdays at 09:00 PT (Pacific Time) (monthly, second Thursday of the month)](https://zoom.us/j/91312171751?pwd=bndnMDdJMkhySDVncjZoR1VhdFBTZz09)<br>* (cluster-api-provider-ibmcloud) Cluster API Provider IBM Cloud office hours: [Fridays at 09:00 IST (weekly)](https://zoom.us/j/9392903494)<br>* (cluster-api-provider-kubevirt) Cluster API Provider KubeVirt Syncup Meetings: [Tuesdays at 8:00 PT (Pacific Time) (weekly starting Tuesday December 7th, 2021)](https://zoom.us/j/94685513559?pwd=cnI3RUQyZ3RrckpOc1BQNDA1Q1BrZz09)<br>* (cluster-api-provider-nested) Cluster API Provider Nested Office Hours: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/91929881559?pwd=WllxazhTUzBFN1BNWTRadTA3NGtQQT09)<br>* (cluster-api-provider-vsphere) Cluster API vSphere meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly starting Thursday June 25th, 2020)](https://zoom.us/j/92253194848?pwd=cVVVNDMxeTl1QVJPUlpvLzNSVU1JZz09)<br>* (etcdadm) etcdadm Office Hours: [Mondays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/612375927?pwd=MldxRnRSOExCVW1rbjM4ZzBSc3MvUT09)<br>* (image-builder) Image Builder office hours: [Thursdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/807524571?pwd=WEFTeDJzeWU3bVFkcWQ0UEdZRkRCdz09)<br>* (kOps) kOps Office Hours: [Fridays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97072789944?pwd=VVlUR3dhN2h5TEFQZHZTVVd4SnJUdz09)<br>* (kubeadm) kubeadm Office Hours: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/179916854?pwd=dzRhbjFnRGVQRDVUVHY1a29JV2JxUT09)<br>* (minikube) minikube office hours: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97017029363?pwd=U3MvZ3pMMHM5eWorSjgzUnd5OEFtUT09)<br>
-|[Contributor Experience](sig-contributor-experience/README.md)|[contributor-experience](https://github.com/kubernetes/kubernetes/labels/sig%2Fcontributor-experience)|* [Alison Dowdney](https://github.com/alisondy), Kasten<br>* [Josh Berkus](https://github.com/jberkus), Red Hat<br>* [Bob Killen](https://github.com/mrbobbytables), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-contribex)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-contribex)|* Regular SIG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (weekly alternating slack/zoom)](https://zoom.us/j/397264241?pwd=bHNnZVArNFdPaWVJMmttdko0Sktudz09)<br>* (contributor-comms) Contributor Comms - Upstream Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time) (weekly)](https://zoom.us/j/596959769?pwd=TURBNlZPb3BEWVFmbWlCYXlMVVJiUT09)<br>* (events) Office Hours European Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 09:00 ET (Eastern Time) (monthly on 3rd Wednesday)](https://hackmd.io/@k8s/office-hours)<br>* (events) Office Hours Western Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 12:00 ET (Eastern Time) (monthly on 3rd Wednesday)]()<br>* (github-management) GitHub Administration Subproject: [Thursdays at 09:00 PT (Pacific Time) (Monthly on 4th Thursday)](https://zoom.us/j/442435463?pwd=Rk1PWWpSSTJDaWJKdzRYb2EyTlkvZz09)<br>
-|[Docs](sig-docs/README.md)|[docs](https://github.com/kubernetes/kubernetes/labels/sig%2Fdocs)|* [Divya Mohan](https://github.com/divya-mohan0209), SUSE<br>* [Jim Angel](https://github.com/jimangel), Google<br>* [Natali Vlatko](https://github.com/natalisucks), Wayfair<br>* [Rey Lejano](https://github.com/reylejano), SUSE<br>|* [Slack](https://kubernetes.slack.com/messages/sig-docs)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)|* APAC SIG Meeting: [Wednesdays at 05:30 UTC (monthly - Wednesday, after the fourth Tuesday, every month)](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/edit)<br>* Korean Team Meeting: [Thursdays at 13:00 UTC (biweekly)](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit)<br>* Localization Subgroup Meeting: [Mondays at 15:00 UTC (monthly)](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/)<br>* Regular SIG Meeting: [Tuesdays at 17:30 UTC (weekly - except fourth Tuesday every month)](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/edit)<br>* Spanish Team Meeting: [Tuesdays at 15:30 UTC (weekly)](https://zoom.us/j/95918289494?pwd=Wk9Oa0xZUkFXSDV5OTFoZEZsTURCZz09)<br>
-|[Instrumentation](sig-instrumentation/README.md)|[instrumentation](https://github.com/kubernetes/kubernetes/labels/sig%2Finstrumentation)|* [Elana Hashman](https://github.com/ehashman), Red Hat<br>* [Han Kang](https://github.com/logicalhan), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-instrumentation)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-instrumentation)|* Regular SIG Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)<br>* Regular Triage Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly - alternating with regular meeting)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)<br>
-|[K8s Infra](sig-k8s-infra/README.md)|[k8s-infra](https://github.com/kubernetes/kubernetes/labels/sig%2Fk8s-infra)|* [Arnaud Meukam](https://github.com/ameukam), Alter Way<br>* [Davanum Srinivas](https://github.com/dims), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-k8s-infra)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-k8s-infra)|* Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (k8s-infra-dns) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (k8s-infra-groups) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (k8s.io) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (oci-proxy) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>
+|[CLI](sig-cli/README.md)|[cli](https://github.com/kubernetes/kubernetes/labels/sig%2Fcli)|* [Katrina Verey](https://github.com/KnVerey), Shopify<br>* [Eddie Zaneski](https://github.com/eddiezane), Chainguard, Inc<br>* [Sean Sullivan](https://github.com/seans3), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cli)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cli)|* Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (every four weeks)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>* KRM Functions Subproject Meeting: [Wednesdays at 10:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>* Kustomize Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (every four weeks)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>* Regular SIG Meeting: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>
+|[Cloud Provider](sig-cloud-provider/README.md)|[cloud-provider](https://github.com/kubernetes/kubernetes/labels/sig%2Fcloud-provider)|* [Andrew Sy Kim](https://github.com/andrewsykim), Google<br>* [Nick Turner](https://github.com/nckturner), Amazon<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cloud-provider)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cloud-provider)|* Regular SIG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/508079177?pwd=ZmEvMksxdTFTc0N1eXFLRm91QUlyUT09)<br>* (cloud-provider-extraction-migration) Weekly Sync removing the in-tree cloud providers led by @cheftako and @mcrute: [Thursdays at 13:30 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1KLsGGzNXQbsPeELCeF_q-f0h0CEGSe20xiwvcR2NlYM/edit)<br>* (provider-alibaba-cloud) Regular Alibaba Cloud Subproject Meeting: [Tuesdays at 12:00 UTC (monthly 2020 start date: Jan. 7th)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)<br>* (provider-aws) Regular AWS Subproject Meeting: [Fridays at 9:00 PT (Pacific Time) (biweekly 2019 start date: Jan. 11th)](https://zoom.us/my/k8ssigaws)<br>* (provider-azure) Azure Subproject Meeting: [Mondays at 18:00 PT (Pacific Time) (monthly - third Monday)](https://zoom.us/j/586836662)<br>* (provider-gcp) Regular GCP Subproject Meeting: [Thursdays at 16:00 UTC (biweekly)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)<br>* (provider-ibmcloud) Regular IBM Subproject Meeting: [Wednesdays at 14:00 ET (Eastern Time) (monthly - last Wednesday every month)](https://zoom.us/j/9392903494)<br>* (provider-oci) Regular Oracle Cloud Subproject Meeting: [Tuesdays at 06:00 PT (Pacific Time) (First Tuesday of each month)](https://oracle.zoom.us/j/99910180651?pwd=MjhhVC9jZjU3eGIxdjNTYm1UU3V6dz09)<br>* (provider-openstack) Regular OpenStack Subproject Meeting: [Wednesdays at 08:00 PT (Pacific Time) (biweekly starting Wednesday March 20, 2019)](https://docs.google.com/document/d/1bW3j4hFN4D8rv2LFv-DybB3gcE5ISAaOO_OpvDCgrGg/edit)<br>* (provider-vsphere) Cloud Provider vSphere monthly syncup: [Wednesdays at 09:00 PT (Pacific Time) (monthly - first Wednesday every month)](https://zoom.us/j/584244729)<br>
+|[Cluster Lifecycle](sig-cluster-lifecycle/README.md)|[cluster-lifecycle](https://github.com/kubernetes/kubernetes/labels/sig%2Fcluster-lifecycle)|* [Justin Santa Barbara](https://github.com/justinsb), Google<br>* [Lubomir Ivanov](https://github.com/neolit123), VMware<br>* [Vince Prignano](https://github.com/vincepri), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cluster-lifecycle)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle)|* Regular SIG Meeting: [Tuesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/916523531?pwd=eVhPNU5IQWtBYWhmT1N4T0V6bHZFZz09)<br>* (cluster-addons) Cluster Addons meeting: [Tuesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/130096731?pwd=U3pzWloxZ0lpbEtadTZGSERRdENrZz09)<br>* (cluster-api) Cluster API office hours: [Wednesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/861487554?pwd=dTVGVVFCblFJc0VBbkFqQlU0dHpiUT09)<br>* (cluster-api-provider-aws) Cluster API Provider AWS office hours: [Mondays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/423312508?pwd=Tk9OWnZ4WHg2T2xRek9xZXA1eFQ4dz09)<br>* (cluster-api-provider-azure) Cluster API Provider Azure office hours: [Thursdays at 09:00 PT (Pacific Time) (weekly)](https://zoom.us/j/566930821?pwd=N2JuRWljc3hGS3ZnVlBLTk42TFlzQT09)<br>* (cluster-api-provider-digitalocean) Cluster API Provider DigitalOcean office hours: [Thursdays at 09:00 PT (Pacific Time) (monthly, second Thursday of the month)](https://zoom.us/j/91312171751?pwd=bndnMDdJMkhySDVncjZoR1VhdFBTZz09)<br>* (cluster-api-provider-ibmcloud) Cluster API Provider IBM Cloud office hours: [Fridays at 09:00 IST (weekly)](https://zoom.us/j/9392903494)<br>* (cluster-api-provider-kubevirt) Cluster API Provider KubeVirt Syncup Meetings: [Tuesdays at 8:00 PT (Pacific Time) (weekly starting Tuesday December 7th, 2021)](https://zoom.us/j/94685513559?pwd=cnI3RUQyZ3RrckpOc1BQNDA1Q1BrZz09)<br>* (cluster-api-provider-nested) Cluster API Provider Nested Office Hours: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/91929881559?pwd=WllxazhTUzBFN1BNWTRadTA3NGtQQT09)<br>* (cluster-api-provider-vsphere) Cluster API vSphere meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly starting Thursday June 25th, 2020)](https://zoom.us/j/92253194848?pwd=cVVVNDMxeTl1QVJPUlpvLzNSVU1JZz09)<br>* (etcdadm) etcdadm Office Hours: [Mondays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/612375927?pwd=MldxRnRSOExCVW1rbjM4ZzBSc3MvUT09)<br>* (image-builder) Image Builder office hours: [Thursdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/807524571?pwd=WEFTeDJzeWU3bVFkcWQ0UEdZRkRCdz09)<br>* (kOps) kOps Office Hours: [Fridays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97072789944?pwd=VVlUR3dhN2h5TEFQZHZTVVd4SnJUdz09)<br>* (kubeadm) kubeadm Office Hours: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/179916854?pwd=dzRhbjFnRGVQRDVUVHY1a29JV2JxUT09)<br>* (minikube) minikube office hours: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97017029363?pwd=U3MvZ3pMMHM5eWorSjgzUnd5OEFtUT09)<br>
+|[Contributor Experience](sig-contributor-experience/README.md)|[contributor-experience](https://github.com/kubernetes/kubernetes/labels/sig%2Fcontributor-experience)|* [Josh Berkus](https://github.com/jberkus), Red Hat<br>* [Bob Killen](https://github.com/mrbobbytables), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-contribex)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-contribex)|* Regular SIG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (weekly alternating slack/zoom)](https://zoom.us/j/397264241?pwd=bHNnZVArNFdPaWVJMmttdko0Sktudz09)<br>* (contributor-comms) Contributor Comms - Upstream Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time) (weekly)](https://zoom.us/j/596959769?pwd=TURBNlZPb3BEWVFmbWlCYXlMVVJiUT09)<br>* (events) Office Hours European Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 09:00 ET (Eastern Time) (monthly on 3rd Wednesday)](https://hackmd.io/@k8s/office-hours)<br>* (events) Office Hours Western Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 12:00 ET (Eastern Time) (monthly on 3rd Wednesday)]()<br>* (github-management) GitHub Administration Subproject: [Thursdays at 09:00 PT (Pacific Time) (Monthly on 4th Thursday)](https://zoom.us/j/442435463?pwd=Rk1PWWpSSTJDaWJKdzRYb2EyTlkvZz09)<br>
+|[Docs](sig-docs/README.md)|[docs](https://github.com/kubernetes/kubernetes/labels/sig%2Fdocs)|* [Divya Mohan](https://github.com/divya-mohan0209), SUSE<br>* [Jim Angel](https://github.com/jimangel), Google<br>* [Natali Vlatko](https://github.com/natalisucks), Wayfair<br>* [Rey Lejano](https://github.com/reylejano), SUSE<br>|* [Slack](https://kubernetes.slack.com/messages/sig-docs)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)|* APAC SIG Meeting: [Wednesdays at 05:30 UTC (monthly - Wednesday, after the fourth Tuesday, every month)](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/edit)<br>* Korean Team Meeting: [Thursdays at 13:00 UTC (biweekly)](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit)<br>* Localization Subproject Meeting: [Mondays at 15:00 UTC (first Monday of the month)](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/)<br>* New Contributor Meet and Greet: [Tuesdays at 10:30 UTC (first Tuesday of the month)](https://zoom.us/j/92822621820?pwd=S1p4RnB1RmNSZ3JjYlRRUVd4UjFPZz09)<br>* Regular SIG Meeting: [Tuesdays at 17:30 UTC (weekly - except fourth Tuesday every month)](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/edit)<br>* Spanish Team Meeting: [Tuesdays at 15:30 UTC (weekly)](https://zoom.us/j/95918289494?pwd=Wk9Oa0xZUkFXSDV5OTFoZEZsTURCZz09)<br>
+|[Instrumentation](sig-instrumentation/README.md)|[instrumentation](https://github.com/kubernetes/kubernetes/labels/sig%2Finstrumentation)|* [Elana Hashman](https://github.com/ehashman), Apple<br>* [Han Kang](https://github.com/logicalhan), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-instrumentation)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-instrumentation)|* Regular SIG Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)<br>* Regular Triage Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly - alternating with regular meeting)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)<br>
+|[K8s Infra](sig-k8s-infra/README.md)|[k8s-infra](https://github.com/kubernetes/kubernetes/labels/sig%2Fk8s-infra)|* [Arnaud Meukam](https://github.com/ameukam), VMware<br>* [Davanum Srinivas](https://github.com/dims), Amazon Web Services<br>|* [Slack](https://kubernetes.slack.com/messages/sig-k8s-infra)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-k8s-infra)|* Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (k8s-infra-dns) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (k8s-infra-groups) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (k8s.io) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (porche) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>* (registry.k8s.io) Regular SIG Meeting: [Wednesdays at 20:00 UTC (bi-weekly)](https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09)<br>
|[Multicluster](sig-multicluster/README.md)|[multicluster](https://github.com/kubernetes/kubernetes/labels/sig%2Fmulticluster)|* [Jeremy Olmsted-Thompson](https://github.com/jeremyot), Google<br>* [Paul Morie](https://github.com/pmorie), Apple<br>|* [Slack](https://kubernetes.slack.com/messages/sig-multicluster)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-multicluster)|* Regular SIG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (bi-weekly)](https://zoom.us/my/k8s.mc)<br>
|[Network](sig-network/README.md)|[network](https://github.com/kubernetes/kubernetes/labels/sig%2Fnetwork)|* [Casey Davenport](https://github.com/caseydavenport), Tigera<br>* [Dan Williams](https://github.com/dcbw), Red Hat<br>* [Tim Hockin](https://github.com/thockin), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-network)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-network)|* Gateway API GAMMA Meeting (APAC Friendly): [Tuesdays at 15:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/96951309977)<br>* Gateway API GAMMA Meeting (EMEA Friendly): [Tuesdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/96951309977)<br>* Gateway API Meeting: [Mondays at 15:00 PT (Pacific Time) (weekly)](https://zoom.us/j/441530404)<br>* Network Policy API Meeting: [Mondays at 13:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/96264742248)<br>* SIG Network Ingress NGINX Meeting: [Thursdays at 8:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/98377891310)<br>* SIG Network KPNG APAC Meeting: [Wednesdays at 16:00 IST (Indian Standard Time) (weekly)](https://docs.google.com/document/d/1yW3AUp5rYDLYCAtZc6e4zeLbP5HPLXdvuEFeVESOTic/edit)<br>* SIG Network KPNG Meeting: [Fridays at 7:30 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1yW3AUp5rYDLYCAtZc6e4zeLbP5HPLXdvuEFeVESOTic/edit)<br>* SIG Network Meeting: [Thursdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/361123509)<br>
|[Node](sig-node/README.md)|[node](https://github.com/kubernetes/kubernetes/labels/sig%2Fnode)|* [Dawn Chen](https://github.com/dchen1107), Google<br>* [Derek Carr](https://github.com/derekwaynecarr), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-node)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-node)|* Main SIG Meeting: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/4799874685)<br>* Weekly CI/Triage Meeting: [Wednesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/4799874685)<br>
-|[Release](sig-release/README.md)|[release](https://github.com/kubernetes/kubernetes/labels/sig%2Frelease)|* [Stephen Augustus](https://github.com/justaugustus), Cisco<br>* [Sascha Grunert](https://github.com/saschagrunert), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-release)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-release)|* Regular SIG Meeting: [Tuesdays at 15:30 UTC (biweekly)](https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09)<br>* (Release Engineering) Release Engineering: [Tuesdays at 15:30 UTC (biweekly)](https://zoom.us/j/240812475?pwd=bmhDQjN3N3dhV1dNSm9walJmTG5tUT09)<br>
+|[Release](sig-release/README.md)|[release](https://github.com/kubernetes/kubernetes/labels/sig%2Frelease)|* [Stephen Augustus](https://github.com/justaugustus), Cisco<br>* [Sascha Grunert](https://github.com/saschagrunert), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-release)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-release)|* Regular SIG Meeting APAC/EU Oriented Time: [Tuesdays at 15:30 UTC (biweekly)](https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09)<br>* Regular SIG Meeting US Oriented Time: [Tuesdays at 17:00 UTC (biweekly)](https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09)<br>
|[Scalability](sig-scalability/README.md)|[scalability](https://github.com/kubernetes/kubernetes/labels/sig%2Fscalability)|* [Marcel Zieba](https://github.com/marseel), Google<br>* [Shyam Jeedigunta](https://github.com/shyamjvs), AWS<br>|* [Slack](https://kubernetes.slack.com/messages/sig-scalability)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scale)|* Regular SIG Meeting: [Thursdays at 10:30 PT (Pacific Time) (bi-weekly ([upcoming meeting dates](#upcoming-meeting-dates)))](https://zoom.us/j/94252896018?pwd=cTlMMlBoTHZqUEdjRm9VY2NWNUg5dz09)<br>
-|[Scheduling](sig-scheduling/README.md)|[scheduling](https://github.com/kubernetes/kubernetes/labels/sig%2Fscheduling)|* [Wei Huang](https://github.com/Huang-Wei), Apple<br>* [Abdullah Gharaibeh](https://github.com/ahg-g), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-scheduling)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling)|* 10AM PT Meeting: [Thursdays at 17:00 UTC (biweekly starting Thursday June 7, 2018)](https://zoom.us/j/841218129)<br>
+|[Scheduling](sig-scheduling/README.md)|[scheduling](https://github.com/kubernetes/kubernetes/labels/sig%2Fscheduling)|* [Wei Huang](https://github.com/Huang-Wei), Apple<br>* [Abdullah Gharaibeh](https://github.com/ahg-g), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-scheduling)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling)|* biweekly meeting (NA & Europe): [Thursdays at 17:00 UTC (biweekly starting Thursday June 7, 2018)](https://zoom.us/j/841218129)<br>* descheduler biweekly meeting: [Tuesdays at 17:00 UTC (biweekly starting Tuesday September 13, 2022)](https://zoom.us/j/841218129)<br>* monthly meeting (APAC): [first Thursdays at 02:00 UTC (monthly)](https://zoom.us/j/841218129)<br>
|[Security](sig-security/README.md)|[security](https://github.com/kubernetes/kubernetes/labels/sig%2Fsecurity)|* [Ian Coldwater](https://github.com/IanColdwater), Twilio<br>* [Tabitha Sable](https://github.com/tabbysable), Datadog<br>|* [Slack](https://kubernetes.slack.com/messages/sig-security)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-security)|* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/9934z1184192?pwd=L25Tc0ZOL3FqU09KNERlTU12dFhTQT09)<br>
-|[Storage](sig-storage/README.md)|[storage](https://github.com/kubernetes/kubernetes/labels/sig%2Fstorage)|* [Saad Ali](https://github.com/saad-ali), Google<br>* [Xing Yang](https://github.com/xing-yang), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-storage)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-storage)|* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/614261834)<br>
-|[Testing](sig-testing/README.md)|[testing](https://github.com/kubernetes/kubernetes/labels/sig%2Ftesting)|* [Benjamin Elder](https://github.com/BenTheElder), Google<br>* [Aaron Crickenberger](https://github.com/spiffxp), Google<br>* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-testing)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-testing)|* SIG Testing Bi-Weekly Meeting: [Tuesdays at 10:00 PT (Pacific Time) (bi-weekly starting Tuesday August 13, 2019)](https://zoom.us/j/135450138?pwd=WGJyaVZzekJCWFBTMGJGTXVjUFJaUT09)<br>
+|[Storage](sig-storage/README.md)|[storage](https://github.com/kubernetes/kubernetes/labels/sig%2Fstorage)|* [Saad Ali](https://github.com/saad-ali), Google<br>* [Xing Yang](https://github.com/xing-yang), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-storage)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-storage)|* Regular CSI Implementation meeting: [Monday and Wednesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/614261834)<br>* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/614261834)<br>
+|[Testing](sig-testing/README.md)|[testing](https://github.com/kubernetes/kubernetes/labels/sig%2Ftesting)|* [Benjamin Elder](https://github.com/BenTheElder), Google<br>* [Michelle Shepardson](https://github.com/michelle192837), Google<br>* [Aaron Crickenberger](https://github.com/spiffxp), Google<br>* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-testing)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-testing)|* SIG Testing Bi-Weekly Meeting: [Tuesdays at 10:00 PT (Pacific Time) (bi-weekly starting Tuesday August 13, 2019)](https://zoom.us/j/135450138?pwd=WGJyaVZzekJCWFBTMGJGTXVjUFJaUT09)<br>
|[UI](sig-ui/README.md)|[ui](https://github.com/kubernetes/kubernetes/labels/sig%2Fui)|* [Sebastian Florek](https://github.com/floreks), Kubermatic<br>* [Marcin Maciaszczyk](https://github.com/maciaszczykm), Kubermatic<br>* [Shu Muto](https://github.com/shu-mutou), NEC<br>|* [Slack](https://kubernetes.slack.com/messages/sig-ui)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-ui)|* Regular SIG Meeting: [Thursdays at 09:00 PT (Pacific Time) (bi-weekly)](https://groups.google.com/forum/#!forum/kubernetes-sig-ui)<br>
|[Usability](sig-usability/README.md)|[usability](https://github.com/kubernetes/kubernetes/labels/sig%2Fusability)|* [Himanshu Pandey](https://github.com/hpandeycodeit), VMware<br>* [Gaby Moreno Cesar](https://github.com/morengab), IBM<br>* [Tasha Drew](https://github.com/tashimi), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-usability)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-usability)|* Regular SIG Meeting: [Tuesdays at 9:00 PT (Pacific Time) (every third week)](https://zoom.us/j/3832562240)<br>
|[Windows](sig-windows/README.md)|[windows](https://github.com/kubernetes/kubernetes/labels/sig%2Fwindows)|* [Mark Rossetti](https://github.com/marosset), Microsoft<br>|* [Slack](https://kubernetes.slack.com/messages/sig-windows)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-windows)|* Backlog Refinement / Bug Triage Meeting: [Thursdays at 12:30 Eastern Time (ET) (biweekly)](https://zoom.us/j/94389601840?pwd=MCs2SEJQWG0zUWpBS3Nod0ZNMmVXQT09)<br>* Regular SIG Meeting: [Tuesdays at 12:30 Eastern Time (ET) (weekly)](https://zoom.us/j/96892680257?pwd=TVNyMzB4VVMwRGZnUkgzT1dnb2szZz09)<br>* Weekly CI Meeting: [Tuesdays at 12:15 Eastern Time (ET) (weekly)](https://zoom.us/j/96892680257?pwd=TVNyMzB4VVMwRGZnUkgzT1dnb2szZz09)<br>
@@ -62,13 +62,13 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md)
| Name | Label | Stakeholder SIGs |Organizers | Contact | Meetings |
|------|-------|------------------|-----------|---------|----------|
|[API Expression](wg-api-expression/README.md)|[api-expression](https://github.com/kubernetes/kubernetes/labels/wg%2Fapi-expression)|* API Machinery<br>* Architecture<br>|* [Antoine Pelisse](https://github.com/apelisse), Google<br>* [Kevin Wiesmueller](https://github.com/kwiesmueller), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-api-expression)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression)|* Regular WG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/94238112084)<br>
-|[Batch](wg-batch/README.md)|[batch](https://github.com/kubernetes/kubernetes/labels/wg%2Fbatch)|* Apps<br>* Autoscaling<br>* Node<br>* Scheduling<br>|* [Wei Huang](https://github.com/Huang-Wei), Apple<br>* [Abdullah Gharaibeh](https://github.com/ahg-g), Google<br>* [Danielle Lancashire](https://github.com/endocrimes), VMware<br>* [Maciej Szulik](https://github.com/soltysh), Red Hat<br>* [Swati Sehgal](https://github.com/swatisehgal), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/wg-batch)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/g/wg-batch)|* Regular Meeting ([Calendar](https://calendar.google.com/calendar/embed?src=8ulop9k0jfpuo0t7kp8d9ubtj4%40group.calendar.google.com)): [Thursdays (starting March 3rd 2022)s at 7AM PT (Pacific Time) (biweekly)](https://zoom.us/j/98329676612?pwd=c0N2bVV1aTh2VzltckdXSitaZXBKQT09)<br>
+|[Batch](wg-batch/README.md)|[batch](https://github.com/kubernetes/kubernetes/labels/wg%2Fbatch)|* Apps<br>* Autoscaling<br>* Node<br>* Scheduling<br>|* [Wei Huang](https://github.com/Huang-Wei), Apple<br>* [Abdullah Gharaibeh](https://github.com/ahg-g), Google<br>* [Danielle Lancashire](https://github.com/endocrimes), Independent<br>* [Maciej Szulik](https://github.com/soltysh), Red Hat<br>* [Swati Sehgal](https://github.com/swatisehgal), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/wg-batch)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/g/wg-batch)|* Regular Meeting ([Calendar](https://calendar.google.com/calendar/embed?src=8ulop9k0jfpuo0t7kp8d9ubtj4%40group.calendar.google.com)): [Thursdays (starting March 3rd 2022)s at 7AM PT (Pacific Time) (biweekly)](https://zoom.us/j/98329676612?pwd=c0N2bVV1aTh2VzltckdXSitaZXBKQT09)<br>
|[Data Protection](wg-data-protection/README.md)|[data-protection](https://github.com/kubernetes/kubernetes/labels/wg%2Fdata-protection)|* Apps<br>* Storage<br>|* [Xing Yang](https://github.com/xing-yang), VMware<br>* [Xiangqian Yu](https://github.com/yuxiangqian), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-data-protection)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-data-protection)|* Regular WG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/6933410772)<br>
|[IoT Edge](wg-iot-edge/README.md)|[iot-edge](https://github.com/kubernetes/kubernetes/labels/wg%2Fiot-edge)|* Multicluster<br>* Network<br>|* [Steve Wong](https://github.com/cantbewong), VMware<br>* [Cindy Xing](https://github.com/cindyxing), Microsoft<br>* [Dejan Bosanac](https://github.com/dejanb), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/wg-iot-edge)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-iot-edge)|* APAC WG Meeting: [Wednesdays at 5:00 UTC (every four weeks)](https://zoom.us/j/91251176046?pwd=cmdqclovM3R3eDB1VlpuL1ZGU1hnZz09)<br>* Regular WG Meeting (Pacific Time): [Wednesdays at 09:00 PT (every four weeks)](https://zoom.us/j/92778512626?pwd=MXhlemwvYnhkQmkxeXllQ0Z5VGs4Zz09)<br>
|[Multitenancy](wg-multitenancy/README.md)|[multitenancy](https://github.com/kubernetes/kubernetes/labels/wg%2Fmultitenancy)|* API Machinery<br>* Auth<br>* Network<br>* Node<br>* Scheduling<br>* Storage<br>|* [Sanjeev Rampal](https://github.com/srampal), Cisco<br>* [Tasha Drew](https://github.com/tashimi), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/wg-multitenancy)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-multitenancy)|* Regular WG Meeting: [Tuesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/my/k8s.sig.auth)<br>
|[Policy](wg-policy/README.md)|[policy](https://github.com/kubernetes/kubernetes/labels/wg%2Fpolicy)|* Architecture<br>* Auth<br>* Multicluster<br>* Network<br>* Node<br>* Scheduling<br>* Storage<br>|* [Jim Bugwadia](https://github.com/JimBugwadia), Kyverno/Nirmata<br>* [Robert Ficcaglia](https://github.com/rficcaglia), SunStone<br>|* [Slack](https://kubernetes.slack.com/messages/wg-policy)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-policy)|* Regular WG Meeting: [Wednesdays at 8:00 PT (Pacific Time) (semimonthly)](https://zoom.us/j/7375677271)<br>
|[Reliability](wg-reliability/README.md)|[reliability](https://github.com/kubernetes/kubernetes/labels/wg%2Freliability)|* Architecture<br>* Cluster Lifecycle<br>* Release<br>* Scalability<br>* Testing<br>|* [David Eads](https://github.com/deads2k), Red Hat<br>* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat<br>* [Wojciech Tyczynski](https://github.com/wojtek-t), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-reliability)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-reliability)|* Regular WG Meeting: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97964505804?pwd=R3hzSnArQWJHYmdWUnpSUDh3aXhFUT09)<br>
-|[Structured Logging](wg-structured-logging/README.md)|[structured-logging](https://github.com/kubernetes/kubernetes/labels/wg%2Fstructured-logging)|* API Machinery<br>* Architecture<br>* Cloud Provider<br>* Instrumentation<br>* Network<br>* Node<br>* Scheduling<br>* Storage<br>|* [Patrick Ohly](https://github.com/pohly), Intel<br>* [Marek Siarkowicz](https://github.com/serathius), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-structured-logging)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-structured-logging)|* Regular Meeting: [Thursdays at 14:30 UTC (biweekly)](https://zoom.us/j/96716142646?pwd=VmgrN29sbmhDREp3R0NtZlpGSlZ4Zz09)<br>
+|[Structured Logging](wg-structured-logging/README.md)|[structured-logging](https://github.com/kubernetes/kubernetes/labels/wg%2Fstructured-logging)|* API Machinery<br>* Architecture<br>* Cloud Provider<br>* Instrumentation<br>* Network<br>* Node<br>* Scheduling<br>* Storage<br>|* [Patrick Ohly](https://github.com/pohly), Intel<br>* [Marek Siarkowicz](https://github.com/serathius), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-structured-logging)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-structured-logging)|* Regular Meeting: [Thursdays at 15:30 London-UK (biweekly)](https://zoom.us/j/96716142646?pwd=VmgrN29sbmhDREp3R0NtZlpGSlZ4Zz09)<br>
### User Groups
@@ -81,9 +81,9 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md)
| Name | Label | Members | Contact |
|------|--------|---------|---------|
-|[Code of Conduct](committee-code-of-conduct/README.md)|[code-of-conduct](https://github.com/kubernetes/kubernetes/labels/committee%2Fcode-of-conduct)|* [Danielle Lancashire](https://github.com/endocrimes), VMware<br>* [Hilliary Lipsig](https://github.com/hlipsig), RedHat<br>* [Jeremy Rickard](https://github.com/jeremyrickard), Microsoft<br>* [Nabarun Pal](https://github.com/palnabarun), VMware<br>* [Xander Grzywinski](https://github.com/salaxander), Microsoft<br>|* [Slack](https://kubernetes.slack.com/messages/code-of-conduct)<br>* [Private Mailing List](conduct@kubernetes.io)
+|[Code of Conduct](committee-code-of-conduct/README.md)|[code-of-conduct](https://github.com/kubernetes/kubernetes/labels/committee%2Fcode-of-conduct)|* [Jason DeTiberus](https://github.com/detiber), Cisco<br>* [Danielle Lancashire](https://github.com/endocrimes), Independent<br>* [Hilliary Lipsig](https://github.com/hlipsig), RedHat<br>* [Jeremy Rickard](https://github.com/jeremyrickard), Microsoft<br>* [Xander Grzywinski](https://github.com/salaxander), Microsoft<br>|* [Slack](https://kubernetes.slack.com/messages/code-of-conduct)<br>* [Private Mailing List](conduct@kubernetes.io)
|[Security Response](committee-security-response/README.md)|[security-response](https://github.com/kubernetes/kubernetes/labels/committee%2Fsecurity-response)|* [CJ Cullen](https://github.com/cjcullen), Google<br>* [Mo Khan](https://github.com/enj), Microsoft<br>* [Joel Smith](https://github.com/joelsmith), Red Hat<br>* [Luke Hinds](https://github.com/lukehinds), Red Hat<br>* [Micah Hausler](https://github.com/micahhausler), Amazon<br>* [Tabitha Sable](https://github.com/tabbysable), Datadog<br>* [Tim Allclair](https://github.com/tallclair), Google<br>|* [Private Mailing List](security@kubernetes.io)
-|[Steering](committee-steering/README.md)|[steering](https://github.com/kubernetes/kubernetes/labels/committee%2Fsteering)|* [Christoph Blecker](https://github.com/cblecker), Red Hat<br>* [Davanum Srinivas](https://github.com/dims), VMware<br>* [Stephen Augustus](https://github.com/justaugustus), Cisco<br>* [Jordan Liggitt](https://github.com/liggitt), Google<br>* [Bob Killen](https://github.com/mrbobbytables), Google<br>* [Paris Pittman](https://github.com/parispittman), Apple<br>* [Tim Pepper](https://github.com/tpepper), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/steering-committee)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/forum/#!forum/steering)<br>* [Private Mailing List](steering-private@kubernetes.io)
+|[Steering](committee-steering/README.md)|[steering](https://github.com/kubernetes/kubernetes/labels/committee%2Fsteering)|* [Benjamin Elder](https://github.com/BenTheElder), Google<br>* [Christoph Blecker](https://github.com/cblecker), Red Hat<br>* [Carlos Tadeu Panato Jr.](https://github.com/cpanato), Chainguard, Inc<br>* [Stephen Augustus](https://github.com/justaugustus), Cisco<br>* [Bob Killen](https://github.com/mrbobbytables), Google<br>* [Nabarun Pal](https://github.com/palnabarun), VMware<br>* [Tim Pepper](https://github.com/tpepper), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/steering-committee)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/forum/#!forum/steering)<br>* [Private Mailing List](steering-private@kubernetes.io)
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
diff --git a/sig-multicluster/CONTRIBUTING.md b/sig-multicluster/CONTRIBUTING.md
index ffb2dc5d..fe130051 100644
--- a/sig-multicluster/CONTRIBUTING.md
+++ b/sig-multicluster/CONTRIBUTING.md
@@ -275,8 +275,8 @@ See the sig-multicluster [community page] for points of contact and meeting time
[community page]: /sig-multicluster
[contributors guide]: /contributors/guide
[design proposal]: #design-proposals
-[design repo]: /contributors/design-proposals/multicluster
-[design template]: /contributors/design-proposals/Design_Proposal_TEMPLATE.md
+[design repo]: https://git.k8s.io/design-proposals-archive/multicluster
+[design template]: https://git.k8s.io/design-proposals-archive/Design_Proposal_TEMPLATE.md
[development guide]: /contributors/devel/development.md
[existing issue]: #adopt-an-issue
[feature repo]: https://github.com/kubernetes/features
diff --git a/sig-multicluster/README.md b/sig-multicluster/README.md
index a760e5f4..e38bbb29 100644
--- a/sig-multicluster/README.md
+++ b/sig-multicluster/README.md
@@ -85,7 +85,7 @@ Control Plane for newer Multicluster-specific APIs. Discussions are ongoing to f
| Meeting Agenda | https://docs.google.com/document/d/1v-Kb1pUs3ww_x0MiKtgcyTXCAuZlbVlz4_A9wS3_HXY |
### Cluster Registry
-Common abstraction for a Registry of Clusters that can store per-Cluster metadata and supports Kubernetes label selection. The Cluster Registry can be deployed as a standalone or an aggregated API server and currently provides a Registry of Clusters without any actively reconciling Kubernetes controller. The API design is documented [here](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/multicluster/cluster-registry/api-design.md) and is intended to serve as a basis to develop multicluster controllers.
+Common abstraction for a Registry of Clusters that can store per-Cluster metadata and supports Kubernetes label selection. The Cluster Registry can be deployed as a standalone or an aggregated API server and currently provides a Registry of Clusters without any actively reconciling Kubernetes controller. The API design is documented [here](https://git.k8s.io/design-proposals-archive/multicluster/cluster-registry/api-design.md) and is intended to serve as a basis to develop multicluster controllers.
| | |
| -------------- |:-------|
diff --git a/sig-network/README.md b/sig-network/README.md
index c9c67b09..57f2a014 100644
--- a/sig-network/README.md
+++ b/sig-network/README.md
@@ -80,6 +80,7 @@ The following [subprojects][subproject-definition] are owned by sig-network:
### gateway-api
- **Owners:**
- [kubernetes-sigs/gateway-api](https://github.com/kubernetes-sigs/gateway-api/blob/master/OWNERS)
+ - [kubernetes-sigs/ingress2gateway](https://github.com/kubernetes-sigs/ingress2gateway/blob/main/OWNERS)
- [kubernetes/kubernetes/pkg/controller/endpoint](https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/endpoint/OWNERS)
- [kubernetes/kubernetes/pkg/proxy](https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/OWNERS)
- [kubernetes/kubernetes/staging/src/k8s.io/cloud-provider/controllers/service](https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/cloud-provider/controllers/service/OWNERS)
diff --git a/sig-node/OWNERS b/sig-node/OWNERS
index dcf3663c..2ea840ee 100644
--- a/sig-node/OWNERS
+++ b/sig-node/OWNERS
@@ -2,11 +2,11 @@
reviewers:
- sig-node-leads
- - ehashman
- SergeyKanzhelev
approvers:
- sig-node-leads
- - ehashman
- SergeyKanzhelev
+emeritus_approvers:
+ - ehashman
labels:
- sig/node
diff --git a/sig-node/README.md b/sig-node/README.md
index 58c16e20..9aea176d 100644
--- a/sig-node/README.md
+++ b/sig-node/README.md
@@ -89,12 +89,13 @@ The following [subprojects][subproject-definition] are owned by sig-node:
- [kubernetes/test-infra/config/jobs/kubernetes/node-problem-detector](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/node-problem-detector/OWNERS)
- **Contact:**
- Slack: [#node-problem-detector](https://kubernetes.slack.com/messages/node-problem-detector)
-### noderesourcetopology-api
+### resource-management
- **Owners:**
+ - [kubernetes/kubernetes/staging/src/k8s.io/dynamic-resource-allocation](https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/dynamic-resource-allocation/OWNERS)
- [kubernetes/noderesourcetopology-api](https://github.com/kubernetes/noderesourcetopology-api/blob/master/OWNERS)
### security-profiles-operator
- **Owners:**
- - [kubernetes-sigs/security-profiles-operator](https://github.com/kubernetes-sigs/security-profiles-operator/blob/master/OWNERS)
+ - [kubernetes-sigs/security-profiles-operator](https://github.com/kubernetes-sigs/security-profiles-operator/blob/main/OWNERS)
- **Contact:**
- Slack: [#security-profiles-operator](https://kubernetes.slack.com/messages/security-profiles-operator)
diff --git a/sig-node/archive/meeting-notes-2020.md b/sig-node/archive/meeting-notes-2020.md
index e753d9e6..915805af 100644
--- a/sig-node/archive/meeting-notes-2020.md
+++ b/sig-node/archive/meeting-notes-2020.md
@@ -1050,7 +1050,7 @@ Meeting is [canceled](https://groups.google.com/forum/?utm_medium=email&utm_sour
* [bart0sh] 2 hugepages PRs need review/approval:
* [Implement support for multiple sizes huge pages](https://github.com/kubernetes/kubernetes/pull/84051) was already reviewed and passed API review. Last signode review is required. This PR is covered by [granted sig-release exception](https://github.com/kubernetes/enhancements/pull/1540#issuecomment-583072382) and is going to be included into 1.18 if merged.
* [kubelet: sync node allocatable cgroups upon status update](https://github.com/kubernetes/kubernetes/pull/81774) bugfix got lgtm in Oct 2019. It would be great to have it in 1.18.
-* [cynepco3hahue] The KEP [Propose Memory Manager for NUMA awareness](https://github.com/kubernetes/enhancements/pull/1203) needs review, it can be great to get feedback from someone under the the sig-node group.
+* [cynepco3hahue] The KEP [Propose Memory Manager for NUMA awareness](https://github.com/kubernetes/enhancements/pull/1203) needs review, it can be great to get feedback from someone under the sig-node group.
* [vpickard] ~~Topology Manager CI job PR needs /approve from sig-node owner [https://github.com/kubernetes/test-infra/pull/16062](https://github.com/kubernetes/test-infra/pull/16062)~~
* [fromani] Topology Manager Upgrade test PR [https://github.com/kubernetes/kubernetes/pull/88107](https://github.com/kubernetes/kubernetes/pull/88107)
* [dashpole] Distributed Tracing in Kubernete
diff --git a/sig-node/sig-node-contributor-ladder.md b/sig-node/sig-node-contributor-ladder.md
index 78833917..b961a25e 100644
--- a/sig-node/sig-node-contributor-ladder.md
+++ b/sig-node/sig-node-contributor-ladder.md
@@ -13,7 +13,7 @@ If you are a community member that wants to suggest changes, please do!
SIG Node welcomes new contributors to the community, help is always desired. Not all contributors are able to provide sustained contribution, but each contribution is always welcome. This document intends to capture a leadership path for contributors that intend to provide a sustained contribution to the SIG and its associated code base by taking on reviewer and approver responsibilities at various levels.
-Please review the list of [sub-projects](./README.mdmd#subprojects) for areas to engage!
+Please review the list of [sub-projects](./README.md#subprojects) for areas to engage!
## SIG Node reviewers and approvers
@@ -113,4 +113,4 @@ There are different ways to earn trust:
- Actively triage issues and PRs, provide support to contributors to drive their PRs to completion.
**Be present**
-Participate in SIG Node meetings by speaking about KEPs or improvements driven, or find some other way to prove the identity behind GitHub handle. \ No newline at end of file
+Participate in SIG Node meetings by speaking about KEPs or improvements driven, or find some other way to prove the identity behind GitHub handle.
diff --git a/sig-release/README.md b/sig-release/README.md
index 92f09f51..8292b937 100644
--- a/sig-release/README.md
+++ b/sig-release/README.md
@@ -14,7 +14,10 @@ The [charter](charter.md) defines the scope and governance of the Release Specia
## Meetings
*Joining the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) for the group will typically add invites for the following meetings to your calendar.*
-* Regular SIG Meeting: [Tuesdays at 15:30 UTC](https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=15:30&tz=UTC).
+* Regular SIG Meeting APAC/EU Oriented Time: [Tuesdays at 15:30 UTC](https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=15:30&tz=UTC).
+ * [Meeting notes and Agenda](https://bit.ly/k8s-sig-release-meeting).
+ * [Meeting recordings](https://bit.ly/k8s-sig-release-videos).
+* Regular SIG Meeting US Oriented Time: [Tuesdays at 17:00 UTC](https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=17:00&tz=UTC).
* [Meeting notes and Agenda](https://bit.ly/k8s-sig-release-meeting).
* [Meeting recordings](https://bit.ly/k8s-sig-release-videos).
@@ -51,7 +54,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
- [@kubernetes/sig-release](https://github.com/orgs/kubernetes/teams/sig-release) - SIG Release Members
- [@kubernetes/sig-release-admins](https://github.com/orgs/kubernetes/teams/sig-release-admins) - Admins for SIG Release repositories
- [@kubernetes/sig-release-leads](https://github.com/orgs/kubernetes/teams/sig-release-leads) - Chairs, Technical Leads, and Program Managers for SIG Release
-- Steering Committee Liaison: Davanum Srinivas (**[@dims](https://github.com/dims)**)
+- Steering Committee Liaison: Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**)
## Working Groups
@@ -72,6 +75,7 @@ The Release Engineering subproject is responsible for the [process/procedures](h
- [kubernetes-sigs/release-notes](https://github.com/kubernetes-sigs/release-notes/blob/master/OWNERS)
- [kubernetes-sigs/release-sdk](https://github.com/kubernetes-sigs/release-sdk/blob/main/OWNERS)
- [kubernetes-sigs/release-utils](https://github.com/kubernetes-sigs/release-utils/blob/main/OWNERS)
+ - [kubernetes-sigs/tejolote](https://github.com/kubernetes-sigs/tejolote/blob/main/OWNERS)
- [kubernetes-sigs/testgrid-json-exporter](https://github.com/kubernetes-sigs/testgrid-json-exporter/blob/main/OWNERS)
- [kubernetes-sigs/zeitgeist](https://github.com/kubernetes-sigs/zeitgeist/blob/master/OWNERS)
- [kubernetes/kubernetes/CHANGELOG](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/OWNERS)
@@ -94,10 +98,6 @@ The Release Engineering subproject is responsible for the [process/procedures](h
- [@kubernetes/release-managers](https://github.com/orgs/kubernetes/teams/release-managers) - [Release Managers](https://kubernetes.io/releases/release-managers/)
- [@kubernetes/repo-infra-admins](https://github.com/orgs/kubernetes/teams/repo-infra-admins)
- [@kubernetes/repo-infra-maintainers](https://github.com/orgs/kubernetes/teams/repo-infra-maintainers)
-- **Meetings:**
- - Release Engineering: [Tuesdays at 15:30 UTC](https://zoom.us/j/240812475?pwd=bmhDQjN3N3dhV1dNSm9walJmTG5tUT09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=15:30&tz=UTC).
- - [Meeting notes and Agenda](https://bit.ly/k8s-releng-meeting).
- - [Meeting recordings](https://bit.ly/k8s-sig-release-videos).
### Release Team
The Kubernetes Release Team is responsible for the day-to-day work required to successfully create releases of Kubernetes.
- **Owners:**
@@ -106,9 +106,14 @@ The Kubernetes Release Team is responsible for the day-to-day work required to s
- **Contact:**
- [Mailing List](https://groups.google.com/a/kubernetes.io/g/release-team)
- GitHub Teams:
- - [@kubernetes/ci-signal](https://github.com/orgs/kubernetes/teams/ci-signal)
+ - [@kubernetes/release-ci-signal](https://github.com/orgs/kubernetes/teams/release-ci-signal)
- [@kubernetes/release-team](https://github.com/orgs/kubernetes/teams/release-team) - Members of the current Release Team and subproject owners
+ - [@kubernetes/release-team-bug-triage](https://github.com/orgs/kubernetes/teams/release-team-bug-triage)
+ - [@kubernetes/release-team-comms](https://github.com/orgs/kubernetes/teams/release-team-comms)
+ - [@kubernetes/release-team-docs](https://github.com/orgs/kubernetes/teams/release-team-docs)
+ - [@kubernetes/release-team-enhancements](https://github.com/orgs/kubernetes/teams/release-team-enhancements)
- [@kubernetes/release-team-leads](https://github.com/orgs/kubernetes/teams/release-team-leads) - Release Team Leads for the current Kubernetes release cycle
+ - [@kubernetes/release-team-release-notes](https://github.com/orgs/kubernetes/teams/release-team-release-notes)
### SIG Release Process Documentation
Documents and processes related to SIG Release
- **Owners:**
diff --git a/sig-scheduling/README.md b/sig-scheduling/README.md
index 8665c874..9ce64d96 100644
--- a/sig-scheduling/README.md
+++ b/sig-scheduling/README.md
@@ -14,7 +14,13 @@ The [charter](charter.md) defines the scope and governance of the Scheduling Spe
## Meetings
*Joining the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling) for the group will typically add invites for the following meetings to your calendar.*
-* 10AM PT Meeting: [Thursdays at 17:00 UTC](https://zoom.us/j/841218129) (biweekly starting Thursday June 7, 2018). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=17:00&tz=UTC).
+* biweekly meeting (NA & Europe): [Thursdays at 17:00 UTC](https://zoom.us/j/841218129) (biweekly starting Thursday June 7, 2018). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=17:00&tz=UTC).
+ * [Meeting notes and Agenda](https://docs.google.com/document/d/13mwye7nvrmV11q9_Eg77z-1w3X7Q1GTbslpml4J7F3A/edit).
+ * [Meeting recordings](https://www.youtube.com/watch?v=PweKj6SU7UA&list=PL69nYSiGNLP2vwzcCOhxrL3JVBc-eaJWI).
+* descheduler biweekly meeting: [Tuesdays at 17:00 UTC](https://zoom.us/j/841218129) (biweekly starting Tuesday September 13, 2022). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=17:00&tz=UTC).
+ * [Meeting notes and Agenda](https://docs.google.com/document/d/1Ang5shAFxuylO2RXMFGO7uxSe-IX3Y3PxoKIn1yPIEQ).
+ * [Meeting recordings](https://youtube.com/playlist?list=PLEafaZMk8MYYqoSncOkL8uutIcTsUQE_g).
+* monthly meeting (APAC): [first Thursdays at 02:00 UTC](https://zoom.us/j/841218129) (monthly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=02:00&tz=UTC).
* [Meeting notes and Agenda](https://docs.google.com/document/d/13mwye7nvrmV11q9_Eg77z-1w3X7Q1GTbslpml4J7F3A/edit).
* [Meeting recordings](https://www.youtube.com/watch?v=PweKj6SU7UA&list=PL69nYSiGNLP2vwzcCOhxrL3JVBc-eaJWI).
@@ -51,7 +57,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
- [@kubernetes/sig-scheduling-pr-reviews](https://github.com/orgs/kubernetes/teams/sig-scheduling-pr-reviews) - PR Reviews
- [@kubernetes/sig-scheduling-proposals](https://github.com/orgs/kubernetes/teams/sig-scheduling-proposals) - Design Proposals
- [@kubernetes/sig-scheduling-test-failures](https://github.com/orgs/kubernetes/teams/sig-scheduling-test-failures) - Test Failures and Triage
-- Steering Committee Liaison: Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**)
+- Steering Committee Liaison: Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**)
## Working Groups
diff --git a/sig-security/README.md b/sig-security/README.md
index 55b7cd4a..30feaaaf 100644
--- a/sig-security/README.md
+++ b/sig-security/README.md
@@ -33,7 +33,7 @@ The Chairs of the SIG run operations and processes governing the SIG.
- GitHub Teams:
- [@kubernetes/sig-security-leads](https://github.com/orgs/kubernetes/teams/sig-security-leads) - SIG Security Leads
- [@kubernetes/sig-security-pr-reviews](https://github.com/orgs/kubernetes/teams/sig-security-pr-reviews) - SIG Security PR review notifications
-- Steering Committee Liaison: Paris Pittman (**[@parispittman](https://github.com/parispittman)**)
+- Steering Committee Liaison: Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**)
## Subprojects
diff --git a/sig-storage/README.md b/sig-storage/README.md
index 5b3e4797..6fa7ead2 100644
--- a/sig-storage/README.md
+++ b/sig-storage/README.md
@@ -14,6 +14,8 @@ The [charter](charter.md) defines the scope and governance of the Storage Specia
## Meetings
*Joining the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-storage) for the group will typically add invites for the following meetings to your calendar.*
+* Regular CSI Implementation meeting: [Monday and Wednesdays at 10:00 PT (Pacific Time)](https://zoom.us/j/614261834) (weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=10:00&tz=PT%20%28Pacific%20Time%29).
+ * [Meeting notes and Agenda](https://docs.google.com/document/d/1_hvq3nleqQEYatH9V_Gfep39jMzaFJRSN2ioA0PFq-Q/edit#).
* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time)](https://zoom.us/j/614261834) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=9:00&tz=PT%20%28Pacific%20Time%29).
* [Meeting notes and Agenda](https://docs.google.com/document/d/1-8KEG8AjAgKznS9NFm3qWqkGyCHmvU6HVl0sk5hwoAE/edit?usp=sharing).
* [Meeting recordings](https://www.youtube.com/watch?v=Eh7Qa7KOL8o&list=PL69nYSiGNLP02-BMqJdfFgGxYQ4Nb-2Qq).
@@ -49,7 +51,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
- [@kubernetes/sig-storage-pr-reviews](https://github.com/orgs/kubernetes/teams/sig-storage-pr-reviews) - PR Reviews
- [@kubernetes/sig-storage-proposals](https://github.com/orgs/kubernetes/teams/sig-storage-proposals) - Design Proposals
- [@kubernetes/sig-storage-test-failures](https://github.com/orgs/kubernetes/teams/sig-storage-test-failures) - Test Failures and Triage
-- Steering Committee Liaison: Paris Pittman (**[@parispittman](https://github.com/parispittman)**)
+- Steering Committee Liaison: Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**)
## Working Groups
diff --git a/sig-storage/volume-plugin-faq.md b/sig-storage/volume-plugin-faq.md
index 6135139c..75080e35 100644
--- a/sig-storage/volume-plugin-faq.md
+++ b/sig-storage/volume-plugin-faq.md
@@ -1,7 +1,7 @@
# Kubernetes Volume Plugin FAQ for Storage Vendors
-Last Updated: 2022/08/02
+Last Updated: 2022/09/21
**What is Kubernetes volume plugin?**
@@ -97,6 +97,6 @@ The Storage SIG strongly suggests implementing a CSI driver. CSI is GA in Kubern
If you have a legacy FlexVolume driver that satisfies your requirements, there is no need to migrate to CSI. The Kubernetes Storage-SIG plans to continue to support and maintain the Flex Volume API. So you can continue to use it without worry of deprecation, but note that additional features (like topology, snapshots, etc.) will only be added to CSI not to FlexVolume.
-For those who would still like to migrate to CSI, there is an effort underway in the storage community to build a CSI adapter for FlexVolume. This will allow existing FlexVolume implementations to easily be containerized and deployed as a CSI plugin. See [this link](https://github.com/kubernetes-csi/drivers/tree/master/pkg/flexadapter) for details. However, the adapter will be a stop-gap solution, and if migration to CSI is the goal, we recommend writing a CSI driver from scratch to take full advantage of the API.
+There was an archived project that aims at allowing existing FlexVolume implementations to be containerized and deployed as a CSI plugin, however, no one is working on it any more. See [this link](https://github.com/kubernetes-retired/drivers/tree/master/pkg/flexadapter) for details. In any case, the adapter was supposed to be a stop-gap solution, and if migration to CSI is the goal, we recommend writing a CSI driver from scratch to take full advantage of the API.
[Flexvolume.md]: /contributors/devel/sig-storage/flexvolume.md
diff --git a/sig-testing/README.md b/sig-testing/README.md
index 541e19fb..e2a8f2d9 100644
--- a/sig-testing/README.md
+++ b/sig-testing/README.md
@@ -24,6 +24,7 @@ The [charter](charter.md) defines the scope and governance of the Testing Specia
The Chairs of the SIG run operations and processes governing the SIG.
* Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**), Google
+* Michelle Shepardson (**[@michelle192837](https://github.com/michelle192837)**), Google
* Aaron Crickenberger (**[@spiffxp](https://github.com/spiffxp)**), Google
* Steve Kuznetsov (**[@stevekuznetsov](https://github.com/stevekuznetsov)**), Red Hat
@@ -33,7 +34,9 @@ subprojects, and resolve cross-subproject technical issues and decisions.
* Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**), Google
* Alvaro Aleman (**[@alvaroaleman](https://github.com/alvaroaleman)**), Red Hat
+* Antonio Ojea (**[@aojea](https://github.com/aojea)**), Google
* Cole Wagner (**[@cjwagner](https://github.com/cjwagner)**), Google
+* Patrick Ohly (**[@pohly](https://github.com/pohly)**), Intel
## Emeritus Leads
@@ -47,7 +50,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
- GitHub Teams:
- [@kubernetes/sig-testing](https://github.com/orgs/kubernetes/teams/sig-testing) - General Discussion
- [@kubernetes/sig-testing-pr-reviews](https://github.com/orgs/kubernetes/teams/sig-testing-pr-reviews) - PR Reviews
-- Steering Committee Liaison: Paris Pittman (**[@parispittman](https://github.com/parispittman)**)
+- Steering Committee Liaison: Carlos Tadeu Panato Jr. (**[@cpanato](https://github.com/cpanato)**)
## Working Groups
@@ -66,11 +69,11 @@ Boskos is a resource manager service that handles different kinds of resources a
### e2e-framework
An experimental e2e testing framework for Kubernetes clusters.
- **Owners:**
- - [kubernetes-sigs/e2e-framework](https://github.com/kubernetes-sigs/e2e-framework/blob/master/OWNERS)
+ - [kubernetes-sigs/e2e-framework](https://github.com/kubernetes-sigs/e2e-framework/blob/main/OWNERS)
### kind
Kubernetes IN Docker. Run Kubernetes test clusters on your local machine using Docker containers as nodes.
- **Owners:**
- - [kubernetes-sigs/kind](https://github.com/kubernetes-sigs/kind/blob/master/OWNERS)
+ - [kubernetes-sigs/kind](https://github.com/kubernetes-sigs/kind/blob/main/OWNERS)
- **Contact:**
- Slack: [#kind](https://kubernetes.slack.com/messages/kind)
### kubetest2
diff --git a/sig-usability/README.md b/sig-usability/README.md
index c335b4cd..d4ad3c5a 100644
--- a/sig-usability/README.md
+++ b/sig-usability/README.md
@@ -43,7 +43,7 @@ The Chairs of the SIG run operations and processes governing the SIG.
- [@kubernetes/sig-usability-misc](https://github.com/orgs/kubernetes/teams/sig-usability-misc) - General Discussion
- [@kubernetes/sig-usability-pr-reviews](https://github.com/orgs/kubernetes/teams/sig-usability-pr-reviews) - PR Reviews
- [@kubernetes/sig-usability-proposals](https://github.com/orgs/kubernetes/teams/sig-usability-proposals) - Design Proposals
-- Steering Committee Liaison: Davanum Srinivas (**[@dims](https://github.com/dims)**)
+- Steering Committee Liaison: Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**)
## Subprojects
diff --git a/sig-windows/CONTRIBUTING.md b/sig-windows/CONTRIBUTING.md
index 8b3af5d0..f600417d 100644
--- a/sig-windows/CONTRIBUTING.md
+++ b/sig-windows/CONTRIBUTING.md
@@ -26,10 +26,12 @@ View the leadership team in SIG-Windows and other subprojects in the [getting st
## Find work in progress
-View the SIG-Windows [project board](https://github.com/orgs/kubernetes/projects/8).
-This project board is updated during our [bi-weekly backlog refinement meeting](https://github.com/kubernetes/community/tree/master/sig-windows#meetings).
+View the SIG-Windows project boards:
-View current [outstanding PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+label%3Asig%2Fwindows) and [open issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+label%3Asig%2Fwindows).
+- [Open Issues](https://github.com/orgs/kubernetes/projects/82)
+- [Open PRs](https://github.com/orgs/kubernetes/projects/99)
+
+Items are added to these boards automatically and these boards are reviewed during our [bi-weekly backlog refinement meeting](https://github.com/kubernetes/community/tree/master/sig-windows#meetings).
## Building Kubernetes for Windows from Source
diff --git a/sig-windows/README.md b/sig-windows/README.md
index 4074161f..bb543347 100644
--- a/sig-windows/README.md
+++ b/sig-windows/README.md
@@ -51,7 +51,7 @@ subprojects, and resolve cross-subproject technical issues and decisions.
- [@kubernetes/sig-windows-bugs](https://github.com/orgs/kubernetes/teams/sig-windows-bugs) - Bug Triage and Troubleshooting
- [@kubernetes/sig-windows-feature-requests](https://github.com/orgs/kubernetes/teams/sig-windows-feature-requests) - Feature Requests
- [@kubernetes/sig-windows-misc](https://github.com/orgs/kubernetes/teams/sig-windows-misc) - General Discussion
-- Steering Committee Liaison: Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**)
+- Steering Committee Liaison: Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**)
## Subprojects
diff --git a/sigs.yaml b/sigs.yaml
index 3ae4597c..6984a393 100644
--- a/sigs.yaml
+++ b/sigs.yaml
@@ -58,8 +58,8 @@ sigs:
- name: sig-api-machinery-test-failures
description: Test Failures and Triage
liaison:
- github: dims
- name: Davanum Srinivas
+ github: palnabarun
+ name: Nabarun Pal
subprojects:
- name: component-base
owners:
@@ -264,7 +264,7 @@ sigs:
company: Red Hat
- github: dims
name: Davanum Srinivas
- company: VMware
+ company: Amazon Web Services
- github: johnbelamaric
name: John Belamaric
company: Google
@@ -328,8 +328,8 @@ sigs:
- name: sig-architecture-test-failures
description: Test Failures and Triage
liaison:
- github: liggitt
- name: Jordan Liggitt
+ github: BenTheElder
+ name: Benjamin Elder
subprojects:
- name: architecture-and-api-governance
description: '[Described below](#architecture-and-api-governance-1)'
@@ -539,6 +539,7 @@ sigs:
owners:
- https://raw.githubusercontent.com/kubernetes-sigs/pspmigrator/main/OWNERS
- https://raw.githubusercontent.com/kubernetes-sigs/wg-policy-prototypes/master/OWNERS
+ - https://raw.githubusercontent.com/kubernetes/kms/main/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/apis/imagepolicy/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/apis/policy/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/registry/policy/OWNERS
@@ -564,6 +565,11 @@ sigs:
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/kubelet/token/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/serviceaccount/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/plugin/pkg/admission/serviceaccount/OWNERS
+ - name: sig-auth-tools
+ description: |
+ Tooling to automate the SIG Auth project boards
+ owners:
+ - https://raw.githubusercontent.com/kubernetes-sigs/sig-auth-tools/main/OWNERS
- dir: sig-autoscaling
name: Autoscaling
mission_statement: >
@@ -668,7 +674,7 @@ sigs:
day: Wednesday
time: "09:00"
tz: PT (Pacific Time)
- frequency: monthly
+ frequency: every four weeks
url: https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09
archive_url: https://docs.google.com/document/d/1r0YElcXt6G5mOWxwZiXgGu_X6he3F--wKwg-9UBc29I/edit?usp=sharing
recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP28HaTzSlFe6RJVxpFmbUvF
@@ -684,7 +690,7 @@ sigs:
day: Wednesday
time: "09:00"
tz: PT (Pacific Time)
- frequency: monthly
+ frequency: every four weeks
url: https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09
archive_url: https://docs.google.com/document/d/1r0YElcXt6G5mOWxwZiXgGu_X6he3F--wKwg-9UBc29I/edit?usp=sharing
recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP28HaTzSlFe6RJVxpFmbUvF
@@ -925,6 +931,17 @@ sigs:
frequency: monthly - last Wednesday every month
url: https://zoom.us/j/9392903494
archive_url: https://docs.google.com/document/d/1qd_LTu5GFaxUhSWTHigowHt3XwjJVf1L57kupj8lnwg/edit
+ - name: provider-oci
+ owners:
+ - https://github.com/oracle/cluster-api-provider-oci/blob/main/OWNERS
+ meetings:
+ - description: Regular Oracle Cloud Subproject Meeting
+ day: Tuesday
+ time: "06:00"
+ tz: PT (Pacific Time)
+ frequency: First Tuesday of each month
+ url: https://oracle.zoom.us/j/99910180651?pwd=MjhhVC9jZjU3eGIxdjNTYm1UU3V6dz09
+ archive_url: https://docs.google.com/document/d/1mgZxjDbnSv74Vut1aHtWplG6vsR9zu5sqXvQN8SPgCc
- name: provider-openstack
owners:
- https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/master/OWNERS
@@ -996,8 +1013,8 @@ sigs:
- name: sig-cluster-lifecycle
description: SIG Cluster Lifecycle mailing list
liaison:
- github: dims
- name: Davanum Srinivas
+ github: palnabarun
+ name: Nabarun Pal
subprojects:
- name: cluster-addons
description: A project for figuring out the best way to install, manage and deliver
@@ -1066,9 +1083,9 @@ sigs:
meetings:
- description: Cluster API Provider Azure office hours
day: Thursday
- time: "08:00"
+ time: "09:00"
tz: PT (Pacific Time)
- frequency: bi-weekly
+ frequency: weekly
url: https://zoom.us/j/566930821?pwd=N2JuRWljc3hGS3ZnVlBLTk42TFlzQT09
archive_url: http://bit.ly/k8s-capz-agenda
recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP29D0nYgAGWt1ZFqS9Z7lw4
@@ -1271,6 +1288,7 @@ sigs:
slack: minikube
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle
owners:
+ - https://raw.githubusercontent.com/kubernetes-sigs/minikube-gui/main/OWNERS
- https://raw.githubusercontent.com/kubernetes/minikube/master/OWNERS
meetings:
- description: minikube office hours
@@ -1293,9 +1311,6 @@ sigs:
label: contributor-experience
leadership:
chairs:
- - github: alisondy
- name: Alison Dowdney
- company: Kasten
- github: jberkus
name: Josh Berkus
company: Red Hat
@@ -1312,6 +1327,8 @@ sigs:
emeritus_leads:
- github: Phillels
name: Elsie Phillips
+ - github: alisondy
+ name: Alison Dowdney
- github: castrojo
name: Jorge Castro
- github: grodrigues3
@@ -1358,7 +1375,7 @@ sigs:
owners:
- https://raw.githubusercontent.com/kubernetes-sigs/contributor-tweets/master/OWNERS
- https://raw.githubusercontent.com/kubernetes-sigs/lwkd/main/OWNERS
- - https://raw.githubusercontent.com/kubernetes/community/master/communication/marketing-team/OWNERS
+ - https://raw.githubusercontent.com/kubernetes/community/master/communication/contributor-comms/OWNERS
meetings:
- description: Contributor Comms - Upstream Marketing Team Meeting
day: Friday
@@ -1512,14 +1529,22 @@ sigs:
url: https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit
archive_url: https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit
recordings_url: https://www.youtube.com/playlist?list=PLAOP7m08QDCWZ7RwGca6cU4vzrOMw3ht7
- - description: Localization Subgroup Meeting
+ - description: Localization Subproject Meeting
day: Monday
time: "15:00"
tz: UTC
- frequency: monthly
+ frequency: first Monday of the month
url: https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/
archive_url: https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/
recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP3b5hlx0YV7Lo7DtckM84y8
+ - description: New Contributor Meet and Greet
+ day: Tuesday
+ time: "10:30"
+ tz: UTC
+ frequency: first Tuesday of the month
+ url: https://zoom.us/j/92822621820?pwd=S1p4RnB1RmNSZ3JjYlRRUVd4UjFPZz09
+ archive_url: https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/
+ recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP3b5hlx0YV7Lo7DtckM84y8
- description: Regular SIG Meeting
day: Tuesday
time: "17:30"
@@ -1573,12 +1598,15 @@ sigs:
- name: sig-docs-zh-owners
description: Chinese language content
liaison:
- github: parispittman
- name: Paris Pittman
+ github: cpanato
+ name: Carlos Tadeu Panato Jr.
subprojects:
- name: kubernetes-blog
owners:
- https://raw.githubusercontent.com/kubernetes/website/master/content/en/blog/OWNERS
+ - name: localization
+ owners:
+ - https://raw.githubusercontent.com/kubernetes/website/master/OWNERS
- name: reference-docs
owners:
- https://raw.githubusercontent.com/kubernetes-sigs/reference-docs/master/OWNERS
@@ -1599,7 +1627,7 @@ sigs:
chairs:
- github: ehashman
name: Elana Hashman
- company: Red Hat
+ company: Apple
- github: logicalhan
name: Han Kang
company: Google
@@ -1701,10 +1729,10 @@ sigs:
chairs:
- github: ameukam
name: Arnaud Meukam
- company: Alter Way
+ company: VMware
- github: dims
name: Davanum Srinivas
- company: VMware
+ company: Amazon Web Services
tech_leads:
- github: spiffxp
name: Aaron Crickenberger
@@ -1789,13 +1817,31 @@ sigs:
url: https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09
archive_url: http://bit.ly/sig-k8s-infra-notes
recordings_url: http://bit.ly/sig-k8s-infra-playlist
- - name: oci-proxy
- description: Experimental project for OCI distribution
+ - name: porche
+ description: A custom HTTP redirector serving Kubernetes binaries from existing
+ vendor supported and approved storage services.
contact:
slack: sig-k8s-infra
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-sig-k8s-infra
owners:
- - https://raw.githubusercontent.com/kubernetes-sigs/oci-proxy/main/OWNERS
+ - https://raw.githubusercontent.com/kubernetes-sigs/porche/main/OWNERS
+ meetings:
+ - description: Regular SIG Meeting
+ day: Wednesday
+ time: "20:00"
+ tz: UTC
+ frequency: bi-weekly
+ url: https://zoom.us/j/93109963352?pwd=SHJTcFR2bVg1akYxSDREUWQzaldrQT09
+ archive_url: http://bit.ly/sig-k8s-infra-notes
+ recordings_url: http://bit.ly/sig-k8s-infra-playlist
+ - name: registry.k8s.io
+ description: A custom HTTP redirector serving Kubernetes container image blobs
+ from existing vendor supported container registries.
+ contact:
+ slack: sig-k8s-infra
+ mailing_list: https://groups.google.com/forum/#!forum/kubernetes-sig-k8s-infra
+ owners:
+ - https://raw.githubusercontent.com/kubernetes/registry.k8s.io/main/OWNERS
meetings:
- description: Regular SIG Meeting
day: Wednesday
@@ -1987,6 +2033,7 @@ sigs:
slack: sig-network-gateway-api
owners:
- https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/master/OWNERS
+ - https://raw.githubusercontent.com/kubernetes-sigs/ingress2gateway/main/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/controller/endpoint/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/pkg/proxy/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/cloud-provider/controllers/service/OWNERS
@@ -2102,14 +2149,15 @@ sigs:
owners:
- https://raw.githubusercontent.com/kubernetes/node-problem-detector/master/OWNERS
- https://raw.githubusercontent.com/kubernetes/test-infra/master/config/jobs/kubernetes/node-problem-detector/OWNERS
- - name: noderesourcetopology-api
+ - name: resource-management
owners:
+ - https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/dynamic-resource-allocation/OWNERS
- https://raw.githubusercontent.com/kubernetes/noderesourcetopology-api/master/OWNERS
- name: security-profiles-operator
contact:
slack: security-profiles-operator
owners:
- - https://raw.githubusercontent.com/kubernetes-sigs/security-profiles-operator/master/OWNERS
+ - https://raw.githubusercontent.com/kubernetes-sigs/security-profiles-operator/main/OWNERS
- dir: sig-release
name: Release
mission_statement: >
@@ -2147,7 +2195,7 @@ sigs:
- github: tpepper
name: Tim Pepper
meetings:
- - description: Regular SIG Meeting
+ - description: Regular SIG Meeting APAC/EU Oriented Time
day: Tuesday
time: "15:30"
tz: UTC
@@ -2155,6 +2203,14 @@ sigs:
url: https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09
archive_url: https://bit.ly/k8s-sig-release-meeting
recordings_url: https://bit.ly/k8s-sig-release-videos
+ - description: Regular SIG Meeting US Oriented Time
+ day: Tuesday
+ time: "17:00"
+ tz: UTC
+ frequency: biweekly
+ url: https://zoom.us/j/327142148?pwd=RE9aZWtCc0hhOWs4ZTdXZ0hBM0ROdz09
+ archive_url: https://bit.ly/k8s-sig-release-meeting
+ recordings_url: https://bit.ly/k8s-sig-release-videos
contact:
slack: sig-release
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-sig-release
@@ -2169,8 +2225,8 @@ sigs:
- name: sig-release-leads
description: Chairs, Technical Leads, and Program Managers for SIG Release
liaison:
- github: dims
- name: Davanum Srinivas
+ github: palnabarun
+ name: Nabarun Pal
subprojects:
- name: Release Engineering
description: |
@@ -2196,6 +2252,7 @@ sigs:
- https://raw.githubusercontent.com/kubernetes-sigs/release-notes/master/OWNERS
- https://raw.githubusercontent.com/kubernetes-sigs/release-sdk/main/OWNERS
- https://raw.githubusercontent.com/kubernetes-sigs/release-utils/main/OWNERS
+ - https://raw.githubusercontent.com/kubernetes-sigs/tejolote/main/OWNERS
- https://raw.githubusercontent.com/kubernetes-sigs/testgrid-json-exporter/main/OWNERS
- https://raw.githubusercontent.com/kubernetes-sigs/zeitgeist/master/OWNERS
- https://raw.githubusercontent.com/kubernetes/kubernetes/master/CHANGELOG/OWNERS
@@ -2207,26 +2264,22 @@ sigs:
- https://raw.githubusercontent.com/kubernetes/sig-release/master/release-engineering/OWNERS
- https://raw.githubusercontent.com/kubernetes/website/main/content/en/releases/OWNERS
- https://raw.githubusercontent.com/kubernetes/website/main/data/releases/OWNERS
- meetings:
- - description: Release Engineering
- day: Tuesday
- time: "15:30"
- tz: UTC
- frequency: biweekly
- url: https://zoom.us/j/240812475?pwd=bmhDQjN3N3dhV1dNSm9walJmTG5tUT09
- archive_url: https://bit.ly/k8s-releng-meeting
- recordings_url: https://bit.ly/k8s-sig-release-videos
- name: Release Team
description: |
The Kubernetes Release Team is responsible for the day-to-day work required to successfully create releases of Kubernetes.
contact:
mailing_list: https://groups.google.com/a/kubernetes.io/g/release-team
teams:
- - name: ci-signal
+ - name: release-ci-signal
- name: release-team
description: Members of the current Release Team and subproject owners
+ - name: release-team-bug-triage
+ - name: release-team-comms
+ - name: release-team-docs
+ - name: release-team-enhancements
- name: release-team-leads
description: Release Team Leads for the current Kubernetes release cycle
+ - name: release-team-release-notes
owners:
- https://raw.githubusercontent.com/kubernetes-sigs/release-team-shadow-stats/main/OWNERS
- https://raw.githubusercontent.com/kubernetes/sig-release/master/release-team/OWNERS
@@ -2357,7 +2410,7 @@ sigs:
- github: k82cn
name: Klaus Ma
meetings:
- - description: 10AM PT Meeting
+ - description: biweekly meeting (NA & Europe)
day: Thursday
time: "17:00"
tz: UTC
@@ -2365,6 +2418,22 @@ sigs:
url: https://zoom.us/j/841218129
archive_url: https://docs.google.com/document/d/13mwye7nvrmV11q9_Eg77z-1w3X7Q1GTbslpml4J7F3A/edit
recordings_url: https://www.youtube.com/watch?v=PweKj6SU7UA&list=PL69nYSiGNLP2vwzcCOhxrL3JVBc-eaJWI
+ - description: descheduler biweekly meeting
+ day: Tuesday
+ time: "17:00"
+ tz: UTC
+ frequency: biweekly starting Tuesday September 13, 2022
+ url: https://zoom.us/j/841218129
+ archive_url: https://docs.google.com/document/d/1Ang5shAFxuylO2RXMFGO7uxSe-IX3Y3PxoKIn1yPIEQ
+ recordings_url: https://youtube.com/playlist?list=PLEafaZMk8MYYqoSncOkL8uutIcTsUQE_g
+ - description: monthly meeting (APAC)
+ day: first Thursday
+ time: "02:00"
+ tz: UTC
+ frequency: monthly
+ url: https://zoom.us/j/841218129
+ archive_url: https://docs.google.com/document/d/13mwye7nvrmV11q9_Eg77z-1w3X7Q1GTbslpml4J7F3A/edit
+ recordings_url: https://www.youtube.com/watch?v=PweKj6SU7UA&list=PL69nYSiGNLP2vwzcCOhxrL3JVBc-eaJWI
contact:
slack: sig-scheduling
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling
@@ -2384,8 +2453,8 @@ sigs:
- name: sig-scheduling-test-failures
description: Test Failures and Triage
liaison:
- github: liggitt
- name: Jordan Liggitt
+ github: BenTheElder
+ name: Benjamin Elder
subprojects:
- name: cluster-capacity
owners:
@@ -2447,8 +2516,8 @@ sigs:
- name: sig-security-pr-reviews
description: SIG Security PR review notifications
liaison:
- github: parispittman
- name: Paris Pittman
+ github: cpanato
+ name: Carlos Tadeu Panato Jr.
subprojects:
- name: security-audit
description: Third Party Security Audit
@@ -2504,6 +2573,13 @@ sigs:
- github: childsb
name: Bradley Childs
meetings:
+ - description: Regular CSI Implementation meeting
+ day: Monday and Wednesday
+ time: "10:00"
+ tz: PT (Pacific Time)
+ frequency: weekly
+ url: https://zoom.us/j/614261834
+ archive_url: https://docs.google.com/document/d/1_hvq3nleqQEYatH9V_Gfep39jMzaFJRSN2ioA0PFq-Q/edit#
- description: Regular SIG Meeting
day: Thursday
time: "9:00"
@@ -2531,8 +2607,8 @@ sigs:
- name: sig-storage-test-failures
description: Test Failures and Triage
liaison:
- github: parispittman
- name: Paris Pittman
+ github: cpanato
+ name: Carlos Tadeu Panato Jr.
subprojects:
- name: external-storage
owners:
@@ -2613,6 +2689,9 @@ sigs:
- github: BenTheElder
name: Benjamin Elder
company: Google
+ - github: michelle192837
+ name: Michelle Shepardson
+ company: Google
- github: spiffxp
name: Aaron Crickenberger
company: Google
@@ -2626,9 +2705,15 @@ sigs:
- github: alvaroaleman
name: Alvaro Aleman
company: Red Hat
+ - github: aojea
+ name: Antonio Ojea
+ company: Google
- github: cjwagner
name: Cole Wagner
company: Google
+ - github: pohly
+ name: Patrick Ohly
+ company: Intel
emeritus_leads:
- github: fejta
name: Erick Fejta
@@ -2652,8 +2737,8 @@ sigs:
- name: sig-testing-pr-reviews
description: PR Reviews
liaison:
- github: parispittman
- name: Paris Pittman
+ github: cpanato
+ name: Carlos Tadeu Panato Jr.
subprojects:
- name: boskos
description: |
@@ -2665,14 +2750,14 @@ sigs:
description: |
An experimental e2e testing framework for Kubernetes clusters.
owners:
- - https://raw.githubusercontent.com/kubernetes-sigs/e2e-framework/master/OWNERS
+ - https://raw.githubusercontent.com/kubernetes-sigs/e2e-framework/main/OWNERS
- name: kind
description: |
Kubernetes IN Docker. Run Kubernetes test clusters on your local machine using Docker containers as nodes.
contact:
slack: kind
owners:
- - https://raw.githubusercontent.com/kubernetes-sigs/kind/master/OWNERS
+ - https://raw.githubusercontent.com/kubernetes-sigs/kind/main/OWNERS
- name: kubetest2
description: |
Kubetest2 is the framework for launching and running end-to-end tests on kubernetes.
@@ -2802,8 +2887,8 @@ sigs:
- name: sig-usability-proposals
description: Design Proposals
liaison:
- github: dims
- name: Davanum Srinivas
+ github: palnabarun
+ name: Nabarun Pal
subprojects:
- name: sig-usability
owners:
@@ -2872,8 +2957,8 @@ sigs:
- name: sig-windows-misc
description: General Discussion
liaison:
- github: liggitt
- name: Jordan Liggitt
+ github: BenTheElder
+ name: Benjamin Elder
subprojects:
- name: windows-gmsa
owners:
@@ -2925,8 +3010,8 @@ workinggroups:
slack: wg-api-expression
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression
liaison:
- github: liggitt
- name: Jordan Liggitt
+ github: BenTheElder
+ name: Benjamin Elder
- dir: wg-batch
name: Batch
mission_statement: >
@@ -2951,7 +3036,7 @@ workinggroups:
company: Google
- github: endocrimes
name: Danielle Lancashire
- company: VMware
+ company: Independent
- github: soltysh
name: Maciej Szulik
company: Red Hat
@@ -3098,8 +3183,8 @@ workinggroups:
slack: wg-multitenancy
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-multitenancy
liaison:
- github: liggitt
- name: Jordan Liggitt
+ github: BenTheElder
+ name: Benjamin Elder
- dir: wg-policy
name: Policy
mission_statement: >
@@ -3204,8 +3289,8 @@ workinggroups:
meetings:
- description: Regular Meeting
day: Thursday
- time: "14:30"
- tz: UTC
+ time: "15:30"
+ tz: London-UK
frequency: biweekly
url: https://zoom.us/j/96716142646?pwd=VmgrN29sbmhDREp3R0NtZlpGSlZ4Zz09
archive_url: https://docs.google.com/document/d/1R9bZ34L9vR1ftH0dFeOp-j50lLh5ijKVwwXJ3LDrY4I/edit?usp=sharing
@@ -3214,8 +3299,8 @@ workinggroups:
slack: wg-structured-logging
mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-structured-logging
liaison:
- github: dims
- name: Davanum Srinivas
+ github: palnabarun
+ name: Nabarun Pal
usergroups:
- dir: ug-big-data
name: Big Data
@@ -3301,18 +3386,18 @@ committees:
label: code-of-conduct
leadership:
chairs:
+ - github: detiber
+ name: Jason DeTiberus
+ company: Cisco
- github: endocrimes
name: Danielle Lancashire
- company: VMware
+ company: Independent
- github: hlipsig
name: Hilliary Lipsig
company: RedHat
- github: jeremyrickard
name: Jeremy Rickard
company: Microsoft
- - github: palnabarun
- name: Nabarun Pal
- company: VMware
- github: salaxander
name: Xander Grzywinski
company: Microsoft
@@ -3331,6 +3416,8 @@ committees:
name: Jaice Singer DuMars
- github: karenhchu
name: Karen Chu
+ - github: palnabarun
+ name: Nabarun Pal
- github: parispittman
name: Paris Pittman
- github: tashimi
@@ -3408,24 +3495,24 @@ committees:
label: steering
leadership:
chairs:
+ - github: BenTheElder
+ name: Benjamin Elder
+ company: Google
- github: cblecker
name: Christoph Blecker
company: Red Hat
- - github: dims
- name: Davanum Srinivas
- company: VMware
+ - github: cpanato
+ name: Carlos Tadeu Panato Jr.
+ company: Chainguard, Inc
- github: justaugustus
name: Stephen Augustus
company: Cisco
- - github: liggitt
- name: Jordan Liggitt
- company: Google
- github: mrbobbytables
name: Bob Killen
company: Google
- - github: parispittman
- name: Paris Pittman
- company: Apple
+ - github: palnabarun
+ name: Nabarun Pal
+ company: VMware
- github: tpepper
name: Tim Pepper
company: VMware
diff --git a/wg-api-expression/README.md b/wg-api-expression/README.md
index 0e8abd94..e2ed0967 100644
--- a/wg-api-expression/README.md
+++ b/wg-api-expression/README.md
@@ -30,7 +30,7 @@ Enable API authors to better serve API consumers, by improving and documenting a
- Slack: [#wg-api-expression](https://kubernetes.slack.com/messages/wg-api-expression)
- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression)
- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/wg%2Fapi-expression)
-- Steering Committee Liaison: Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**)
+- Steering Committee Liaison: Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**)
<!-- BEGIN CUSTOM CONTENT -->
## Full Mission Statement
diff --git a/wg-batch/README.md b/wg-batch/README.md
index d25d89d9..2f884897 100644
--- a/wg-batch/README.md
+++ b/wg-batch/README.md
@@ -28,7 +28,7 @@ The [charter](charter.md) defines the scope and governance of the Batch Working
* Wei Huang (**[@Huang-Wei](https://github.com/Huang-Wei)**), Apple
* Abdullah Gharaibeh (**[@ahg-g](https://github.com/ahg-g)**), Google
-* Danielle Lancashire (**[@endocrimes](https://github.com/endocrimes)**), VMware
+* Danielle Lancashire (**[@endocrimes](https://github.com/endocrimes)**), Independent
* Maciej Szulik (**[@soltysh](https://github.com/soltysh)**), Red Hat
* Swati Sehgal (**[@swatisehgal](https://github.com/swatisehgal)**), Red Hat
diff --git a/wg-multitenancy/README.md b/wg-multitenancy/README.md
index fc5493d5..f0af114d 100644
--- a/wg-multitenancy/README.md
+++ b/wg-multitenancy/README.md
@@ -37,7 +37,7 @@ Define the models of multitenancy that Kubernetes will support. Discuss and exec
- Slack: [#wg-multitenancy](https://kubernetes.slack.com/messages/wg-multitenancy)
- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-wg-multitenancy)
- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/wg%2Fmultitenancy)
-- Steering Committee Liaison: Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**)
+- Steering Committee Liaison: Benjamin Elder (**[@BenTheElder](https://github.com/BenTheElder)**)
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
diff --git a/wg-structured-logging/README.md b/wg-structured-logging/README.md
index 9da2a96d..c2a233cd 100644
--- a/wg-structured-logging/README.md
+++ b/wg-structured-logging/README.md
@@ -24,7 +24,7 @@ The [charter](charter.md) defines the scope and governance of the Structured Log
## Meetings
*Joining the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-wg-structured-logging) for the group will typically add invites for the following meetings to your calendar.*
-* Regular Meeting: [Thursdays at 14:30 UTC](https://zoom.us/j/96716142646?pwd=VmgrN29sbmhDREp3R0NtZlpGSlZ4Zz09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=14:30&tz=UTC).
+* Regular Meeting: [Thursdays at 15:30 London-UK](https://zoom.us/j/96716142646?pwd=VmgrN29sbmhDREp3R0NtZlpGSlZ4Zz09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=15:30&tz=London-UK).
* [Meeting notes and Agenda](https://docs.google.com/document/d/1R9bZ34L9vR1ftH0dFeOp-j50lLh5ijKVwwXJ3LDrY4I/edit?usp=sharing).
* [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP2GY3so1z2Cnkvkt5A_x1Aw).
@@ -37,7 +37,7 @@ The [charter](charter.md) defines the scope and governance of the Structured Log
- Slack: [#wg-structured-logging](https://kubernetes.slack.com/messages/wg-structured-logging)
- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-wg-structured-logging)
- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/wg%2Fstructured-logging)
-- Steering Committee Liaison: Davanum Srinivas (**[@dims](https://github.com/dims)**)
+- Steering Committee Liaison: Nabarun Pal (**[@palnabarun](https://github.com/palnabarun)**)
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->