Skip to content

Teams

Teams are defined via the Team Custom Resource Definition. Teams can be used to define the ownership for applications and to grant users access to several resources.

You can access all teams / the teams you are allowed to see via the teams page.

Teams

Specification

In the following you can found the specification for the Team CRD.

Field Type Description Required
id string The id of the team. This value is also used for the refrence in Applications and User CRs. Yes
description string A description for the team. No
links []Link A list of links (e.g. a link to the teams Slack channel, Confluence page, etc.) No
logo string The logo for the team. Must be a path to an image file. No
permissions Permissions Permissions for the team when the authentication / authorization middleware is enabled. No
dashboards []Dashboard A list of dashboards which will be shown on the team page. No
Field Type Description Required
title string Title for the link. Yes
link string The actuall link. Yes

Example

The following CR creates a team with the id product-cloudpunk@kobs.io. The details page for the team contains a dashboard, which shows the applications owned by the team, the teams open Opsgenie alerts and the team current sprint.

In the CR we also define that every member of the team can view all applications, teams and all resources from the backend, notes, mediaserver and media-analytics namespace.

Team
---
apiVersion: kobs.io/v1
kind: Team
metadata:
  name: team-cloudpunk
  namespace: kobs
spec:
  id: product-cloudpunk@kobs.io
  description: Team Cloudpunk - the media handlers.
  links:
    - title: Slack
      link: https://slack.com
    - title: GitHub
      link: https://github.com
    - title: Confluence
      link: https://atlassian.net

  dashboards:
    - namespace: kobs
      name: overview-team
      title: Overview
      placeholders:
        team: "<% $.id %>"
        jira: CLP
        opsgenie: Team Cloudpunk

  permissions:
    applications:
      - type: all
    teams:
      - "*"
    plugins:
      - cluster: "*"
        name: "*"
        type: "*"
    resources:
      - clusters:
          - "*"
        namespaces:
          - "backend"
          - "notes"
          - "mediaserver"
          - "media-analytics"
        resources:
          - "*"
        verbs:
          - "*"
Dashboard
---
apiVersion: kobs.io/v1
kind: Dashboard
metadata:
  name: overview-team
  namespace: kobs
spec:
  placeholders:
    - name: team
    - name: jira
    - name: opsgenie
  hideToolbar: true
  rows:
    - panels:
        - title: Applications
          plugin:
            type: core
            name: applications
            options:
              team: "{% .team %}"
          h: 16
          w: 6
          x: 0
          'y': 0
        - title: Open Alerts
          plugin:
            type: opsgenie
            cluster: hub
            name: opsgenie
            options:
              interval: 31536000
              queries:
                - 'status: open AND responders: "{% .opsgenie %}"'
              type: alerts
          h: 8
          w: 6
          x: 6
          'y': 0
        - title: Current Sprint
          plugin:
            type: jira
            cluster: hub
            name: jira
            options:
              jql: >-
                project = {% .jira %} and sprint in openSprints() order by
                updatedDate
          h: 8
          w: 6
          x: 6
          'y': 8

Team Details