automated terminal push
This commit is contained in:
28
Jenkinsfile
vendored
28
Jenkinsfile
vendored
@@ -64,8 +64,8 @@ pipeline {
|
|||||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: env.AWS_CRED_ID]]) {
|
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: env.AWS_CRED_ID]]) {
|
||||||
echo "🔄 Checking/Bootstrapping Terraform backend..."
|
echo "🔄 Checking/Bootstrapping Terraform backend..."
|
||||||
dir(tfBackendDir) {
|
dir(tfBackendDir) {
|
||||||
try {
|
def exitCode = sh(
|
||||||
sh """
|
script: """
|
||||||
terraform init \\
|
terraform init \\
|
||||||
-var="aws_region=${TF_VAR_aws_region}" \\
|
-var="aws_region=${TF_VAR_aws_region}" \\
|
||||||
-var="backend_bucket_name=${TF_BACKEND_BUCKET}" \\
|
-var="backend_bucket_name=${TF_BACKEND_BUCKET}" \\
|
||||||
@@ -74,15 +74,27 @@ pipeline {
|
|||||||
-var="aws_region=${TF_VAR_aws_region}" \\
|
-var="aws_region=${TF_VAR_aws_region}" \\
|
||||||
-var="backend_bucket_name=${TF_BACKEND_BUCKET}" \\
|
-var="backend_bucket_name=${TF_BACKEND_BUCKET}" \\
|
||||||
-var="lock_table_name=${TF_DDB_TABLE}"
|
-var="lock_table_name=${TF_DDB_TABLE}"
|
||||||
"""
|
""",
|
||||||
|
returnStatus: true
|
||||||
|
)
|
||||||
|
|
||||||
|
if (exitCode == 0) {
|
||||||
echo "✅ Terraform backend created successfully"
|
echo "✅ Terraform backend created successfully"
|
||||||
} catch (Exception e) {
|
} else {
|
||||||
if (e.getMessage().contains("BucketAlreadyOwnedByYou") ||
|
echo "⚠️ Terraform apply failed, checking if resources already exist..."
|
||||||
e.getMessage().contains("Table already exists")) {
|
def bucketCheck = sh(
|
||||||
|
script: "aws s3api head-bucket --bucket ${TF_BACKEND_BUCKET} --region ${TF_VAR_aws_region} 2>/dev/null && echo 'exists' || echo 'missing'",
|
||||||
|
returnStdout: true
|
||||||
|
).trim()
|
||||||
|
def tableCheck = sh(
|
||||||
|
script: "aws dynamodb describe-table --table-name ${TF_DDB_TABLE} --region ${TF_VAR_aws_region} 2>/dev/null && echo 'exists' || echo 'missing'",
|
||||||
|
returnStdout: true
|
||||||
|
).trim()
|
||||||
|
|
||||||
|
if (bucketCheck == "exists" && tableCheck == "exists") {
|
||||||
echo "✅ Terraform backend already exists - continuing..."
|
echo "✅ Terraform backend already exists - continuing..."
|
||||||
} else {
|
} else {
|
||||||
echo "❌ Unexpected error during backend bootstrap: ${e.getMessage()}"
|
error("❌ Backend bootstrap failed and resources don't exist. Manual intervention required.")
|
||||||
throw e
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user