ad-joining/cloudbuild.yaml (45 lines of code) (raw):
#
# Copyright 2020 Google LLC
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
substitutions:
_SERVERLESS_REGION: '__SERVERLESS_REGION__'
_PROJECTS_DN: '__PROJECTS_DN__'
_AD_DOMAIN: '__AD_DOMAIN__'
_AD_NETBIOS_DOMAIN: '__AD_NETBIOS_DOMAIN__'
_SERVICE_ACCOUNT_EMAIL: '__SERVICE_ACCOUNT_EMAIL__'
_SERVERLESS_NETWORK: '__SERVERLESS_NETWORK__'
_SERVERLESS_SUBNET: '__SERVERLESS_SUBNET__'
_IMAGE_TAG: 'latest'
_SECRET_NAME: 'ad-password'
_SECRET_VERSION: 'latest'
steps:
# Build Docker image containing the Cloud Run app
- name: 'gcr.io/cloud-builders/docker'
args:
- build
- -t
- gcr.io/$PROJECT_ID/register-computer:$_IMAGE_TAG
- .
# Push Docker image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args:
- push
- gcr.io/$PROJECT_ID/register-computer:$_IMAGE_TAG
# Deploy to Cloud Run
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: gcloud
args:
- run
- deploy
- register-computer
- --image=gcr.io/$PROJECT_ID/register-computer:$_IMAGE_TAG
- --project=$PROJECT_ID
- --region=$_SERVERLESS_REGION
- --platform=managed
- --allow-unauthenticated
- --network=$_SERVERLESS_NETWORK
- --subnet=$_SERVERLESS_SUBNET
- --vpc-egress=private-ranges-only
- --service-account=$_SERVICE_ACCOUNT_EMAIL
- --set-env-vars=AD_DOMAIN=$_AD_DOMAIN
- --set-env-vars=AD_USERNAME=$_AD_NETBIOS_DOMAIN\register-computer
- --set-env-vars=SM_PROJECT=$PROJECT_ID
- --set-env-vars=SM_NAME_ADPASSWORD=$_SECRET_NAME
- --set-env-vars=SM_VERSION_ADPASSWORD=$_SECRET_VERSION
- --set-env-vars=FUNCTION_IDENTITY=$_SERVICE_ACCOUNT_EMAIL
- --set-env-vars=^:^PROJECTS_DN=$_PROJECTS_DN
images: ['gcr.io/$PROJECT_ID/register-computer:$_IMAGE_TAG']