All Projects → gambtho → aks-azuredevops-agent

gambtho / aks-azuredevops-agent

Licence: Unlicense License
Self-hosted Azure DevOps Agent on Azure Kubernetes

Programming Languages

shell
77523 projects
HCL
1544 projects
Dockerfile
14818 projects
Mustache
554 projects

Projects that are alternatives of or similar to aks-azuredevops-agent

Rdbox
RDBOX is an advanced IT platform for robotics and IoT developers that highly integrates cloud-native and edge computing technologies.
Stars: ✭ 246 (+748.28%)
Mutual labels:  azure
Kinectron
Electron + Kinect + PeerJS = Kinect data broadcast to browsers
Stars: ✭ 249 (+758.62%)
Mutual labels:  azure
DurableDungeon
A game designed to teach and learn serverless durable functions in C#
Stars: ✭ 55 (+89.66%)
Mutual labels:  azure
Azure Spring Cloud Training
Guides and tutorials to make the most out of Azure Spring Cloud
Stars: ✭ 243 (+737.93%)
Mutual labels:  azure
Innereye Deeplearning
Medical Imaging Deep Learning library to train and deploy models on Azure Machine Learning and Azure Stack
Stars: ✭ 246 (+748.28%)
Mutual labels:  azure
opal
Policy and data administration, distribution, and real-time updates on top of Open Policy Agent
Stars: ✭ 459 (+1482.76%)
Mutual labels:  azure
Awesome Azure
A Curated List of Azure Resources. The list provides you with enough resources to get a full overview of the services in Azure and get started with cloud computing.
Stars: ✭ 241 (+731.03%)
Mutual labels:  azure
script-samples
A sample gallery of scripts to manage all things Microsoft 365.
Stars: ✭ 56 (+93.1%)
Mutual labels:  azure
Azure Plantuml
PlantUML sprites, macros, and other includes for Azure services
Stars: ✭ 247 (+751.72%)
Mutual labels:  azure
AnyStatus
A remote control for your CI/CD pipelines and more
Stars: ✭ 38 (+31.03%)
Mutual labels:  azure
Data Accelerator
Data Accelerator for Apache Spark simplifies onboarding to Streaming of Big Data. It offers a rich, easy to use experience to help with creation, editing and management of Spark jobs on Azure HDInsights or Databricks while enabling the full power of the Spark engine.
Stars: ✭ 247 (+751.72%)
Mutual labels:  azure
Moonglade
The .NET 5 blog system of https://edi.wang, runs on Microsoft Azure
Stars: ✭ 249 (+758.62%)
Mutual labels:  azure
azure
VM-Series ARM Templates for Microsoft Azure
Stars: ✭ 87 (+200%)
Mutual labels:  azure
Azurlshortener
An simple and easy Url Shortener
Stars: ✭ 247 (+751.72%)
Mutual labels:  azure
log2oms
A super tiny agent (binary 5MB, container 12MB) that pushs app logs to Azure Log Analytics (OMS)
Stars: ✭ 17 (-41.38%)
Mutual labels:  azure
Packer
Packer helpers and templates for Docker, IIS, SQL Server and Visual Studio on Windows and Ubuntu
Stars: ✭ 242 (+734.48%)
Mutual labels:  azure
Jazz
Platform to develop and manage serverless applications at an enterprise scale!
Stars: ✭ 254 (+775.86%)
Mutual labels:  azure
support-tickets-classification
This case study shows how to create a model for text analysis and classification and deploy it as a web service in Azure cloud in order to automatically classify support tickets. This project is a proof of concept made by Microsoft (Commercial Software Engineering team) in collaboration with Endava http://endava.com/en
Stars: ✭ 142 (+389.66%)
Mutual labels:  azure
ServerlessDeviceOfflineDetection
How to detect device status with Azure Durable Entities
Stars: ✭ 21 (-27.59%)
Mutual labels:  azure
serverless-recipes
Compendium of Serverless samples with Azure Cosmos DB
Stars: ✭ 30 (+3.45%)
Mutual labels:  azure

Azure DevOps - Self Hosted Agents on AKS

Deprecated -- please consider using https://github.com/Azure/aks-github-runner

Build Status

This repo provides instructions and configuration to setup Self Hosted Agents for Azure DevOps running on an AKS cluster. It was derived from this article by Jonathan Gardner @jgardner04, as well as a similar project by Mate Barbas using ARM templates. This project utilizes terraform and helm to provide support for a repeatable infrastructure as code approach. The process is orchestrated through an Azure DevOps (ADO) pipeline.

Setup

  1. Create an Azure DevOps (ADO) project, and clone or fork this repo into it
    • Make sure you enable the Multi-stage pipelines preview feature for your user or your org by following the directions here

  1. Create an Azure Resource Manager Service connection in Azure DevOps

  1. Run the manual setup script ./manual.sh from Azure CLI or Windows Subsystem for Linux (WSL) on your wokstation.

Syntax: ./manual.sh [-s applicationId] [-p password]

This script does the following: - Create service principal for use by terraform and AKS (optionally, you can use -s for the Application Id and -p for the spn password) - Save service principal and other provided variables in keyvault - Authorize the selected SPN in keyvault

This command will ask for your Azure subscription id, as well as the name (arbitrary string of your choice), env (arbitrary string of your choice), location (valid Azure region) for your AKS cluster, the name of your azure devops organization, name of the pool and Azure token.

  1. Create a variable group named "ado-kv" and associate it with the key vault you just created:

    • Toggle Link secrets from an Azure key vault as variables
    • Select your subscription and the key vault you created in the previous step
    • Authorize it for use in the pipelines
    • Add all the variables aviable in your key vault If authorize doesn't work, use:

    az keyvault set-policy --name VAULTNAME --spn SPNId --secret-permissions get list


  1. Create another variable group named "ado-config":
    • Add a variable named azure_sub
    • Set that value for the created variable as the name used for the Service Connection in step 2
    • Authorize it for use in the pipelines

  1. Create a pipeline using the provided YAML file ./pipeline/pipeline.yml, and run it:
    • From Azure DevOps click on Pipelines in the left navigation bar and click on Create pipeline
    • On the page Where is your code? select Azure Repos Git YAML
    • Select your repository in Azure DevOps
    • On the page Configure your pipeline select Existing Azure Pipelines YAML file and set the path to pipeline/pipeline.yml
    • Click on Continue and then on Run

Possible additions

  • Consider AAD integrated AKS cluster (not currently used, as it makes the AD permissions required a bit complex )
  • Add 2nd nodepool, with windows agents
  • Add cluster/pod autoscale

Other options

  • Use a docker hub image, and remove the need for ACR (gambtho/azure-pipeline-agent)
  • Add to azpdocker/Dockerfile any additional tools you may need

Contributions

This repo is a work in progress, pull requests and suggestions are greatly appreciated

Maintainers

Thomas Gamble [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].