Skip to content

UffizziCloud/github-actions-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Uffizzi Quickstart for GitHub Actions (~ 1 minute)

Go from pull request to Uffizzi Ephemeral Environment in less than one minute. This quickstart will create a virtual Kubernetes cluster on Uffizzi Cloud and deploy a sample microservices application from this repository. Once created, you can connect to the cluster with the Uffizzi CLI, then manage the cluster via kubectl, kustomize, helm, and other tools. You can clean up the cluster by closing the pull request or manually deleting it via the Uffizzi CLI.

1. Fork this quickstart-k8s repo

https://github.com/UffizziCloud/quickstart-k8s/fork

⚠️ Be sure to uncheck the option Copy the main branch only.

This ensures that the try-uffizzi branch will be included in your fork.

2. Enable GitHub Actions workflows for your fork

Select Actions, then select I understand my workflows, go ahead and enable them.

3. Open a pull request for the try-uffizzi branch against main in your fork

⚠️ Be sure that you're opening a PR on the branches of your fork (i.e. your-account/tree/mainyour-account/tree/try-uffizzi).

If you try to open a PR for UffizziCloud/tree/mainyour-account/tree/try-uffizzi, the Actions workflow will not run in this example.

4. View cluster details

Once the action is finished running, check the pull request comments section to find information on how to access the newly created cluster.

5. Access the vote and result HTTP services

Additionally, the app endpoints can be found on the action summary page. Under the Actions section of the forked repository, open up the latest completed action. Within the completed action, open up the summary section. Copy and paste the vote and result endpoints within the action summary


What to expect

The PR will trigger a GitHub Actions workflow that uses the Uffizzi CLI, and Kubernetes manifests to create a Uffizzi Ephemeral Environment for the microservices application defined by this repo. When the workflow completes, the Ephemeral Environment URL will be posted as a comment in your PR issue.

How it works

Configuration

Ephemeral Environments are configured with Kubernetes manifests that describe the application components and a GitHub Actions workflow that includes a series of jobs triggered by a pull_request event and subsequent push events:

  1. Build and push the voting-app images
  2. Create the Uffizzi cluster using the uffizzi-cli
  3. Apply the Kubernetes manifests to deploy the application to the Uffizzi cluster
  4. Delete the Ephemeral Environment when the PR is merged/closed or after

Acceptable Use

We strive to keep Uffizzi Cloud free or inexpensive for individuals and small teams. Therefore, activities such as crypto mining, file sharing, bots, and similar uses that lead to increased costs and intermittent issues for other users are strictly prohibited per the Acceptable Use Policy. Violators of this policy are subject to permanent ban.

Architecture of this Example App

The application defined by this repo allows users to vote for dogs or cats and see the results. It consists of the following microservices:

  • voting - A frontend web app in Python that lets you vote between two options
  • redis - A Redis queue that collects new votes
  • worker - A .NET Core worker that consumes votes and stores them in...
  • db - A PostgreSQL database backed by a Docker volume
  • result - A Node.js web app that shows the results of the voting in real time