Skip to content
This repository has been archived by the owner on May 12, 2023. It is now read-only.

Latest commit

 

History

History
51 lines (43 loc) · 3.88 KB

iiif-manifest-pipeline.md

File metadata and controls

51 lines (43 loc) · 3.88 KB

IIIF Manifest Pipeline

This will create an AWS CodePipeline that will deploy the manifest data pipeline. It will deploy a test and production stack using the manifest-pipeline.yml template.

Before you begin see https://developer.github.com/v3/auth/#via-oauth-tokens for how to generate an OAuth token for use with these pipelines. Make sure your token provides the public_repo scope.

Sentry Integration Prerequisites

The manifest pipeline reports uncaught errors through Sentry. For this, you'll need to create a Sentry account and create a project to report errors to(note the DSN of the project). The DSN will be passed as a parameter, SentryDsn, when standing up the pipeline.

Once this is setup we'll create a lambda layer to handle the error reporting. Follow these steps before continuing.

Manifest Pipeline Deployment

aws cloudformation deploy \
  --capabilities CAPABILITY_NAMED_IAM \
  --region us-east-1 \
  --stack-name marble-manifest-deployment \
  --template-file deploy/cloudformation/manifest-pipeline-pipeline.yml \
  --parameter-overrides GitHubToken=my_oauth_key ContactTag=me@myhost.com OwnerTag=me \
    TestHostnamePrefix='marble-manifest-test' ProdHostnamePrefix='marble-manifest' \
    SentryDsn='https://123456789@sentry.io/123456789'

Below is the list of parameters that can be overridden in this template. Parameters with no default are required.

Parameter Description Default
InfrastructureStackName The name of the parent infrastructure/networking stack that you created. Necessary to locate and reference resources created by that stack. marble-app-infrastructure
DomainStackName The name of the parent domain stack that you created. Necessary to locate and reference resources created by that stack. marble-domain
ProdStackName The name of the CloudFormation stack to use when creating the production resources marble-manifest-prod
ProdHostnamePrefix Hostname prefix for the production manifest bucket CDN
TestStackName The name of the CloudFormation stack to use when creating the test resources marble-manifest-test
TestHostnamePrefix Hostname prefix for the test manifest bucket CDN
ConfigurationRepoName The GitHub repo for the cloudfromation blueprints marble-blueprints
ConfigurationRepoBranchName The GitHub repo branch the codepipeline should checkout to run blueprints from master
ManifestPipelineRepoName The GitHub repo name marble-manifest-pipeline
ManifestPipelineRepoBranch The GitHub repo branch code pipelines should watch for changes on master
GitHubUser GitHub UserName. This username must have access to the GitHubToken. ndlib
GitHubToken Secret. OAuthToken with access to Repo. Long string of characters and digits. Go to https://github.com/settings/tokens
ImageServiceTestStackName The name of the test IIIF image service stack marble-image-service-test
ImageServiceProdStackName The name of the production IIIF image service stack marble-image-service-prod
DataBrokerStackName The name of the shared data broker stack marble-data-broker
AppConfigPathProd The path the keys for parameter store should be read and written to for config /all/marble-manifest-pipeline-prod
AppConfigPathTest The path the keys for parameter store should be read and written to for config /all/marble-manifest-pipeline-test
ContactTag The Contact tag to add to the deployed stacks
OwnerTag The Owner tag to add to the deployed stacks
SentryLayer The name of the Sentry layer marble-sentry-layer
ProdSentryLayerVersion Production pipeline Sentry layer version 1
TestSentryLayerVersion Test pipeline Sentry layer version 1
SentryDsn The Sentry project DSN