Skip to main content

Permission

The Permission CRD allows you to define individual permissions for role-based access control (RBAC) in Mission Control.

Definition

apiVersion: mission-control.flanksource.com/v1
kind: Permission
metadata:
name: example-permission
spec:
# Human-readable name of the permission
name: View Components

# Description of the permission
description: Allows viewing component details

# Resources the permission applies to
resources:
- components

# Actions allowed on the resources
verbs:
- get
- list

# User groups that have this permission
groups:
- viewers
- developers

Schema

The Permission resource supports the following fields:

FieldDescription
spec.nameHuman-readable name of the permission
spec.descriptionDescription of the permission
spec.resourcesResources the permission applies to
spec.verbsActions allowed on the resources
spec.resourceNamesSpecific resource names the permission applies to
spec.labelsLabel selectors for resources
spec.expressionCEL expression for complex permission rules
spec.groupsUser groups that have this permission
spec.usersIndividual users that have this permission

Resource Types

Common resource types include:

ResourceDescription
componentsComponent resources
canariesCanary health check resources
connectionsConnection resources
incidentsIncident resources
notificationsNotification resources
notificationsilencesNotification silence resources
playbooksPlaybook resources
topologiesTopology resources

Verbs

Allowed verbs (actions) include:

VerbDescription
getRetrieve a specific resource
listList resources
watchWatch for changes to resources
createCreate new resources
updateUpdate existing resources
patchPartially update resources
deleteDelete resources
*All actions

Examples

Basic View Permission

apiVersion: mission-control.flanksource.com/v1
kind: Permission
metadata:
name: view-components
spec:
name: View Components
description: Allows viewing component details
resources:
- components
verbs:
- get
- list
groups:
- viewers
- developers

Resource Management Permission

apiVersion: mission-control.flanksource.com/v1
kind: Permission
metadata:
name: manage-canaries
spec:
name: Manage Canaries
description: Full management of canary checks
resources:
- canaries
verbs:
- get
- list
- create
- update
- delete
groups:
- operators
users:
- sre-lead@example.com

Team-Specific Resource Permission

apiVersion: mission-control.flanksource.com/v1
kind: Permission
metadata:
name: frontend-components
spec:
name: Manage Frontend Components
description: Manage components related to the frontend
resources:
- components
verbs:
- get
- list
- update
- patch
labels:
team: frontend
groups:
- frontend-team

Specific Resource Names

apiVersion: mission-control.flanksource.com/v1
kind: Permission
metadata:
name: manage-production-db
spec:
name: Manage Production Database
description: Manage the production database component
resources:
- components
resourceNames:
- production-database
- db-replica
verbs:
- get
- update
- patch
groups:
- database-admins

Complex Expression

apiVersion: mission-control.flanksource.com/v1
kind: Permission
metadata:
name: manage-non-production
spec:
name: Manage Non-Production Resources
description: Manage resources in non-production environments
resources:
- components
- canaries
- connections
verbs:
- get
- list
- create
- update
- delete
expression: "resource.labels.environment != 'production'"
groups:
- developers
- testers

See Also