description |
---|
The set of deployable Unity components and services are housed in a repository, called the Unity Marketplace. |
https://github.com/unity-sds/unity-marketplace
- For your component, Test your Infrastructure As Code (IAC) locally
- Add you component's IAC to the Marketplace
Before integrating your IAC into the Unity marketplace, you should test locally to ensure it works as expected. At this time, it's suggested that you write your deployment IAC using Terraform.
Your IAC should have (at a minimum) the following:
- a
variables.tf
file, containing placeholders to variables that the Management Console will inject in. These are:- project
- venue
- deployment_name
- tags
- installprefix
- For example, see this code block:
// Some code (variables.tf)
- NOTE: you may need inlude a
provider
terraform resource with the correct region. This is probably not necessary when deployed via the Management Console.
// Some code (example main.tf)
Test your terraform locally by:
- Sourcing the short-term access keys of the
Unity-venue-dev
account (e.g. add to~/.aws/credentials
file). You can get this information from the Kion page. terraform init
terraform plan
terraform apply
- Verify resources were deployed
terraform destroy
Once you are fully satisfied with the results, move on to the section below.
- Create a repository that houses code/scripts that do a deployment (e.g. terraform, CloudFormation, and/or shell scripts)
- Structure the repository to have the correct entry point directory (e.g.
terraform-unity
). There is an option to override theterraform-unity
directory convention (i.e. in the case where multiple source repos lead to the marketplace deployment). Technically speaking, your terraform code doesn't have to be co-located with your application code. If you are writing your only terraform, a convention is to have amain.tf
, however this is optional as upon deployment time the directory containing terraform files will just be scanned, and create a DAG in the end, that will be terraform-applied. - Create a release (zip file of the repository). This should be put in your Github "Releases", in your repo, that can be referenced by a SHA.
- Fork the marketplace repo
- Add your application
- Under the
applications
directory, create a directory, and version sub-directory for your application.- See examples here: https://github.com/unity-sds/unity-marketplace/tree/main/applications
- Create a metadata.json file for your application. There is an example here.
- Under the
- Submit your PR to the marketplace repo
- Ensure the checks pass
- (Doesn't exist yet, but in the future, there will be a CI/CD system that checks for validity)
- Merge the PR
- Application is available!
- The application should now be able to be deployed via the Management Console UI.
- If you want to create a new version of your application in the Marketplace, you would repeat steps 4-9 above.
--------------------
See the schema here.
description coming soon..
description coming soon..
description coming soon..
description coming soon..
description coming soon..
More for display purposes from the Marketplace UI. This can be free-form, and will display.
description coming soon..
description coming soon..
description coming soon..
Represents the packaged-up deployable unit. This field can be a pointer to a git SHA or zip file URL of a Github release. The zip file URL is the preferred approach. This field is that is git-pulled upon deployment via the Management Console.
description coming soon..
e.g. "terraform"
This can override the default terraform-unity
directory (see above)
description coming soon..