Skip to main content

User Management

DevOpsGenie provides centralized identity and access management across all clusters, environments, and cloud accounts. This page covers how users, teams, and service accounts are provisioned, authenticated, and authorized.

Authentication

DevOpsGenie supports two authentication providers:

ProviderProtocolRecommended For
OktaOIDC / SAML 2.0Enterprise — existing Okta deployment
Azure AD (Entra ID)OIDC / SAML 2.0Microsoft 365 organizations
Google WorkspaceOIDCGCP-primary organizations
GitHubOAuth 2.0Developer-first teams
Local accountsUsername + passwordDevelopment / evaluation only

Configuring Okta SSO

devopsgenie.yaml
auth:
provider: okta
okta:
domain: devopsgenie.okta.com
clientId: "0oa..."
# Store clientSecret in Secrets Manager — never in plain config
clientSecretRef:
secretName: okta-credentials
key: client-secret
sessionDuration: 8h
requireMfa: true

Authorization — RBAC Model

DevOpsGenie uses a three-tier RBAC model:

Organization
└── Teams
└── Namespaces / Environments

Platform Roles

RoleScopeCapabilities
platform-adminOrganizationFull access — provision clusters, manage policies, view all
cluster-adminClusterManage node groups, add-ons, and cluster-scoped resources
team-leadTeam namespacesManage workloads, view secrets, configure alerts
developerTeam namespacesDeploy workloads, read logs, port-forward, exec into pods
readonlyTeam namespacesRead-only across all resources
ci-deployerTeam namespacesCreate/update Deployments and ConfigMaps only (for CI pipelines)

Assigning Roles

# Assign a user to the developer role in the payments namespace
devopsgenie rbac assign \
--user alice@devopsgenie.io \
--role developer \
--namespace team-payments

# Assign an entire team
devopsgenie rbac assign \
--team payments-engineering \
--role developer \
--namespace team-payments

# View current assignments
devopsgenie rbac list --namespace team-payments

Kubernetes RBAC Binding (generated by DevOpsGenie)

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: developer-payments-engineering
namespace: team-payments
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: devopsgenie:developer
subjects:
- kind: Group
name: payments-engineering
apiGroup: rbac.authorization.k8s.io

Team Management

Creating a Team

devopsgenie team create payments-engineering \
--display-name "Payments Engineering" \
--cost-center "eng-payments" \
--namespace team-payments

# Add members
devopsgenie team add-member payments-engineering alice@devopsgenie.io
devopsgenie team add-member payments-engineering bob@devopsgenie.io

Team Self-Service Permissions

By default, team leads can:

  • Create and delete namespaces within their team's scope
  • Manage HPA and scaling policies for their workloads
  • View (not edit) resource quotas
  • Request quota increases (requires platform-admin approval)

Service Accounts for CI/CD

CI pipelines should use dedicated, least-privilege service accounts:

# Create a CI service account for the payments team
devopsgenie service-account create ci-payments \
--team payments-engineering \
--role ci-deployer \
--namespace team-payments \
--token-ttl 24h

# Get a short-lived token for the pipeline
devopsgenie service-account token ci-payments --duration 1h

Audit Logging

Every authentication event, RBAC binding change, and administrative action is logged:

# View recent access events
devopsgenie audit log \
--namespace team-payments \
--since 24h \
--level info

# Export audit logs to SIEM
devopsgenie audit export \
--format json \
--destination s3://devopsgenie-audit-logs/

Multi-Cluster Access

For organizations with multiple clusters, DevOpsGenie federates identity across all of them:

# Grant developer access to the staging cluster
devopsgenie rbac assign \
--user alice@devopsgenie.io \
--role developer \
--namespace team-payments \
--cluster devopsgenie-staging

# View access across all clusters
devopsgenie rbac list --user alice@devopsgenie.io --all-clusters