This is the integration / wayfinding repository for the Unicorn Delivery Service (UDS) Software Factory created and offered by Defense Unicorns. In its current state it is made up of the following UDS packages that are bundled together:
- GitLab - a DevOps software package that can develop, secure, and operate software
- GitLab Runner - a Continuous Integration runner that integrates with GitLab
- Mattermost - an open-source, self-hostable online chat service
- SonarQube - an open-source platform developed by SonarSource for continuous inspection of code quality
This repo serves as an integration repository for testing, creating common Architectural Decision Records, and tracking issues that have effects across the individual packages that make up Software Factory.
Also note that the Software Factory team helps to manage the following shared UDS packages and repositories:
- Postgres Operator - a Kubernetes operator to deploy PostgreSQL databases in a cluster
- UDS Common - a common repo to share actions, UDS tasks and more between package repositories
tl;dr - try it now
Note
These UDS Bundles are intended for dev and test environments and should not be used for production. They can however serve as examples to create custom bundles.
This repository publishes multiple bundles for dev, test and demo purposes. They are located in sub-directories under bundles
.
This is a bundle primarily for development that is located at bundles/dev
. It requires an existing k3d cluster to deploy.
This bundle requires ~ 9 CPUs and 28GB of memory
available to run.
This bundle is a demo bundle of Software Factory deployed on top of full UDS Core. It includes the deployment of an underlying k3d cluster. The bundle definition is located at bundles/k3d-demo
This is a fairly large bundle and requires 16 CPUs and 64GB of memory
available to run. It is best deployed on an adequately sized linux machine with Docker or equivalent installed. This is not currently tested on Mac due to resource limitations.
If you have the resources for it locally (see above), you can deploy the full Software Factory with full uds-core
and k3d
using the uds-k3d-swf-demo bundle.
- Docker Compatible Runtime necessary for running
k3d
. - UDS CLI v0.10.4 or later
[!NOTE]: Apple users follow these instructions to properly set up your environment to deploy this bundle.
To deploy this bundle run the following command:
uds deploy k3d-swf-demo:0.2.2
Alternatively, you can deploy the uds-k3d-swf-dev bundle, which is meant to be deployed on top of k3d-core-slim-dev. This bundle includes all of Software Factory, but only utilizes part of the underlying uds-core
baseline. This allows it to be run on a wider variety of hardware, particularly with local development in mind.
- K3D for dev & test environments or any CNCF Certified Kubernetes Cluster for production environments.
- UDS CLI v0.10.4 or later
[!NOTE]: Apple users follow these instructions to properly set up your environment to deploy this bundle.
For swf-dev
you have two options, build and deploy from source or deploy the artifacts from where they are hosted in the ghcr OCI registry.
To build and deploy from source you can utilize the UDS tasks in this repo by running:
uds run
Alternatively, you can deploy from OCI by running the following two commands:
- Run the below command to deploy the
k3d-core-slim-dev
bundle:
[!NOTE]: You can append
--set INSECURE_ADMIN_PASSWORD_GENERATION=true
to the below command to enable a default keycloak admin. This is useful for development and testing of the SWF stack and enables the ability to runuds run setup:create-doug-user
to create a user to test with using the usernamedoug
and the passwordunicorn123!@#
.
```bash
uds deploy k3d-core-slim-dev:0.22.0
```
-
Run the below command to deploy the
swf-dev
bundle on top of the dev cluster:uds deploy swf-dev:0.2.2