Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/briandenicola/codespaces-developer-demo
A demonstration on how to use GitHub CodeSpaces customized with DevContainers for modern application development.
https://github.com/briandenicola/codespaces-developer-demo
aks-kubernetes-cluster azapi bridge devcontainer golang kubernetes skaffold
Last synced: 18 days ago
JSON representation
A demonstration on how to use GitHub CodeSpaces customized with DevContainers for modern application development.
- Host: GitHub
- URL: https://github.com/briandenicola/codespaces-developer-demo
- Owner: briandenicola
- License: mit
- Created: 2022-07-21T08:09:20.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-29T17:44:00.000Z (9 months ago)
- Last Synced: 2024-12-09T13:40:45.001Z (2 months ago)
- Topics: aks-kubernetes-cluster, azapi, bridge, devcontainer, golang, kubernetes, skaffold
- Language: HCL
- Homepage:
- Size: 188 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Overview
This repository is a demostration on how to use GitHub CodeSpaces customized with DevContainers for modern application development. It leverages AKS plus its Web Application Routing feature and Skaffold.
* [Web Application Routing](https://docs.microsoft.com/en-us/azure/aks/web-app-routing) is a developer tool that makes it easier for developers to create dev environments accessible for TLS.
* [Skaffold](https://skaffold.dev/docs/) is a continous deployment tool used by developers to automate pushing changes to a Kubernetes cluster.
* [DevContainers](https://containers.dev/) build consistent developer environments[](https://codespaces.new/briandenicola/codespaces-developer-demo)
# Quicksteps
## Complete Environment
> **_NOTE:_** `task up` will create all required Azure resources (locked down to the Codespace's current IP Address) then deploy code via `skaffold run`
```bash
az login --scope https://graph.microsoft.com/.default
task up
```## Deploy Skaffold - Dev Mode
> **_NOTE:_** Dev Mode will continuously build, test, and deploy changes to your kubernetes cluster when your code changes
```bash
task skaffold -- dev
```## Deploy Skaffold - Run Mode
> **_NOTE:_** Run Mode will build, test, and deploy your code to your kubernetes cluster once
```bash
task skaffold -- run
```## Clean up
```bash
task down
```## Notes
* This will create an AKS cluster and deploy code to it using Skaffold.
* If you are using Codespaces, then after a restart, do:
```bash
task update-firewalls
```
* This will add the Codespaces IP addres to the ACLs for Azure Container Registry, Key Vault and AKS# Validate
* Skaffold will automtically run Golang Unit test cases and a Custom curl Test on each build/deploy
* Web Applciation Routing will create an external load balancer and configure an Nginx ingress configured with a self signed certificate
* The Uri will be in the form of https://api.${random_pet}-${random_id}.local.
```bash
cd scripts
./network-tests.sh
```
* Skaffold is also set for port-forwading so the service can be accessible over localhost as well# Backlog
- [X] Workload identity deployment
- [X] Developer namespace with OSM enabled
- [X] Update for Web Application Routing
- [X] Update Documentation and examples# Issues
- [X] There is a current issue with Web Application Routing when using a custom Service Account