mirror of https://github.com/databricks/cli.git
33 lines
1.7 KiB
Bash
Executable File
33 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
DATABRICKS_TF_VERSION=$(/app/databricks bundle debug terraform --output json | jq -r .terraform.version)
|
|
DATABRICKS_TF_PROVIDER_VERSION=$(/app/databricks bundle debug terraform --output json | jq -r .terraform.providerVersion)
|
|
|
|
if [ $ARCH != "amd64" ] && [ $ARCH != "arm64" ]; then
|
|
echo "Unsupported architecture: $ARCH"
|
|
exit 1
|
|
fi
|
|
|
|
# Download the terraform binary
|
|
mkdir -p zip
|
|
wget https://releases.hashicorp.com/terraform/${DATABRICKS_TF_VERSION}/terraform_${DATABRICKS_TF_VERSION}_linux_${ARCH}.zip -O zip/terraform.zip
|
|
|
|
# Verify the checksum. This is to ensure that the downloaded archive is not tampered with.
|
|
EXPECTED_CHECKSUM="$(/app/databricks bundle debug terraform --output json | jq -r .terraform.checksum.linux_$ARCH)"
|
|
COMPUTED_CHECKSUM=$(sha256sum zip/terraform.zip | awk '{ print $1 }')
|
|
if [ "$COMPUTED_CHECKSUM" != "$EXPECTED_CHECKSUM" ]; then
|
|
echo "Checksum mismatch for Terraform binary. Version: $DATABRICKS_TF_VERSION, Arch: $ARCH, Expected checksum: $EXPECTED_CHECKSUM, Computed checksum: $COMPUTED_CHECKSUM."
|
|
exit 1
|
|
fi
|
|
|
|
# Unzip the terraform binary. It's safe to do so because we have already verified the checksum.
|
|
unzip zip/terraform.zip -d zip/terraform
|
|
mkdir -p /app/bin
|
|
mv zip/terraform/terraform /app/bin/terraform
|
|
|
|
# Download the provider plugin
|
|
TF_PROVIDER_NAME=terraform-provider-databricks_${DATABRICKS_TF_PROVIDER_VERSION}_linux_${ARCH}.zip
|
|
mkdir -p /app/providers/registry.terraform.io/databricks/databricks
|
|
wget https://github.com/databricks/terraform-provider-databricks/releases/download/v${DATABRICKS_TF_PROVIDER_VERSION}/${TF_PROVIDER_NAME} -O /app/providers/registry.terraform.io/databricks/databricks/${TF_PROVIDER_NAME}
|