PlagueHO / game-master-copilot

Dungeon Master Copilot is an AI enabled copilot to help dungeon masters create content.
MIT License
5 stars 0 forks source link

Game Master Copilot

continuous-integrationcontinuous-deployment

Game Master Copilot is an AI enabled copilot to help game masters create content. It is a multitenant application that can be used to serve users and teams (organizations).

The application is a work-in-progress and is being used a test platform for various technologies and services. It is intended to demonstrate the use of Large Foundational Models/Generative AI using Azure OpenAI Service and Semantic Kernel as well as a reference architecture for running multitenant SaaS applications in Azure.

This application uses the following Microsoft & Azure technologies, including:

Future features planned:

Continuous Integration & Continuous Delivery

The application is built and deployed using:

Workload Identity

The GitHub Actions workflow has been configured to use Entra ID Workload Identity for the workflow to connect to Azure. Please see Configuring Workload Identity Federation for GitHub Actions workflow for more information.

Environments

The following environments should be configured in the GitHub repository:

Your environments should look similar to this: Example of GitHub Environments

Currently the continuous-delivery only deploys the test environment, but in future it will deploy to both test and production depending on tagging and other criteria.

Variables

The following Actions Variables should be configured in the GitHub repository:

The following variables are used to configure authentcation to Entra ID for the application. See Enable authentication and authorization in Azure Container Apps with Microsoft Entra ID to learn more about how to configure the Application Registration to use.

The shared resrouces are resources that are shared across all environments. These resources are:

Environment Variables

Each environment should have the following actions variables defined:

Your variables should look similar to this: Example of GitHub Variables

Secrets

The following Actions Secrets need to be defined so that that the resources can be deployed by the GitHub Actions workflow and that the Web Application can use Azure AD as an authentication source:

Using Entra ID (Customer) as an Authentication Source

These values should be kept secret and care taken to ensure they are not shared with anyone. Your secrets should look like this: Example of GitHub Secrets