diff --git a/generator/aliases.tmpl b/generator/aliases.tmpl
index 32c71cc6f..e8c6d4abd 100644
--- a/generator/aliases.tmpl
+++ b/generator/aliases.tmpl
@@ -1,13 +1,16 @@
aliases:
{{- range .Sigs}}
{{.Dir}}-leads:
- {{- range .Leads}}
+ {{- range .Leadership.Chairs}}
+ - {{.GitHub}}
+ {{- end}}
+ {{- range .Leadership.TechnicalLeads}}
- {{.GitHub}}
{{- end}}
{{- end}}
{{- range .WorkingGroups}}
{{.Dir}}-leads:
- {{- range .Leads}}
+ {{- range .Leadership.Chairs}}
- {{.GitHub}}
{{- end}}
{{- end}}
diff --git a/generator/app.go b/generator/app.go
index 2c96eaf86..3a861e282 100644
--- a/generator/app.go
+++ b/generator/app.go
@@ -52,9 +52,8 @@ var (
templateDir = "generator"
)
-// Lead represents a lead engineer for a particular group. There are usually
-// 2 per group.
-type Lead struct {
+// Person represents an individual person holding a role in a group.
+type Person struct {
Name string
Company string
GitHub string
@@ -85,7 +84,7 @@ type GithubTeams struct {
Description string
}
-// Subproject represenst a specific subproject owned by the group
+// Subproject represents a specific subproject owned by the group
type Subproject struct {
Name string
Description string
@@ -93,14 +92,20 @@ type Subproject struct {
Meetings []Meeting
}
+// LeadershipGroup represents the different groups of leaders within a group
+type LeadershipGroup struct {
+ Chairs []Person
+ TechnicalLeads []Person `yaml:"tech_leads"`
+ EmeritusLeads []Person `yaml:"emeritus_leads"`
+}
+
// Group represents either a Special Interest Group (SIG) or a Working Group (WG)
type Group struct {
Name string
Dir string
MissionStatement string `yaml:"mission_statement"`
Label string
- Leads []Lead
- EmeritusLeads []Lead `yaml:"emeritus_leads"`
+ Leadership LeadershipGroup `yaml:"leadership"`
Meetings []Meeting
Contact Contact
Subprojects []Subproject
diff --git a/generator/list.tmpl b/generator/list.tmpl
index 200f73f9a..d09989da2 100644
--- a/generator/list.tmpl
+++ b/generator/list.tmpl
@@ -13,10 +13,10 @@ When the need arises, a [new SIG can be created](sig-creation-procedure.md)
### Master SIG List
-| Name | Label | Leads | Contact | Meetings |
-|------|--------|-------|---------|----------|
+| Name | Label | Chairs | Contact | Meetings |
+|------|-------|--------|---------|----------|
{{- range .Sigs}}
-|[{{.Name}}]({{.Dir}}/README.md)|{{.Label}}|{{range .Leads}}* [{{.Name}}](https://github.com/{{.GitHub}}){{if .Company}}, {{.Company}}{{end}}
{{end}}|* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})
* [Mailing List]({{.Contact.MailingList}})|{{- range .Meetings -}}
+|[{{.Name}}]({{.Dir}}/README.md)|{{.Label}}|{{range .Leadership.Chairs}}* [{{.Name}}](https://github.com/{{.GitHub}}){{if .Company}}, {{.Company}}{{end}}
{{end}}|* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})
* [Mailing List]({{.Contact.MailingList}})|{{- range .Meetings -}}
* {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
{{- end -}}
{{- range .Subprojects -}}
@@ -32,5 +32,5 @@ When the need arises, a [new SIG can be created](sig-creation-procedure.md)
| Name | Organizers | Contact | Meetings |
|------|------------|---------|----------|
{{- range .WorkingGroups}}
-|[{{.Name}}]({{.Dir}}/README.md)|{{range .Leads}}* [{{.Name}}](https://github.com/{{.GitHub}}){{if .Company}}, {{.Company}}{{end}}
{{end}}|* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})
* [Mailing List]({{.Contact.MailingList}})|{{range .Meetings}}* {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
{{end}}
+|[{{.Name}}]({{.Dir}}/README.md)|{{range .Leadership.Chairs}}* [{{.Name}}](https://github.com/{{.GitHub}}){{if .Company}}, {{.Company}}{{end}}
{{end}}|* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})
* [Mailing List]({{.Contact.MailingList}})|{{range .Meetings}}* {{.Description}}: [{{.Day}}s at {{.Time}} {{.TZ}} ({{.Frequency}})]({{.URL}})
{{end}}
{{- end }}
diff --git a/generator/sig_readme.tmpl b/generator/sig_readme.tmpl
index 95419750b..59bf440c1 100644
--- a/generator/sig_readme.tmpl
+++ b/generator/sig_readme.tmpl
@@ -1,5 +1,5 @@
{{- template "header" }}
-# {{.Name}} SIG
+# {{.Name}} Special Interest Group
{{ .MissionStatement }}
{{ if .Meetings }}## Meetings
@@ -13,18 +13,35 @@
{{- end }}
{{- end }}
-{{ end -}}
-## Leads
-{{- range .Leads }}
+{{- end }}
+{{- if .Leadership }}
+
+## Leadership
+{{- if .Leadership.Chairs }}
+
+### Chairs
+The Chairs of the SIG run operations and processes governing the SIG.
+{{ range .Leadership.Chairs }}
* {{.Name}} (**[@{{.GitHub}}](https://github.com/{{.GitHub}})**){{if .Company}}, {{.Company}}{{end}}
{{- end }}
-{{- if .EmeritusLeads }}
+{{- end }}
+{{- if .Leadership.TechnicalLeads }}
+
+### Technical Leads
+The Technical Leads of the SIG establish new subprojects, decommission existing
+subprojects, and resolve cross-subproject technical issues and decisions.
+{{ range .Leadership.TechnicalLeads }}
+* {{.Name}} (**[@{{.GitHub}}](https://github.com/{{.GitHub}})**){{if .Company}}, {{.Company}}{{end}}
+{{- end }}
+{{- end }}
+{{- if .Leadership.EmeritusLeads }}
## Emeritus Leads
-{{- range .EmeritusLeads }}
+{{ range .Leadership.EmeritusLeads }}
* {{.Name}} (**[@{{.GitHub}}](https://github.com/{{.GitHub}})**){{if .Company}}, {{.Company}}{{end}}
{{- end }}
{{- end }}
+{{- end }}
## Contact
* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})
diff --git a/generator/wg_readme.tmpl b/generator/wg_readme.tmpl
index c13818274..28c5bbd10 100644
--- a/generator/wg_readme.tmpl
+++ b/generator/wg_readme.tmpl
@@ -13,11 +13,16 @@
{{- end }}
{{- end }}
-{{ end -}}
+{{- end }}
+{{- if .Leadership }}
+{{- if .Leadership.Chairs }}
+
## Organizers
-{{- range .Leads }}
+{{ range .Leadership.Chairs }}
* {{.Name}} (**[@{{.GitHub}}](https://github.com/{{.GitHub}})**){{if .Company}}, {{.Company}}{{end}}
{{- end }}
+{{- end }}
+{{- end }}
## Contact
* [Slack](https://kubernetes.slack.com/messages/{{.Contact.Slack}})