From 0992429503a769c49c44260efce30dcb2ad4ba87 Mon Sep 17 00:00:00 2001 From: Thirumalesh Aaraveti Date: Mon, 18 Sep 2023 18:06:19 +0530 Subject: [PATCH] Added the tenanats: ecoeng, mikhail --- .../aws/ecoeng_01/PolicyJenkinsfileDaily | 80 +++++++++++++++++++ jenkins/tenant/aws/ecoeng_01/README.md | 6 ++ .../aws/ecoeng_01/TaggingJenkinsfileHourly | 62 ++++++++++++++ .../aws/ecoeng_02/PolicyJenkinsfileDaily | 80 +++++++++++++++++++ jenkins/tenant/aws/ecoeng_02/README.md | 5 ++ .../aws/ecoeng_02/TaggingJenkinsfileHourly | 62 ++++++++++++++ 6 files changed, 295 insertions(+) create mode 100644 jenkins/tenant/aws/ecoeng_01/PolicyJenkinsfileDaily create mode 100644 jenkins/tenant/aws/ecoeng_01/README.md create mode 100644 jenkins/tenant/aws/ecoeng_01/TaggingJenkinsfileHourly create mode 100644 jenkins/tenant/aws/ecoeng_02/PolicyJenkinsfileDaily create mode 100644 jenkins/tenant/aws/ecoeng_02/README.md create mode 100644 jenkins/tenant/aws/ecoeng_02/TaggingJenkinsfileHourly diff --git a/jenkins/tenant/aws/ecoeng_01/PolicyJenkinsfileDaily b/jenkins/tenant/aws/ecoeng_01/PolicyJenkinsfileDaily new file mode 100644 index 000000000..f1e41da87 --- /dev/null +++ b/jenkins/tenant/aws/ecoeng_01/PolicyJenkinsfileDaily @@ -0,0 +1,80 @@ +account = ['partnerlab', 'coreos-training'] +pipeline { + options { + disableConcurrentBuilds() + } + agent { + docker { + label 'cloud-governance-worker' + image 'quay.io/athiru/centos-stream8-podman:latest' + args '-u root -v /etc/postfix/main.cf:/etc/postfix/main.cf --privileged' + } + } + environment { + AWS_IAM_USER_SPREADSHEET_ID = credentials('cloud-governance-aws-iam-user-spreadsheet-id') + GOOGLE_APPLICATION_CREDENTIALS = credentials('cloud-governance-google-application-credentials') + LDAP_HOST_NAME = credentials('cloud-governance-ldap-host-name') + ES_HOST = credentials('haim-cloud-governance-elasticsearch-url') + ES_PORT = credentials('haim-cloud-governance-elasticsearch-port') + contact1 = "ebattat@redhat.com" + contact2 = "athiruma@redhat.com" + } + stages { + stage('Checkout') { // Checkout (git clone ...) the projects repository + steps { + checkout scm + } + } + stage('Initial Cleanup') { + steps { + sh '''if [[ "$(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null)" != "" ]]; then podman rmi -f $(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null); fi''' + } + } + stage('Run Policies the Cost Policies') { + steps { + script { + for (int i = 0; i < account.size(); ++i) { + echo "Running for account ${account[i].toUpperCase()}" + withCredentials([string(credentialsId: "${account[i]}-aws-access-key-id", variable: 'access_key'), + string(credentialsId: "${account[i]}-aws-secret-key-id", variable: 'secret_key'), + string(credentialsId: "${account[i]}-s3-bucket", variable: 's3_bucket')]) { + env.account_name = "${account[i]}" + sh 'python3 jenkins/poc/haim/common/run_cost_policies.py' + } + } + } + } + } + stage('Run Policies the Daily polices') { + steps { + script { + for (int i = 0; i < account.size(); ++i) { + echo "Running for account ${account[i].toUpperCase()}" + withCredentials([string(credentialsId: "${account[i]}-aws-access-key-id", variable: 'access_key'), + string(credentialsId: "${account[i]}-aws-secret-key-id", variable: 'secret_key'), + string(credentialsId: "${account[i]}-s3-bucket", variable: 's3_bucket')]) { + env.account_name = "${account[i]}" + sh 'python3 jenkins/poc/haim/common/run_policies.py' + } + } + } + } + } + stage('Finalize Cleanup') { + steps { + sh '''if [[ "$(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null)" != "" ]]; then podman rmi -f $(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null); fi''' + deleteDir() + } + } + } + post { + failure { + script { + msg = "Build error for ${env.JOB_NAME} ${env.BUILD_NUMBER} (${env.BUILD_URL})" + emailext body: """\ + Jenkins job: ${env.BUILD_URL}\nSee the console output for more details: ${env.BUILD_URL}consoleFull\n\n + """,subject: msg, to: "${contact1}, ${contact2}, ${contact3}" + } + } + } +} diff --git a/jenkins/tenant/aws/ecoeng_01/README.md b/jenkins/tenant/aws/ecoeng_01/README.md new file mode 100644 index 000000000..6fbe4f8be --- /dev/null +++ b/jenkins/tenant/aws/ecoeng_01/README.md @@ -0,0 +1,6 @@ +### ecoeng_01 + +Accounts: +- partnerlab +- coreos-training +- \ No newline at end of file diff --git a/jenkins/tenant/aws/ecoeng_01/TaggingJenkinsfileHourly b/jenkins/tenant/aws/ecoeng_01/TaggingJenkinsfileHourly new file mode 100644 index 000000000..7180b4d96 --- /dev/null +++ b/jenkins/tenant/aws/ecoeng_01/TaggingJenkinsfileHourly @@ -0,0 +1,62 @@ +account = ['partnerlab', 'coreos-training'] +pipeline { + options { + disableConcurrentBuilds() + } + agent { + docker { + label 'cloud-governance-worker' + image 'quay.io/athiru/centos-stream8-podman:latest' + args '-u root -v /etc/postfix/main.cf:/etc/postfix/main.cf --privileged' + } + } + environment { + LDAP_HOST_NAME = credentials('cloud-governance-ldap-host-name') + account_name = "appeng" + contact1 = "ebattat@redhat.com" + contact2 = "athiruma@redhat.com" + } + stages { + stage('Checkout') { // Checkout (git clone ...) the projects repository + steps { + checkout scm + } + } + stage('Initial Cleanup') { + steps { + sh '''if [[ "$(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null)" != "" ]]; then podman rmi -f $(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null); fi''' + } + } + stage('Run Tagging Cluster & Non-Cluster') { + steps { + script { + for (int i = 0; i < account.size(); ++i) { + echo "Running for account ${account[i].toUpperCase()}" + withCredentials([string(credentialsId: "${account[i]}-aws-access-key-id", variable: 'access_key'), + string(credentialsId: "${account[i]}-aws-secret-key-id", variable: 'secret_key'), + string(credentialsId: "${account[i]}-s3-bucket", variable: 's3_bucket')]) { + env.account_name = "${account[i]}" + sh 'python3 jenkins/poc/haim/common/run_tagging.py' + } + } + } + } + } + stage('Finalize Cleanup') { + steps { + sh '''if [[ "$(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null)" != "" ]]; then podman rmi -f $(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null); fi''' + deleteDir() + } + } + } + post { + failure { + script { + msg = "Build error for ${env.JOB_NAME} ${env.BUILD_NUMBER} (${env.BUILD_URL})" + emailext body: """\ + Jenkins job: ${env.BUILD_URL}\nSee the console output for more details: ${env.BUILD_URL}consoleFull\n\n + """,subject: msg, to: "${contact1}, ${contact2}, ${contact3}" + } + } + } +} diff --git a/jenkins/tenant/aws/ecoeng_02/PolicyJenkinsfileDaily b/jenkins/tenant/aws/ecoeng_02/PolicyJenkinsfileDaily new file mode 100644 index 000000000..89742d47a --- /dev/null +++ b/jenkins/tenant/aws/ecoeng_02/PolicyJenkinsfileDaily @@ -0,0 +1,80 @@ +account = ['appeng', 'fsi-partner'] +pipeline { + options { + disableConcurrentBuilds() + } + agent { + docker { + label 'cloud-governance-worker' + image 'quay.io/athiru/centos-stream8-podman:latest' + args '-u root -v /etc/postfix/main.cf:/etc/postfix/main.cf --privileged' + } + } + environment { + AWS_IAM_USER_SPREADSHEET_ID = credentials('cloud-governance-aws-iam-user-spreadsheet-id') + GOOGLE_APPLICATION_CREDENTIALS = credentials('cloud-governance-google-application-credentials') + LDAP_HOST_NAME = credentials('cloud-governance-ldap-host-name') + ES_HOST = credentials('haim-cloud-governance-elasticsearch-url') + ES_PORT = credentials('haim-cloud-governance-elasticsearch-port') + contact1 = "ebattat@redhat.com" + contact2 = "athiruma@redhat.com" + } + stages { + stage('Checkout') { // Checkout (git clone ...) the projects repository + steps { + checkout scm + } + } + stage('Initial Cleanup') { + steps { + sh '''if [[ "$(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null)" != "" ]]; then podman rmi -f $(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null); fi''' + } + } + stage('Run Policies the Cost Policies') { + steps { + script { + for (int i = 0; i < account.size(); ++i) { + echo "Running for account ${account[i].toUpperCase()}" + withCredentials([string(credentialsId: "${account[i]}-aws-access-key-id", variable: 'access_key'), + string(credentialsId: "${account[i]}-aws-secret-key-id", variable: 'secret_key'), + string(credentialsId: "${account[i]}-s3-bucket", variable: 's3_bucket')]) { + env.account_name = "${account[i]}" + sh 'python3 jenkins/poc/haim/common/run_cost_policies.py' + } + } + } + } + } + stage('Run Policies the Daily polices') { + steps { + script { + for (int i = 0; i < account.size(); ++i) { + echo "Running for account ${account[i].toUpperCase()}" + withCredentials([string(credentialsId: "${account[i]}-aws-access-key-id", variable: 'access_key'), + string(credentialsId: "${account[i]}-aws-secret-key-id", variable: 'secret_key'), + string(credentialsId: "${account[i]}-s3-bucket", variable: 's3_bucket')]) { + env.account_name = "${account[i]}" + sh 'python3 jenkins/poc/haim/common/run_policies.py' + } + } + } + } + } + stage('Finalize Cleanup') { + steps { + sh '''if [[ "$(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null)" != "" ]]; then podman rmi -f $(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null); fi''' + deleteDir() + } + } + } + post { + failure { + script { + msg = "Build error for ${env.JOB_NAME} ${env.BUILD_NUMBER} (${env.BUILD_URL})" + emailext body: """\ + Jenkins job: ${env.BUILD_URL}\nSee the console output for more details: ${env.BUILD_URL}consoleFull\n\n + """,subject: msg, to: "${contact1}, ${contact2}, ${contact3}" + } + } + } +} diff --git a/jenkins/tenant/aws/ecoeng_02/README.md b/jenkins/tenant/aws/ecoeng_02/README.md new file mode 100644 index 000000000..823dd527d --- /dev/null +++ b/jenkins/tenant/aws/ecoeng_02/README.md @@ -0,0 +1,5 @@ +### ecoeng_02 + +Accounts: +- appeng +- partner diff --git a/jenkins/tenant/aws/ecoeng_02/TaggingJenkinsfileHourly b/jenkins/tenant/aws/ecoeng_02/TaggingJenkinsfileHourly new file mode 100644 index 000000000..847cea9eb --- /dev/null +++ b/jenkins/tenant/aws/ecoeng_02/TaggingJenkinsfileHourly @@ -0,0 +1,62 @@ +account = ['appeng', 'fsi-partner'] +pipeline { + options { + disableConcurrentBuilds() + } + agent { + docker { + label 'cloud-governance-worker' + image 'quay.io/athiru/centos-stream8-podman:latest' + args '-u root -v /etc/postfix/main.cf:/etc/postfix/main.cf --privileged' + } + } + environment { + LDAP_HOST_NAME = credentials('cloud-governance-ldap-host-name') + account_name = "appeng" + contact1 = "ebattat@redhat.com" + contact2 = "athiruma@redhat.com" + } + stages { + stage('Checkout') { // Checkout (git clone ...) the projects repository + steps { + checkout scm + } + } + stage('Initial Cleanup') { + steps { + sh '''if [[ "$(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null)" != "" ]]; then podman rmi -f $(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null); fi''' + } + } + stage('Run Tagging Cluster & Non-Cluster') { + steps { + script { + for (int i = 0; i < account.size(); ++i) { + echo "Running for account ${account[i].toUpperCase()}" + withCredentials([string(credentialsId: "${account[i]}-aws-access-key-id", variable: 'access_key'), + string(credentialsId: "${account[i]}-aws-secret-key-id", variable: 'secret_key'), + string(credentialsId: "${account[i]}-s3-bucket", variable: 's3_bucket')]) { + env.account_name = "${account[i]}" + sh 'python3 jenkins/poc/haim/common/run_tagging.py' + } + } + } + } + } + stage('Finalize Cleanup') { + steps { + sh '''if [[ "$(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null)" != "" ]]; then podman rmi -f $(podman images -q quay.io/ebattat/cloud-governance 2> /dev/null); fi''' + deleteDir() + } + } + } + post { + failure { + script { + msg = "Build error for ${env.JOB_NAME} ${env.BUILD_NUMBER} (${env.BUILD_URL})" + emailext body: """\ + Jenkins job: ${env.BUILD_URL}\nSee the console output for more details: ${env.BUILD_URL}consoleFull\n\n + """,subject: msg, to: "${contact1}, ${contact2}, ${contact3}" + } + } + } +}