Operations: Deploy Domain Specific Projects - 22Acacia/sossity GitHub Wiki
There are two types of projects in Sossity: Sossity core projects that are provided by 22acacia and business domain logic that is provided by the user. The example projects are included in this guide as they are not part of the production deploy flow but the user is expected to build these as part of their learning process. The default of Sossity is to acquire all artifacts from 22acaia that it can. The controller project, which handles executing Sossity, will be pre-configured to pull from 22acacia locations.
##Projects:
Chart
- pipeline projects: these are java and python projects that implement angled-dream and execute as cloud dataflow processes. These are streaming business logic applications. The full list of these projects is evolving as the business moves. They have two required circle environment variables and three suggested ones. Required environment variables:
- GOOGLE_CREDENTIALS, json file saved from creating the service account
- GSTORAGE_DEST_BUCKET, google storage bucket to save artifacts in
Suggested environment variables:
- CIRCLE_TOKEN, generate at: circleci.com/account/api
- GITHUB_ORG, name of the github organization
- NEXT_PROJECT, the name of the repository in github that is next in the CI chain
The circle job for these projects will deploy all created jars to //.
- pipeline-controller: the controller project that deploys the HX pipeline. Its goals are to download all required artifacts, prepare the local CircleCi environment for deploy, execute Sossity to create and validate the infrastructure description file and then execute terraform to create or modify the infrastructure to match the desired state. This project has several required environment variables:
- ATLAS_TOKEN: used by terraform to save its state remotely in atlas between runs.
- ATLAS_USER: used by terraform to save its state remotely in atlas between runs, one of two parts that identify a specific terraform state
- ATLAS_PROJECT: used by terraform to save its state remotely in atlas between runs, one of two parts that identify a specific terraform state
- GOOGLE_CREDENTIALS: json object containing details of a google service account. This is used by all command line google products.
- GOOGLE_APPLICATION_CREDENTIALS: a file location on disk that contains the same value as GOOGLE_CREDENTIALS. This file is populated by configure_host.sh and should be set to the literal value: $HOME/$CIRCLE_PROJECT_REPONAME/account.json. If its not, please update configure_host.sh. This is used by Google’s cloud dataflow SDK.
- GSTORAGE_22ACACIA_BUCKET: google storage bucket to fetch 22acacia artifacts from.
- GSTORAGE_DEST_BUCKET: google storage bucket to save rendered terraform configuration file to
##Example pipeline projects 22acacia has provided several example projects as aids to development. These projects are not required for system functionality but it is recommended that they are understood.
-
sossity-pipeline-python-sample: An example project for how to write python pipeline processing code. This is a trivial functional example but critical for demonstrating the mechanics of this type of project. Please see its README for further details. Required:
-
GOOGLE_CREDENTIALS, which is the json file saved from the creation of the service account
-
GSTORAGE_DEST_BUCKET, google storage bucket to save artifacts in
-
sossity-identity-pipeline-java: An example project for how to write java pipeline code. It is a no-op.
-
GOOGLE_CREDENTIALS, which is the json file saved from the creation of the service account
-
GSTORAGE_DEST_BUCKET, google storage bucket to save artifacts in
-
sossity-pipeline-java-sample: An example project for how to write java pipeline code. This is a trivial functional example. Please see its README for further details. Required:
-
GOOGLE_CREDENTIALS, which is the json file saved from the creation of the service account
-
GSTORAGE_DEST_BUCKET, google storage bucket to save artifacts in