Skip to content

ericogr/azenv

Repository files navigation

Azure DevOps Environment Creation

Use this tool to set up an Azure DevOps Environment. An Environment is a collection of resources that can be targeted by deployments from a pipeline.

Requirements

To run this tool, you need:

  • Azure DevOps account
  • Azure DevOps PAT with the following permissions:
    • Environment (Read & manage)
    • Service Connections (Read, query, & manage)
  • For Kubernetes resources:
    • Kubernetes Cluster
    • RBAC access with the following permissions:
      • get, create and patch namespaces
      • get and create serviceaccounts
      • get and create secrets

Kubernetes Resources

For Kubernetes resources these are the resources that can be configured:

Resource Type Can use existent Notes
Environment Azure DevOps Yes -
Environment Resource Azure DevOps No it must be deleted before creating a new one
Service Connection Azure DevOps Yes -
Namespace Kubernetes Yes -
Service Account Kubernetes Yes you have to create role/clusterrole and bind to service account your own
Secret Kubernetes Yes -

NOTE: In some cases, cli will try to use existent resource before create a new one.

Kubernetes detailed permissions

To create and get some resources, cli will need some permissions. See an example of ClusterRole below:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: azenv
rules:
- apiGroups:
  - ""
  resources:
  - namespaces
  - serviceaccounts
  - secret
  verbs:
  - get
  - create
- apiGroups:
  - ""
  resources:
  - namespaces
  verbs:
  - patch

Usage example

See above an example, the fields are self-explanatory. Replace by your own values.

./azenv \
  create kubernetes \
  --pat <generate-azure-devops-pat> \
  --project <organization-name>/<project-name> \
  --name <environment-name> \
  --service-account <namespace>/<service-account-name> \
  --service-connection <service-connection-name> \
  --namespace-label label1=value1 \
  --namespace-label label2=value2 \
  --show-kubeconfig=false

About

A tool to ease the creation of Azure DevOps environments for use with your pipelines.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published