Giter Club home page Giter Club logo

bicep-dev-box's Introduction

Dev Box

Microsoft Dev Box is an Azure service that gives developers access to ready-to-code, project-specific dev boxes that are preconfigured and centrally managed. Support hybrid dev teams of any size with high-performance, cloud-based workstations, and let developers focus on writing code by streamlining access to the tools they need.

This repository contains the infra-as-code components to quickly scaffold a new Microsoft Dev Box environment.

Please note these artifacts are under development and subject to change.


Getting Started

Before deploying the Dev Box resources, update the parameters file src/parameters/main.bicepparam.

Using locally with Bash

./eng/deploy.sh -s "{GUID}"
./eng/deploy.sh -s "{GUID}"

To override the default parameters file, use the -p {FilePath} parameter.

Using locally with PowerShell

./eng/deploy.ps1 -SubscriptionId "{GUID}"
./eng/delete.ps1 -SubscriptionId "{GUID}"

To override the default config file, use the -ConfigFile {FilePath} parameter.

Using with GitHub Actions

Azure Active Directory - Application

  • Navigate to the 'App Registration' blade wihin the Azure portal
  • Select 'New registration' and provide a Name for the application
  • Select the newly created application and select 'Certificates & secrets'
  • Select 'Federated Credentials' and 'Add credential'
  • Provide the 'Organization (username)' and Repository for the credential
  • Select 'Entity type' - Branch and provide 'main'
  • Repeat process for 'Entity type' - Pull Request

Azure Resource Manager - Role Assignment

  • Navigate to the Subscription in the Azure portal
  • Select 'Access control (IAM)' and 'Add' - 'Add role assignment'
  • Select Role - Contributor and select 'Members'
  • Provide the 'Name' of the application from the previous steps

GitHub Actions - Secrets

  • Navigate to 'Settings' on the repository
  • Select 'Secrets' and 'Actions' link
  • Select 'New repository secret' and create secrets for the following:
    • AZURE_TENANT_ID
    • AZURE_SUBSCRIPTION_ID
    • AZURE_CLIENT_ID

Authentication

After deploying the Azure resources, permission needs to be provided to allow users to access Dev Box.

Azure Resource Manager

  • Navigate to the DevCenter Project resource in the Azure Portal
  • Select 'Access control (IAM)' and 'Add' - 'Add role assignment'
  • Select Role 'DevCenter Dev Box User' and select Members
  • Provide the 'Name' of the User / Groups to allow access to the Dev Box portal

Deployed Resources

  • Virtual Network
  • Network Security Group
  • Compute Gallery
  • Managed Identity
  • DevCenter
  • DevCenter Network Connection
  • DevCenter Definitions
  • DevCenter Project
  • DevCenter Pools

Links

bicep-dev-box's People

Contributors

dependabot[bot] avatar ljtill avatar

Stargazers

 avatar

Watchers

 avatar

bicep-dev-box's Issues

fix: compute galleries

The following template validation error is displayed every time the 'Microsoft.DevCenter/devcenters/galleries' is enabled.

{
    "code": "InvalidTemplateDeployment",
    "message": "The template deployment 'Microsoft.Deployment' is not valid according to the validation procedure. The tracking id is ''. See inner errors for details."
},
{
    "code": "TemplateDeploymentValidationFailed",
    "message": "Validation failed for 'Microsoft.DevCenter/networkconnections'."
}

fix: resource tags

  • Resource Group scope should implement tags object from configs
  • Resource scope not entirely wired up to Bicep components

Bug - Template Validation

Github Action "Deploy" results in:

ERROR: {"code": "InvalidTemplate", "message": "Deployment template validation failed: 'The resource 'subscriptions/***/resourceGroups/providers/Microsoft.Resources/deployments/Microsoft.ManagedIdentity' is not defined in the template. Please see https://aka.ms/arm-syntax for usage details.'.", "additionalInfo": [{"type": "TemplateViolation", "info": {"lineNumber": 0, "linePosition": 0, "path": ""}}]}

feat: skus

Dynamically update list of available sku's

feat: parameters

Replace template .json parameter file with native .bicepparam syntax.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.