diff options
| author | Katharine Berry <ktbry@google.com> | 2019-04-11 15:59:24 -0700 |
|---|---|---|
| committer | Katharine Berry <ktbry@google.com> | 2019-04-11 16:14:45 -0700 |
| commit | 6021ede2d8db897adb106f3dc3e27f3296c3e6ca (patch) | |
| tree | bd03ec653ba1c10d0e403bd755b53176e7306f80 | |
| parent | 3fe7999cbf04864ef2b5bd49c38f190648edddab (diff) | |
Add initial slack config
| -rw-r--r-- | communication/slack-config/OWNERS | 14 | ||||
| -rw-r--r-- | communication/slack-config/README.md | 64 | ||||
| -rw-r--r-- | communication/slack-config/channels.yaml | 297 | ||||
| -rw-r--r-- | communication/slack-config/restrictions.yaml | 13 | ||||
| -rw-r--r-- | communication/slack-config/template.yaml | 8 | ||||
| -rw-r--r-- | communication/slack-config/usergroups.yaml | 5 | ||||
| -rw-r--r-- | communication/slack-config/users.yaml | 4 |
7 files changed, 405 insertions, 0 deletions
diff --git a/communication/slack-config/OWNERS b/communication/slack-config/OWNERS new file mode 100644 index 00000000..3c7f7c07 --- /dev/null +++ b/communication/slack-config/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# These are the primary slack moderators. +approvers: +- katharine +- castrojo +- jeefy +- mrbobbytables +- alejandrox1 +- jdumars +- parispitmann +- coderanger +- idvoretskyi +- idealhack diff --git a/communication/slack-config/README.md b/communication/slack-config/README.md new file mode 100644 index 00000000..152ae321 --- /dev/null +++ b/communication/slack-config/README.md @@ -0,0 +1,64 @@ +# Slack Config + +YAML files in this directory control the state of Slack, via +[Tempelis](Tempelis). Updating a configuration file will result in Slack being updated +once the change merges. If a change is not legal, a presubmit will fail. + +## Users + +There is no safe, stable way to derive a specific Slack user from any +human-readable identifier. Instead of using Slack IDs everywhere, a single +mapping from GitHub usernames to Slack IDs is given in `users.yaml`. To reference +a user, they must first be added to `users.yaml`. + +## Channels + +Channels can be created by adding a new channel in `channels.yaml`. Channels +should be sorted alphabetically. New channels will be created in accordance +with the template specified in `template.yaml`. + +Deleting channels is not permitted, but a channel can be archived by specifying +`archived: true`, or unarchived by removing it (or specifying `false`). + +To rename a channel, set its `id` property to its current Slack ID, then change +the name. + +A fully-specified channel looks like this: + +```yaml +- name: slack-admins # mandatory + id: C4M06S5HS # optional except when renaming + archived: false # optional for unarchived channels +``` + +## Usergroups + +Usergroups are pingable Slack groups. All members of a usergroup can be +automatically added to certain channels. A usergroup must have at least one +member. A usergroup can be removed by deleting it from the configuration. + +Some usergroups (e.g. `@test-infra-oncall`) are managed by other tooling. To +prevent Tempelis from trying to deactivate these usergroups, they can be included +on the list and marked as `external: true`. Other usergroups should look like +this: + +```yaml +- name: slack-admins # mandatory, the pingable handle + long_name: Slack Admins # mandatory, the human-readable name + description: Slack Admin Group # mandatory, a description + channels: # optional, a list of channels for members to auto-join + - slack-admins + members: # mandatory, a list of at least one member. + - castrojo # member names must be listed in users.yaml. + - katharine + - jeefy + - mrbobbytables + - alejandrox1 + - jdumars + - parispitmann + - coderanger + - idvoretskyi + - idealhack +``` + +[Tempelis]: https://github.com/kubernetes-sigs/slack-infra/tree/master/tempelis diff --git a/communication/slack-config/channels.yaml b/communication/slack-config/channels.yaml new file mode 100644 index 00000000..ef6ac18e --- /dev/null +++ b/communication/slack-config/channels.yaml @@ -0,0 +1,297 @@ +# This list contains a list of all Slack channels in alphabetical order. +# This includes archived channels, which are marked with `archived: true`. + +channels: + - name: airflow-operator + - name: announcements + - name: apisnoop + - name: archived-sig-release + archived: true + - name: argentina + - name: arm64 + - name: aus-nz-users + - name: awesome-kubernetes + - name: aws-authenticator + - name: bazel + - name: bootkube + - name: brigade + - name: cdk + - name: cert-manager + - name: cert-manager-dev + - name: chairs-and-techleads + - name: chartmuseum + - name: charts + - name: cka-exam-prep + - name: ckad-exam-prep + - name: client-go-docs + - name: cluster-addons + - name: cluster-api + - name: cluster-api-aws + - name: cluster-api-azure + - name: cluster-api-baremetal + - name: cluster-api-openstack + - name: cn-dev + - name: cn-events + - name: cn-users + - name: community-sites + - name: compliance-hipaa + - name: contour + - name: contributor-summit + - name: crd-installation + - name: crio + - name: de-events + - name: de-users + - name: deis-dev + - name: deis-users + - name: devstats + - name: digitalocean-k8s + - name: diversity + - name: draft-dev + - name: draft-users + - name: eks + - name: elastickube + - name: elk-charts + - name: emea-dev + - name: emea-users + - name: es-users + - name: etcd + - name: etcdadm + - name: events + - name: external-dns + - name: fi-users + - name: fr-events + - name: fr-users + - name: gardener + - name: gimbal + - name: github + archived: true + - name: gitkube + - name: gitops + - name: gke + - name: gloo + - name: gsoc-apps + - name: helm-deprecated + archived: true + - name: helm-dev + - name: helm-users + - name: il-users + - name: in-dev + - name: in-events + - name: in-users + - name: ingress-nginx + - name: it-events + - name: it-users + - name: java + - name: jenkins-ci + - name: jenkins-x-dev + - name: jenkins-x-user + - name: jp-events + - name: jp-users + - name: jsonnet + - name: k14s + - name: k8s-code-organization + - name: k8s-conformance + - name: k8s-dual-stack + - name: k8s-release + archived: true + - name: kapitan + - name: keel + - name: kiam + - name: kind + - name: klog + - name: knative + - name: kompose + - name: kong + - name: kops-dev + - name: kops-users + - name: kr-users + - name: kraken + - name: krane + - name: krex + - name: kube-aws + - name: kube-deploy + - name: kube-monkey + - name: kube-router + - name: kube-spawn + - name: kubeadm + - name: kubeapps + - name: kubebuilder + - name: kubecon + - name: kubectl-trace + - name: kubedb + - name: kubekhan + archived: true + - name: kubeless + - name: kubepack + - name: kuberhealthy + - name: kubernetes-batch-jobs + - name: kubernetes-careers + - name: kubernetes-client + - name: kubernetes-dev + - name: kubernetes-docs-de + - name: kubernetes-docs-es + - name: kubernetes-docs-fr + - name: kubernetes-docs-it + - name: kubernetes-docs-ja + - name: kubernetes-docs-ko + - name: kubernetes-docs-zh + - name: kubernetes-novice + - name: kubernetes-operators + - name: kubernetes-ruby + - name: kubernetes-security + - name: kubernetes-teachers + - name: kubernetes-users + - name: kubespray + - name: kubespray-dev + - name: kubicorn + - name: kudo + - name: kustomize + - name: leadership-summit + - name: linode + - name: malaysia-users + - name: malta-users + - name: meet-our-contributors + - name: meetup-athens + - name: meetup-austin + - name: meetup-bayarea + - name: meetup-boston + - name: meetup-dfw + - name: meetup-guatemala + - name: meetup-hannover + - name: meetup-hongkong + - name: meetup-losangeles + - name: meetup-manchester + - name: meetup-minneapolis + - name: meetup-nyc + - name: meetup-pittsburgh + - name: meetup-sacramento + - name: meetup-sanantonio + - name: meetup-sandiego + - name: meetup-seattle + - name: meetup-trondheim + - name: meetup-tunisia + - name: metacontroller + - name: metallb + - name: microk8s + - name: minikube + - name: monitoring-mixins + - name: monolith + - name: multi-platform + - name: mysql-operator + - name: navigator + - name: nl-users + - name: norw-users + - name: office-hours + - name: opencontainers + - name: openshift-dev + - name: openshift-users + - name: openstack-helm + - name: openstack-kolla + - name: ops-status + - name: osbkit + - name: pharmer + - name: pl-users + - name: pr-reviews + - name: prometheus + - name: prometheus-operator + - name: provider-centurylink + - name: prow + - name: pt_br-users + - name: rancher + - name: random + archived: true + - name: rktnetes + - name: ro-users + - name: ru-users + - name: se-users + - name: ship + - name: shippable + - name: shipper + - name: shoutouts + - name: sig-api-machinery + - name: sig-apps + - name: sig-architecture + - name: sig-auth + - name: sig-autoscaling + - name: sig-aws + - name: sig-azure + - name: sig-big-data + - name: sig-cli + - name: sig-cloud-provider + - name: sig-clstr-life-leads + - name: sig-cluster-lifecycle + - name: sig-cluster-ops + archived: true + - name: sig-configuration + archived: true + - name: sig-contribex + - name: sig-docs + - name: sig-docs-maintainers + - name: sig-docs-modeling + - name: sig-docs-release + - name: sig-docs-security + - name: sig-docs-tools + - name: sig-gcp + - name: sig-high-availability + archived: true + - name: sig-ibmcloud + - name: sig-instrumentation + - name: sig-multicluster + - name: sig-network + - name: sig-node + - name: sig-node-rkt + - name: sig-openstack + - name: sig-pm + - name: sig-release + - name: sig-scalability + - name: sig-scheduling + - name: sig-service-catalog + - name: sig-storage + - name: sig-testing + - name: sig-ui + - name: sig-vmware + - name: sig-windows + - name: skaffold + - name: slack-admins + - name: sonobuoy + - name: spark-operator + - name: spinnaker + - name: sre + - name: summit-staff + - name: suse-caasp + - name: talk-proposals + - name: testing-commons + - name: testing-ops + - name: tilt + - name: tn-users + - name: tor-controller + - name: tr-events + - name: tr-users + - name: traefik + - name: travis-ci + - name: tw-users + - name: velero + - name: virtlet + - name: virtual-kubelet + - name: virtualization + - name: vsphere + archived: true + - name: wg-app-def + archived: true + - name: wg-apply + - name: wg-component-standard + - name: wg-csi + - name: wg-csi-migration + - name: wg-iot-edge + - name: wg-k8s-infra + - name: wg-lts + - name: wg-machine-learning + - name: wg-multitenancy + - name: wg-onprem + archived: true + - name: wg-policy + - name: wg-resource-mgmt + - name: wg-security-audit + - name: wg-virtual-kubelet + archived: true + - name: workshop-chat diff --git a/communication/slack-config/restrictions.yaml b/communication/slack-config/restrictions.yaml new file mode 100644 index 00000000..f30acbaa --- /dev/null +++ b/communication/slack-config/restrictions.yaml @@ -0,0 +1,13 @@ +restrictions: + - path: users.yaml + users: true + - path: channels.yaml + channels: + - ".*" + template: true + - path: usergroups.yaml + usergroups: + - ".*" + - path: template.yaml + template: true + - path: "**/*" # prevent any other file from containing anything diff --git a/communication/slack-config/template.yaml b/communication/slack-config/template.yaml new file mode 100644 index 00000000..eeaee8c0 --- /dev/null +++ b/communication/slack-config/template.yaml @@ -0,0 +1,8 @@ +# This template will be used whenever Tempelis creates a new channel. +channel_template: + # topic: none + # purpose: none + pins: + - >- + This channel abides to the Kubernetes Code of Conduct - http://git.k8s.io/community/code-of-conduct.md + Contact conduct@kubernetes.io or an admin in the #slack-admins channel if there is a problem. diff --git a/communication/slack-config/usergroups.yaml b/communication/slack-config/usergroups.yaml new file mode 100644 index 00000000..8506bbae --- /dev/null +++ b/communication/slack-config/usergroups.yaml @@ -0,0 +1,5 @@ +# This file contains a list of all Slack usergroups that exist. + +usergroups: + - name: test-infra-oncall + external: true diff --git a/communication/slack-config/users.yaml b/communication/slack-config/users.yaml new file mode 100644 index 00000000..ab2540d7 --- /dev/null +++ b/communication/slack-config/users.yaml @@ -0,0 +1,4 @@ +# This file contains a mapping from lowercase GitHub usernames to Kubernetes +# Slack user IDs. +users: + katharine: UBTBNJ6GL |
