Skip to content

Instantly share code, notes, and snippets.

@Neutrollized
Last active February 6, 2023 18:46
Show Gist options
  • Select an option

  • Save Neutrollized/e5a2353505082f1902d39823546a6966 to your computer and use it in GitHub Desktop.

Select an option

Save Neutrollized/e5a2353505082f1902d39823546a6966 to your computer and use it in GitHub Desktop.
Medium: Deploying HashiCorp Vault on Cloud Run using Cloud Build
---
steps:
- id: 'Lint Dockerfile'
name: 'ghcr.io/hadolint/hadolint'
entrypoint: '/bin/hadolint'
args: ['cloud-run/Dockerfile']
- id: 'Build container image'
name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', '${_GAR_REGION}-docker.pkg.dev/${PROJECT_ID}/${_GAR_REPO_NAME}/vault-server:${COMMIT_SHA}', '-f', 'cloud-run/Dockerfile', '.']
- id: 'Image efficiency scan'
name: 'quay.io/wagoodman/dive'
args: ['--ci', '${_GAR_REGION}-docker.pkg.dev/${PROJECT_ID}/${_GAR_REPO_NAME}/vault-server:$COMMIT_SHA']
- id: 'Image security scan'
name: 'aquasec/trivy:latest'
args: ['image', '--severity', 'HIGH,CRITICAL', '--exit-code', '1', '${_GAR_REGION}-docker.pkg.dev/${PROJECT_ID}/${_GAR_REPO_NAME}/vault-server:$COMMIT_SHA']
- id: 'Push container image to GAR'
name: 'gcr.io/cloud-builders/docker'
args: ['push', '${_GAR_REGION}-docker.pkg.dev/${PROJECT_ID}/${_GAR_REPO_NAME}/vault-server:${COMMIT_SHA}']
- id: 'Deploy to Cloud Run'
name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: gcloud
args:
- 'beta'
- 'run'
- 'deploy'
- '${_SERVICE_NAME}'
- '--allow-unauthenticated'
- '--ingress'
- '${_INGRESS}'
- '--execution-environment'
- '${_EXECUTION_ENVIRONMENT}'
- '--concurrency'
- '20'
- '--cpu'
- '1'
- '--memory'
- '512Mi'
- '--image'
- '${_GAR_REGION}-docker.pkg.dev/${PROJECT_ID}/${_GAR_REPO_NAME}/vault-server:${COMMIT_SHA}'
- '--region'
- '${_REGION}'
- '--min-instances'
- '1'
- '--max-instances'
- '1'
- '--platform'
- 'managed'
- '--port'
- '8200'
- '--service-account'
- '${_SERVICE_ACCOUNT_EMAIL}'
- '--set-env-vars'
- 'GOOGLE_PROJECT=${PROJECT_ID},GOOGLE_STORAGE_BUCKET=${_GCS_BUCKET_NAME},VAULT_GCPCKMS_SEAL_KEY_RING=${_KMS_KEY_RING}'
- '--set-secrets'
- '/etc/vault/config.hcl=vault-server-config:latest'
- '--timeout'
- '300'
serviceAccount: '${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com'
images:
- '${_GAR_REGION}-docker.pkg.dev/${PROJECT_ID}/${_GAR_REPO_NAME}/vault-server:${COMMIT_SHA}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment