From a7464d111233d5a3967df74980f71fa0906e8aef Mon Sep 17 00:00:00 2001 From: roicarrera <120183761+roicarrera@users.noreply.github.com> Date: Mon, 9 Dec 2024 08:47:14 +0100 Subject: [PATCH 1/2] Generate PDF report for cypress + environment management improvements (#1079) --- CHANGELOG.md | 1 + .../quickstarters/pages/e2e-cypress.adoc | 21 +++- e2e-cypress/Jenkinsfile.template | 110 ++++++++++++------ e2e-cypress/files/README.md | 25 +--- .../files/cypress-acceptance.config.ts | 37 +++--- .../files/cypress-installation.config.ts | 37 +++--- .../files/cypress-integration.config.ts | 37 +++--- e2e-cypress/files/cypress.config.ts | 26 +++-- e2e-cypress/files/package.json | 8 +- e2e-cypress/files/pdf-generator.ts | 72 ++++++++++++ e2e-cypress/files/plugins/index.ts | 6 + e2e-cypress/files/support/commands.ts | 11 ++ e2e-cypress/files/support/e2e.ts | 11 ++ e2e-cypress/files/support/login-functions.ts | 11 -- e2e-cypress/files/support/test-evidence.ts | 5 + 15 files changed, 278 insertions(+), 140 deletions(-) create mode 100644 e2e-cypress/files/pdf-generator.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 748d46444..a1dcaf75e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ - Replaced centos8 repository for AlmaLinux 8 due to deprecation ([#1063](https://github.com/opendevstack/ods-quickstarters/pull/1063)) - Improvements in the reporter for cypress ([#1042](https://github.com/opendevstack/ods-quickstarters/issues/1042)) - Added new function to cypress to log into applications using MFA ([#1070](https://github.com/opendevstack/ods-quickstarters/pull/1070)) +- Generate PDF report for cypress and improved environment management ([#1079](https://github.com/opendevstack/ods-quickstarters/pull/1079)) ### Added diff --git a/docs/modules/quickstarters/pages/e2e-cypress.adoc b/docs/modules/quickstarters/pages/e2e-cypress.adoc index e2b8f65bb..e44df68fb 100644 --- a/docs/modules/quickstarters/pages/e2e-cypress.adoc +++ b/docs/modules/quickstarters/pages/e2e-cypress.adoc @@ -121,20 +121,31 @@ To use Cypress Cloud within the Cypress QuickStarter, follow these steps: 3. **Set the Cypress Record Key as an environment variable in Openshift.** To enable recording of your tests in Cypress Cloud, you will need to set the Cypress Record Key as an environment variable named CYPRESS_RECORD_KEY in Openshift. This key is provided by Cypress and is used to authenticate your tests and results. By setting it in Openshift, we ensure that the record functionality will only be used in official runs and not for local development. -4. **Modify the Jenkinsfile for using the record script.** In the Jenkinsfile, change the exeuction line: +4. **Modify the Jenkinsfile for using the record script.** In the Jenkinsfile, change the exeuction lines: [source,Jenkinsfile] ---- -def status = sh(script: 'npm run e2e', returnStatus: true) +status = sh(script: 'npm run e2e', returnStatus: true) ---- -for the following block of code, which will run the record script only when in master or in a release branch: +and +[source,Jenkinsfile] +---- +status = sh(script: 'npm run e2e:prod', returnStatus: true) +---- +for the following blocks of code, which will run the record script only when in master or in a release branch: [source,Jenkinsfile] ---- if (context.gitBranch == 'master' || context.gitBranch.startsWith('release/')) { - def status = sh(script: 'npm run e2e:jenkins:record', returnStatus: true) + status = sh(script: 'npm run e2e:jenkins:record', returnStatus: true) } else { - def status = sh(script: 'npm run e2e', returnStatus: true) + status = sh(script: 'npm run e2e', returnStatus: true) } ---- +and +[source,Jenkinsfile] +---- +status = sh(script: 'npm run e2e:jenkins:record', returnStatus: true) +---- +For the case of prod environment, the master or release check is not necessary, as the prod environment is only used in releases. **Only use this functionality in releases, not development.** It is important to note that Cypress Cloud is intended for use in releases, not development. This ensures that your tests are run against stable and reliable code, and that the Dashboard does not get overflooded with non-relevant tests. For the same reason, the Jenkinsfile is configured to only pass the record parameter when running in the master branch, or in a release. diff --git a/e2e-cypress/Jenkinsfile.template b/e2e-cypress/Jenkinsfile.template index dd5e5df3f..2932b9e1e 100644 --- a/e2e-cypress/Jenkinsfile.template +++ b/e2e-cypress/Jenkinsfile.template @@ -29,6 +29,7 @@ odsComponentPipeline( // 'release/': 'test' ] ) { context -> + def targetDirectory = "${context.projectId}/${context.componentId}/${context.gitBranch.replaceAll('/', '-')}/${context.buildNumber}" stageTest(context) @@ -44,54 +45,97 @@ odsComponentPipeline( ] ) } - + if (fileExists('cypress/videos.zip')) { + odsComponentStageUploadToNexus(context, + [ + distributionFile: 'cypress/videos.zip', + repository: 'leva-documentation', + repositoryType: 'raw', + targetDirectory: "${targetDirectory}" + ] + ) + } + if (fileExists('cypress/pdf.zip')) { + odsComponentStageUploadToNexus(context, + [ + distributionFile: 'cypress/pdf.zip', + repository: 'leva-documentation', + repositoryType: 'raw', + targetDirectory: "${targetDirectory}" + ] + ) + } } def stageTest(def context) { - stage('Integration Test') { - // OPTIONAL: load environment variables for Azure SSO with MSALv2; please adapt variable names to your OpenShift config + stage('Functional Tests') { + // Define your DEV and QA base URLs in a config map in OpenShift; please adapt variable names to your OpenShift config // sh "oc project " - // cypressUser = sh(returnStdout: true, script:"oc get secret e2euser -o jsonpath='{.data.USERNAME}' | base64 -d") - // cypressPassword = sh(returnStdout: true, script:"oc get secret e2euser -o jsonpath='{.data.PASSWORD}' | base64 -d") - // azureClientId = sh(returnStdout: true, script:"oc get secret azure -o jsonpath='{.data.AZURE_CLIENT_ID}' | base64 -d") - // azureClientSecret = sh(returnStdout: true, script:"oc get secret azure -o jsonpath='{.data.AZURE_CLIENT_SECRET}' | base64 -d") - // azureTenantId = sh(returnStdout: true, script:"oc get configmaps azure -o jsonpath='{.data.AZURE_TENANT}'") // config map values are not base64 encoded - // authenticatorOTPSecret = sh(returnStdout: true, script:"oc get secret azure -o jsonpath='{.data.OTP_SECRET}' | base64 -d") + def baseUrls = [ + : // remove this line once you have defined the config map and uncommented the next three lines, it's only here to make the example default case work + // dev: sh(returnStdout: true, script:"oc get configmaps cypress-config -o jsonpath='{.data.DEV_BASE_URL}'").trim(), + // test: sh(returnStdout: true, script:"oc get configmaps cypress-config -o jsonpath='{.data.TEST_BASE_URL}'").trim() + // prod: sh(returnStdout: true, script:"oc get configmaps cypress-config -o jsonpath='{.data.PROD_BASE_URL}'").trim() + ] + + def baseUrl = baseUrls.get(context.environment ?: 'dev', 'https://www.w3schools.com') // default to W3Schools for demo purposes, replace with your own default withEnv(["TAGVERSION=${context.tagversion}", "NEXUS_HOST=${context.nexusHost}", "OPENSHIFT_PROJECT=${context.targetProject}", "OPENSHIFT_APP_DOMAIN=${context.getOpenshiftApplicationDomain()}", - // "CYPRESS_TENANT_ID=${azureTenantId}", - // "CYPRESS_CLIENT_ID=${azureClientId}", - // "CYPRESS_CLIENT_SECRET=${azureClientSecret}", - // "CYPRESS_USERNAME=${cypressUser}", - // "CYPRESS_PASSWORD=${cypressPassword}", - // "OTP_SECRET=${authenticatorOTPSecret}", "COMMIT_INFO_SHA=${context.gitCommit}", "BUILD_NUMBER=${context.buildNumber}", + "BASE_URL=${baseUrl}", ]) { - sh 'npm install' - def status = sh(script: 'npm run e2e', returnStatus: true) - sh 'npm run combine:reports' - junit(testResults:'build/test-results/*.xml', allowEmptyResults: true) - stash(name: "installation-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/installation-junit.xml', allowEmpty: true) - stash(name: "integration-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/integration-junit.xml', allowEmpty: true) - stash(name: "acceptance-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/acceptance-junit.xml', allowEmpty: true) + // For loading environment variables for Azure SSO; please adapt the secrets names to your OpenShift config, + // making sure to include in the secret names the environment name in lowercase (e.g., e2e-user-dev, e2e-user-test, + // etc.), in case of using different secrets for different environments. + // Secrets in OpenShift need to be created with the credential.sync.jenkins.openshift.io=true label to be available in Jenkins. + // These are examples for loading credentials from the testing user for logging into your application. + withCredentials([ + // usernamePassword(credentialsId: "${context.projectId}-cd-e2e-user", passwordVariable: 'CYPRESS_PASSWORD', usernameVariable: 'CYPRESS_USERNAME'), + // string(credentialsId: "${context.projectId}-cd-otp-secret", variable: 'OTP_SECRET') + ]) { + sh 'npm install' - if (fileExists('cypress/videos')) { - zip zipFile: 'cypress/videos.zip', archive: false, dir: 'cypress/videos' - stash(name: "acceptance-test-videos-${context.componentId}-${context.buildNumber}", includes: 'cypress/videos.zip', allowEmpty: true) - archiveArtifacts artifacts: 'cypress/videos.zip', fingerprint: true, daysToKeep: 2, numToKeep: 3 - } + // Note: Testing in the production environment is not enabled by default as it can lead to unintended consequences, + // including potential downtime, data corruption, or exposure of sensitive information. + // This block is designed to skip acceptance and integration tests in the production environment to avoid these risks. + // If you choose to enable these tests in production take all necessary precautions. This means verifying your + // preconditions, database access, fake data, API calls, etc. + // Remember that any test case in the installation folder will be executed in production. + def status + if (context.environment == 'prod') { + status = sh(script: 'npm run e2e:prod', returnStatus: true) + sh 'npm run junit-installation-report' + junit(testResults:'build/test-results/*.xml') + stash(name: "installation-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/installation-junit.xml', allowEmpty: true) + } else { + status = sh(script: 'npm run e2e', returnStatus: true) + sh 'npm run combine:reports' + junit(testResults:'build/test-results/*.xml') + stash(name: "installation-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/installation-junit.xml', allowEmpty: true) + stash(name: "integration-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/integration-junit.xml', allowEmpty: true) + stash(name: "acceptance-test-reports-junit-xml-${context.componentId}-${context.buildNumber}", includes: 'build/test-results/acceptance-junit.xml', allowEmpty: true) + } + + sh 'npm run generate:pdf' + zip zipFile: 'cypress/pdf.zip', archive: false, dir: 'build/test-results/mochawesome/pdf' + archiveArtifacts artifacts: 'cypress/pdf.zip', fingerprint: true + + if (fileExists('cypress/videos')) { + zip zipFile: 'cypress/videos.zip', archive: false, dir: 'cypress/videos' + } + + if (fileExists('build/test-results/screenshots')) { + zip zipFile: 'cypress/screenshots.zip', archive: false, dir: 'build/test-results/screenshots' + } - if (fileExists('cypress/screenshots')) { - zip zipFile: 'cypress/screenshots.zip', archive: false, dir: 'cypress/screenshots' - stash(name: "acceptance-test-screenshots-${context.componentId}-${context.buildNumber}", includes: 'cypress/screenshots.zip', allowEmpty: true) - archiveArtifacts artifacts: 'cypress/screenshots.zip', fingerprint: true, daysToKeep: 2, numToKeep: 3 + if (status != 0) { + unstable "Some tests have failed or encountered errors. Please check the logs for more details." + } } - - return status } } } diff --git a/e2e-cypress/files/README.md b/e2e-cypress/files/README.md index 89367eb33..3d213a407 100644 --- a/e2e-cypress/files/README.md +++ b/e2e-cypress/files/README.md @@ -10,29 +10,12 @@ Please note that each stage is executed with its own Cypress configuration file ## Running end-to-end tests -Run `npm run e2e` to execute all end-to-end tests via [Cypress](https://www.cypress.io) against the test instance of the front end. +Run `npm run e2e` to execute all end-to-end tests via [Cypress](https://www.cypress.io) against the test instance of the front end. In order to run the tests against different environments for releases, you can define the base URLs of each environment in a config map in OpenShift, and import them as environment variables in the `Jenkinsfile`. See an example on how to do this using `context.environment` in the `Jenkinsfile`. ## Local development Run `npm start` to develop the e2e tests. The tests will automatically rebuild and run, if you change any of the source files. Ideally the test will run against a local instance of the front end, e.g. `http://localhost:4200` for an Angular app. This destination is configurable in the `cypress.config.ts` file. -## How to upload images or videos to Nexus - -Screenshots are only taken when test fails. - 1. Open the Jenkinsfile - 2. Replace `stageTest(context)` by the following lines: - ``` - def status = stageTest(context) - if (status != 0) { - odsComponentStageUploadToNexus(context, - [ - distributionFile: 'tests/screenshots.zip', - repository: 'leva-documentation', - repositoryType: 'raw', - targetDirectory: "${targetDirectory}"]) - } - ``` - ## Reports From [Merging reports across spec files](https://docs.cypress.io/guides/tooling/reporters#Merging-reports-across-spec-files): each spec file is processed completely separately during each cypress run execution. Thus each spec run overwrites the previous report file. To preserve unique reports for each spec file, use the `[hash]` in the `mochaFile` filename. @@ -40,8 +23,10 @@ In order to generate one xml report per test type (installation, integration and ## E2e test user authentication -With Cypress 12 version is now available `cy.origin()` that allows you to handle redirections. This funcionality eases the login handling. -See `./support/e2e.ts` for a generic login example. +Starting version 12 of Cypress `cy.origin()` allows you to handle redirections. This functionality eases the login handling. +See `./support/login-functions.ts` for a generic login example. + +In order to load your testing user's credentials for this login with SSO, you need to create a secret in OpenShift with the label `credential.sync.jenkins.openshift.io=true` and import them as environment variables using the `withCredentials` block to keep them secure. Find an example on how to do this in the `Jenkinsfile`. ## Cypress Cloud diff --git a/e2e-cypress/files/cypress-acceptance.config.ts b/e2e-cypress/files/cypress-acceptance.config.ts index 8dbceffb6..bdf1616e9 100644 --- a/e2e-cypress/files/cypress-acceptance.config.ts +++ b/e2e-cypress/files/cypress-acceptance.config.ts @@ -1,26 +1,21 @@ -import { defineConfig } from 'cypress' -import setupNodeEvents from './plugins/index.js' +import { defineConfig } from 'cypress'; +import baseConfig from './cypress.config'; + export default defineConfig({ - //projectId: '[Your project ID from Cypress cloud]', - reporter: 'reporters/custom-reporter.js', + ...baseConfig, reporterOptions: { - mochaFile: 'build/test-results/acceptance-junit-[hash].xml', - toConsole: true, + ...baseConfig.reporterOptions, + mochawesomeReporterOptions: { + ...baseConfig.reporterOptions.mochawesomeReporterOptions, + reportFilename: 'acceptance-mochawesome', + }, + reportersCustomReporterJsReporterOptions: { + ...baseConfig.reporterOptions.reportersCustomReporterJsReporterOptions, + mochaFile: 'build/test-results/acceptance-junit-[hash].xml', + }, }, e2e: { - baseUrl: 'https://www.w3schools.com', - fixturesFolder: "fixtures", - specPattern: 'tests/acceptance/*.cy.ts', - supportFile: "support/e2e.ts", - viewportWidth: 1376, - viewportHeight: 660, - experimentalModifyObstructiveThirdPartyCode:true, - video: true, - async setupNodeEvents(on, config) { - return (await import('./plugins/index')).default(on, config); - }, + ...baseConfig.e2e, + specPattern: 'tests/acceptance/**/*.cy.ts', }, - // env: { - // otp_secret: process.env.OTP_SECRET - // }, -}) +}); diff --git a/e2e-cypress/files/cypress-installation.config.ts b/e2e-cypress/files/cypress-installation.config.ts index b49600bd9..968d7cd0c 100644 --- a/e2e-cypress/files/cypress-installation.config.ts +++ b/e2e-cypress/files/cypress-installation.config.ts @@ -1,26 +1,21 @@ -import { defineConfig } from 'cypress' -import setupNodeEvents from './plugins/index.js' +import { defineConfig } from 'cypress'; +import baseConfig from './cypress.config'; + export default defineConfig({ - //projectId: '[Your project ID from Cypress cloud]', - reporter: 'reporters/custom-reporter.js', + ...baseConfig, reporterOptions: { - mochaFile: 'build/test-results/installation-junit-[hash].xml', - toConsole: true, + ...baseConfig.reporterOptions, + mochawesomeReporterOptions: { + ...baseConfig.reporterOptions.mochawesomeReporterOptions, + reportFilename: 'installation-mochawesome', + }, + reportersCustomReporterJsReporterOptions: { + ...baseConfig.reporterOptions.reportersCustomReporterJsReporterOptions, + mochaFile: 'build/test-results/installation-junit-[hash].xml', + }, }, e2e: { - baseUrl: 'https://www.w3schools.com', - fixturesFolder: "fixtures", - specPattern: 'tests/installation/*.cy.ts', - supportFile: "support/e2e.ts", - viewportWidth: 1376, - viewportHeight: 660, - experimentalModifyObstructiveThirdPartyCode:true, - video: true, - async setupNodeEvents(on, config) { - return (await import('./plugins/index')).default(on, config); - }, + ...baseConfig.e2e, + specPattern: 'tests/installation/**/*.cy.ts', }, - // env: { - // otp_secret: process.env.OTP_SECRET - // }, -}) +}); diff --git a/e2e-cypress/files/cypress-integration.config.ts b/e2e-cypress/files/cypress-integration.config.ts index 2a333466e..8f3b99b9a 100644 --- a/e2e-cypress/files/cypress-integration.config.ts +++ b/e2e-cypress/files/cypress-integration.config.ts @@ -1,26 +1,21 @@ -import { defineConfig } from 'cypress' -import setupNodeEvents from './plugins/index.js' +import { defineConfig } from 'cypress'; +import baseConfig from './cypress.config'; + export default defineConfig({ - //projectId: '[Your project ID from Cypress cloud]', - reporter: 'reporters/custom-reporter.js', + ...baseConfig, reporterOptions: { - mochaFile: 'build/test-results/integration-junit-[hash].xml', - toConsole: true, + ...baseConfig.reporterOptions, + mochawesomeReporterOptions: { + ...baseConfig.reporterOptions.mochawesomeReporterOptions, + reportFilename: 'integration-mochawesome', + }, + reportersCustomReporterJsReporterOptions: { + ...baseConfig.reporterOptions.reportersCustomReporterJsReporterOptions, + mochaFile: 'build/test-results/integration-junit-[hash].xml', + }, }, e2e: { - baseUrl: 'https://www.w3schools.com', - fixturesFolder: "fixtures", - specPattern: 'tests/integration/*.cy.ts', - supportFile: "support/e2e.ts", - viewportWidth: 1376, - viewportHeight: 660, - experimentalModifyObstructiveThirdPartyCode:true, - video: true, - async setupNodeEvents(on, config) { - return (await import('./plugins/index')).default(on, config); - }, + ...baseConfig.e2e, + specPattern: 'tests/integration/**/*.cy.ts', }, - // env: { - // otp_secret: process.env.OTP_SECRET - // }, -}) +}); diff --git a/e2e-cypress/files/cypress.config.ts b/e2e-cypress/files/cypress.config.ts index df26ab30e..dfd361f6e 100644 --- a/e2e-cypress/files/cypress.config.ts +++ b/e2e-cypress/files/cypress.config.ts @@ -1,20 +1,32 @@ import { defineConfig } from 'cypress' import setupNodeEvents from './plugins/index.js' export default defineConfig({ - reporter: 'reporters/custom-reporter.js', + reporter: 'cypress-multi-reporters', reporterOptions: { - mochaFile: 'build/test-results/tests-[hash].xml', - toConsole: true, + reporterEnabled: 'mochawesome,./reporters/custom-reporter.js', + mochawesomeReporterOptions: { + reportDir: 'build/test-results/mochawesome', + reportFilename: 'mochawesome', + charts: true, + html: true, + timestamp: true, + json: true + }, + reportersCustomReporterJsReporterOptions: { + mochaFile: 'build/test-results/tests-[hash].xml', + toConsole: true, + }, }, e2e: { - baseUrl: 'https://www.w3schools.com', + baseUrl: process.env.BASE_URL || 'https://www.w3schools.com', fixturesFolder: "fixtures", specPattern: 'tests/**/*.cy.ts', supportFile: "support/e2e.ts", - viewportWidth: 1376, - viewportHeight: 660, + screenshotsFolder: 'build/test-results/screenshots', + viewportWidth: 1280, + viewportHeight: 720, experimentalModifyObstructiveThirdPartyCode: true, - video: true, + video: false, async setupNodeEvents(on, config) { return (await import('./plugins/index')).default(on, config); }, diff --git a/e2e-cypress/files/package.json b/e2e-cypress/files/package.json index 505063a40..9eca70a2c 100644 --- a/e2e-cypress/files/package.json +++ b/e2e-cypress/files/package.json @@ -14,19 +14,25 @@ "junit-acceptance-report": "jrm build/test-results/acceptance-junit.xml 'build/test-results/acceptance-*.xml'", "delete-junit-results": "rimraf build/test-results", "e2e": "npm-run-all delete-junit-results cypress:run-installation cypress:run-integration cypress:run-acceptance", + "e2e:prod": "npm-run-all delete-junit-results cypress:run-installation", "combine:reports": "npm-run-all junit-installation-report junit-integration-report junit-acceptance-report", - "e2e:jenkins:record": "npm run delete-junit-results && npm run cypress:run-installation -- --record && npm run cypress:run-integration -- --record && npm run cypress:run-acceptance -- --record" + "e2e:jenkins:record": "npm run delete-junit-results && npm run cypress:run-installation -- --record && npm run cypress:run-integration -- --record && npm run cypress:run-acceptance -- --record", + "e2e:jenkins:record:prod": "npm run delete-junit-results && npm run cypress:run-installation -- --record", + "generate:pdf": "ts-node ./pdf-generator.ts" }, "private": true, "devDependencies": { "@types/node": "^22.4.1", "cypress": "^13.13.1", + "cypress-multi-reporters": "^1.6.4", "junit-report-merger": "^7.0.0", "mocha-junit-reporter": "^2.2.1", "npm-run-all": "^4.1.5", "otplib": "^12.0.1", + "puppeteer": "^23.5.1", "rimraf": "^6.0.1", "sharp": "^0.33.5", + "ts-node": "^10.9.2", "typescript": "^5.5.4" } } diff --git a/e2e-cypress/files/pdf-generator.ts b/e2e-cypress/files/pdf-generator.ts new file mode 100644 index 000000000..4922f58b4 --- /dev/null +++ b/e2e-cypress/files/pdf-generator.ts @@ -0,0 +1,72 @@ +import * as puppeteer from 'puppeteer'; +import * as path from 'path'; +import * as fs from 'fs'; +import baseConfig from './cypress.config'; + +async function expandReportTestCases(htmlPage: puppeteer.Page) { + await htmlPage.evaluate(() => { + const expandTestHeaders = document.querySelectorAll('[class^="test--header"], [class*="test--header"]'); + for (const testHeader of Array.from(expandTestHeaders)) { + (testHeader as HTMLElement).click(); + } + }); +} + +const mochawesomeDir = path.resolve(__dirname, baseConfig.reporterOptions.mochawesomeReporterOptions.reportDir); + +const isLocal = process.env.NODE_ENV === 'local'; + +(async () => { + try { + const files = await fs.promises.readdir(mochawesomeDir); + + for (const file of files) { + + if (!file.endsWith('.html')) { + continue; + } + + const executablePath = isLocal ? undefined : '/usr/bin/google-chrome'; + + const browser = await puppeteer.launch({ args: ['--no-sandbox'], + executablePath + }); + const page = await browser.newPage(); + const htmlFullFilePath = path.resolve(__dirname, mochawesomeDir, file); + + await page.goto(`file://${htmlFullFilePath}`, { waitUntil: 'networkidle2' }); + + await expandReportTestCases(page); + + const images = await page.$$('img'); + for (const image of images) { + await page.waitForFunction((img) => img.complete && img.naturalHeight !== 0, {}, image); + } + + await page.addStyleTag({ + content: ` + @media print { + [class*="navbar"] { + position: static !important; + } + } + ` + }); + + if (!fs.existsSync(path.resolve(__dirname, mochawesomeDir, 'pdf'))) + fs.mkdirSync(path.resolve(__dirname, mochawesomeDir, 'pdf')); + + await page.pdf({ + path: path.resolve(__dirname, mochawesomeDir, 'pdf/', file.replace('.html', '.pdf')), + format: 'A4', + printBackground: true, + }); + await browser.close(); + } + + console.log('PDF files generated successfully'); + + } catch (error) { + console.error('Error generating PDF:', error); + } +})(); diff --git a/e2e-cypress/files/plugins/index.ts b/e2e-cypress/files/plugins/index.ts index 95b3d9fde..a1a9c164f 100644 --- a/e2e-cypress/files/plugins/index.ts +++ b/e2e-cypress/files/plugins/index.ts @@ -26,6 +26,12 @@ const setupNodeEvents: NonNullable = ( return await addEvidenceMetaToScreenshot(data); } }); + on('before:browser:launch', (browser: Cypress.Browser, launchOptions) => { + if (browser.isHeadless && (browser.name === 'chrome' || browser.name === 'edge')) { + launchOptions.args.push('--disable-gpu'); + } + return launchOptions; + }); }; export default setupNodeEvents; diff --git a/e2e-cypress/files/support/commands.ts b/e2e-cypress/files/support/commands.ts index 159e6ed88..b85f54cda 100644 --- a/e2e-cypress/files/support/commands.ts +++ b/e2e-cypress/files/support/commands.ts @@ -15,3 +15,14 @@ addGetTOTP(); addSessionLoginWithMFA(); addLoginToAAD(); addLoginToAADWithMFA(); + +declare global { + namespace Cypress { + interface Chainable<> { + loginToAAD(username: string, password: string); + loginToAADWithMFA(username: string, password: string); + sessionLoginWithMFA(username: string, password: string); + getTOTP(); + addContextPath(title: string, screenshot: string); + } + } diff --git a/e2e-cypress/files/support/e2e.ts b/e2e-cypress/files/support/e2e.ts index f19edb094..09aaab363 100644 --- a/e2e-cypress/files/support/e2e.ts +++ b/e2e-cypress/files/support/e2e.ts @@ -1,4 +1,5 @@ import './commands'; +const addContext = require('mochawesome/addContext'); export const consoleLogs: string[] = []; @@ -15,3 +16,13 @@ afterEach(function() { consoleLogs.splice(0); }) + +Cypress.Commands.add('addContextPath', (title: string, contextPath: string) => { + cy.on('test:after:run', (attributes) => { + // The context needs the path relative to the build/test-results/mochawesome folder + addContext({ test: attributes }, { + title: title, + value: contextPath + }); + }); +}) diff --git a/e2e-cypress/files/support/login-functions.ts b/e2e-cypress/files/support/login-functions.ts index caa67ce44..dd1e832fa 100644 --- a/e2e-cypress/files/support/login-functions.ts +++ b/e2e-cypress/files/support/login-functions.ts @@ -107,14 +107,3 @@ const validateLocalStorage = (localStorage: Record) => Cypress._.some(localStorage, (value: unknown, key: string) => key.includes('CognitoIdentityServiceProvider'), ) - -declare global { - namespace Cypress { - interface Chainable<> { - loginToAAD(username: string, password: string); - loginToAADWithMFA(username: string, password: string); - sessionLoginWithMFA(username: string, password: string); - getTOTP(); - } - } -} diff --git a/e2e-cypress/files/support/test-evidence.ts b/e2e-cypress/files/support/test-evidence.ts index 6db14be4d..ceb385596 100644 --- a/e2e-cypress/files/support/test-evidence.ts +++ b/e2e-cypress/files/support/test-evidence.ts @@ -1,6 +1,7 @@ import * as path from 'path'; import { isScreenshotEvidenceResult, ScreenshotEvidenceData } from "../plugins/screenshot.types"; import { consoleLogs } from "./e2e"; +import baseConfig from './cypress.config'; const logEvidence = (name: string, step: number, description: string, evidenceLogs: string[]) => { cy.url().then(url => { @@ -65,6 +66,10 @@ export const takeScreenshotEvidence = (testName: string, testStep: number, testS logEvidence(testName, testStep, description, [ `Stored screenshot "${path.basename(result.path)}" with hash (sha256) ${result.hash} taken at ${String(data.takenAt)} as evidence.` ]); + + // Create a relative path from the screenshots folder to the mochawesome test-results folder + const relativePath = path.relative(baseConfig.reporterOptions.mochawesomeReporterOptions.reportDir, result.path.replace(/^.*(build.*)$/, '$1')); + cy.addContextPath(`${testName} ${testStep} ${testSubStep}`, relativePath); }); }); }; From 0746e474e27d7a06f61460efaafae686724231e4 Mon Sep 17 00:00:00 2001 From: brais <26645694+BraisVQ@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:15:23 +0100 Subject: [PATCH 2/2] removed deprecated versions (#1080) --- .../continuous-integration-workflow.yml | 29 - CHANGELOG.md | 1 + Makefile | 34 +- common/jenkins-agents/README.md | 11 +- .../nodejs16/docker/Dockerfile.ubi8 | 64 - .../docker/contrib/bin/configure-agent | 63 - .../nodejs16/docker/contrib/bin/scl_enable | 3 - .../docker/yum.repos.d/almalinux.repo | 13 - .../docker/yum.repos.d/google-chrome.repo | 6 - .../docker/yum.repos.d/microsoft-edge.repo | 6 - .../nodejs16/ocp-config/Tailorfile | 5 - .../jenkins-agents/nodejs16/ocp-config/bc.yml | 66 - .../jenkins-agents/nodejs16/ocp-config/is.yml | 14 - .../terraform/docker/Dockerfile.ubi8 | 181 -- .../jenkins-agents/terraform/docker/Gemfile | 19 - .../terraform/docker/Gemfile.lock | 1765 ----------------- .../jenkins-agents/terraform/docker/README.md | 9 - .../terraform/docker/python_requirements | 10 - .../docker/yum.repos.d/rockylinux.repo | 17 - .../terraform/ocp-config/Tailorfile | 5 - .../terraform/ocp-config/bc.yml | 58 - .../terraform/ocp-config/is.yml | 14 - .../jenkins-agents/pages/inf-terraform.adoc | 5 +- .../jenkins-agents/pages/nodejs16.adoc | 17 - docs/modules/quickstarters/nav.adoc | 1 - 25 files changed, 12 insertions(+), 2404 deletions(-) delete mode 100644 common/jenkins-agents/nodejs16/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/nodejs16/docker/contrib/bin/configure-agent delete mode 100644 common/jenkins-agents/nodejs16/docker/contrib/bin/scl_enable delete mode 100644 common/jenkins-agents/nodejs16/docker/yum.repos.d/almalinux.repo delete mode 100644 common/jenkins-agents/nodejs16/docker/yum.repos.d/google-chrome.repo delete mode 100644 common/jenkins-agents/nodejs16/docker/yum.repos.d/microsoft-edge.repo delete mode 100644 common/jenkins-agents/nodejs16/ocp-config/Tailorfile delete mode 100644 common/jenkins-agents/nodejs16/ocp-config/bc.yml delete mode 100644 common/jenkins-agents/nodejs16/ocp-config/is.yml delete mode 100644 common/jenkins-agents/terraform/docker/Dockerfile.ubi8 delete mode 100644 common/jenkins-agents/terraform/docker/Gemfile delete mode 100644 common/jenkins-agents/terraform/docker/Gemfile.lock delete mode 100644 common/jenkins-agents/terraform/docker/README.md delete mode 100644 common/jenkins-agents/terraform/docker/python_requirements delete mode 100644 common/jenkins-agents/terraform/docker/yum.repos.d/rockylinux.repo delete mode 100644 common/jenkins-agents/terraform/ocp-config/Tailorfile delete mode 100644 common/jenkins-agents/terraform/ocp-config/bc.yml delete mode 100644 common/jenkins-agents/terraform/ocp-config/is.yml delete mode 100644 docs/modules/jenkins-agents/pages/nodejs16.adoc diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index b7b9866c4..d4c9fea11 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -35,22 +35,6 @@ jobs: --build-arg nexusPassword=s3cr3t \ . - jenkins-agent-nodejs16-ubi8: - name: Jenkins agent NodeJS 16 (UBI8) - runs-on: ubuntu-22.04 - steps: - - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Build docker image - working-directory: common/jenkins-agents/nodejs16/docker - run: | - docker build --tag agent-nodejs16-test-ubi8 --file Dockerfile.ubi8 \ - --build-arg nexusUrl=https://nexus.example.com \ - --build-arg nexusAuth=developer:s3cr3t \ - . - jenkins-agent-nodejs18-ubi8: name: Jenkins agent NodeJS 18 (UBI8) runs-on: ubuntu-22.04 @@ -132,19 +116,6 @@ jobs: --build-arg cargoDenyVersion=0.16.1 \ . - jenkins-agent-terraform-ubi8: - name: Jenkins agent Terraform (UBI8) - runs-on: ubuntu-22.04 - steps: - - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Build docker image - working-directory: common/jenkins-agents/terraform/docker - run: | - docker build --tag agent-terraform-test-ubi8 --file Dockerfile.ubi8 . - jenkins-agent-terraform-2306-ubi8: name: Jenkins agent Terraform 2306 (UBI8) runs-on: ubuntu-22.04 diff --git a/CHANGELOG.md b/CHANGELOG.md index a1dcaf75e..57d5153bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ - Replaced centos8 repository for AlmaLinux 8 due to deprecation ([#1063](https://github.com/opendevstack/ods-quickstarters/pull/1063)) - Improvements in the reporter for cypress ([#1042](https://github.com/opendevstack/ods-quickstarters/issues/1042)) - Added new function to cypress to log into applications using MFA ([#1070](https://github.com/opendevstack/ods-quickstarters/pull/1070)) +- Removal of deprecated versions ([#1068](https://github.com/opendevstack/ods-quickstarters/issues/1068)) - Generate PDF report for cypress and improved environment management ([#1079](https://github.com/opendevstack/ods-quickstarters/pull/1079)) ### Added diff --git a/Makefile b/Makefile index ee0dd0456..2b1f086ab 100644 --- a/Makefile +++ b/Makefile @@ -8,15 +8,15 @@ ODS_NAMESPACE := $(shell grep ODS_NAMESPACE $(CURDIR)/../ods-configuration/ods-c # JENKINS AGENT ## Install or update Jenkins agent resources. -install-jenkins-agent: install-jenkins-agent-golang install-jenkins-agent-jdk install-jenkins-agent-nodejs install-jenkins-agent-python install-jenkins-agent-scala install-jenkins-agent-terraform install-jenkins-agent-terraform-2306 install-jenkins-agent-terraform-2408 install-jenkins-agent-rust +install-jenkins-agent: install-jenkins-agent-golang install-jenkins-agent-jdk install-jenkins-agent-nodejs install-jenkins-agent-python install-jenkins-agent-scala install-jenkins-agent-terraform-2306 install-jenkins-agent-terraform-2408 install-jenkins-agent-rust .PHONY: install-jenkins-agent ## Update OpenShift resources related Jenkins agent resources. -apply-jenkins-agent-build: apply-jenkins-agent-golang-build apply-jenkins-agent-jdk-build apply-jenkins-agent-nodejs16-build apply-jenkins-agent-nodejs18-build apply-jenkins-agent-nodejs20-build apply-jenkins-agent-nodejs22-build apply-jenkins-agent-python-build apply-jenkins-agent-scala-build apply-jenkins-agent-terraform-build apply-jenkins-agent-terraform-build-2306 apply-jenkins-agent-terraform-build-2408 apply-jenkins-agent-rust-build +apply-jenkins-agent-build: apply-jenkins-agent-golang-build apply-jenkins-agent-jdk-build apply-jenkins-agent-nodejs18-build apply-jenkins-agent-nodejs20-build apply-jenkins-agent-nodejs22-build apply-jenkins-agent-python-build apply-jenkins-agent-scala-build apply-jenkins-agent-terraform-build-2306 apply-jenkins-agent-terraform-build-2408 apply-jenkins-agent-rust-build .PHONY: apply-jenkins-agent-build ## Start builds of Jenkins agents. -start-jenkins-agent-build: start-jenkins-agent-golang-build start-jenkins-agent-jdk-build start-jenkins-agent-nodejs16-build start-jenkins-agent-nodejs18-build start-jenkins-agent-nodejs20-build apply-jenkins-agent-nodejs22-build start-jenkins-agent-python-build start-jenkins-agent-scala-build start-jenkins-agent-terraform-build start-jenkins-agent-terraform-build-2306 start-jenkins-agent-terraform-build-2408 start-jenkins-agent-rust-build +start-jenkins-agent-build: start-jenkins-agent-golang-build start-jenkins-agent-jdk-build start-jenkins-agent-nodejs18-build start-jenkins-agent-nodejs20-build apply-jenkins-agent-nodejs22-build start-jenkins-agent-python-build start-jenkins-agent-scala-build start-jenkins-agent-terraform-build-2306 start-jenkins-agent-terraform-build-2408 start-jenkins-agent-rust-build .PHONY: start-jenkins-agent-build @@ -54,14 +54,9 @@ start-jenkins-agent-jdk-build: # JENKINS AGENT NODEJS ## Install or update Jenkins Node agent resources. -install-jenkins-agent-nodejs: apply-jenkins-agent-nodejs16-build apply-jenkins-agent-nodejs18-build apply-jenkins-agent-nodejs20-build apply-jenkins-agent-nodejs22-build start-jenkins-agent-nodejs16-build start-jenkins-agent-nodejs18-build start-jenkins-agent-nodejs20-build start-jenkins-agent-nodejs22-build +install-jenkins-agent-nodejs: apply-jenkins-agent-nodejs18-build apply-jenkins-agent-nodejs20-build apply-jenkins-agent-nodejs22-build start-jenkins-agent-nodejs18-build start-jenkins-agent-nodejs20-build start-jenkins-agent-nodejs22-build .PHONY: install-jenkins-agent-nodejs -## Update OpenShift resources related to Jenkins Node 16 agent image. -apply-jenkins-agent-nodejs16-build: - cd common/jenkins-agents/nodejs16/ocp-config && tailor apply --namespace $(ODS_NAMESPACE) -.PHONY: apply-jenkins-agent-nodejs16-build - ## Update OpenShift resources related to Jenkins Node 18 agent image. apply-jenkins-agent-nodejs18-build: cd common/jenkins-agents/nodejs18/ocp-config && tailor apply --namespace $(ODS_NAMESPACE) @@ -77,11 +72,6 @@ apply-jenkins-agent-nodejs22-build: cd common/jenkins-agents/nodejs22/ocp-config && tailor apply --namespace $(ODS_NAMESPACE) .PHONY: apply-jenkins-agent-nodejs22-build -## Start build of BuildConfig "jenkins-agent-nodejs16". -start-jenkins-agent-nodejs16-build: - oc -n $(ODS_NAMESPACE) start-build jenkins-agent-nodejs16 --follow -.PHONY: start-jenkins-agent-nodejs16-build - ## Start build of BuildConfig "jenkins-agent-nodejs18". start-jenkins-agent-nodejs18-build: oc -n $(ODS_NAMESPACE) start-build jenkins-agent-nodejs18 --follow @@ -145,22 +135,6 @@ start-jenkins-agent-scala-build: .PHONY: start-jenkins-agent-scala-build -# JENKINS AGENT TERRAFORM -## Install or update Jenkins Terraform agent resources. -install-jenkins-agent-terraform: apply-jenkins-agent-terraform-build start-jenkins-agent-terraform-build -.PHONY: install-jenkins-agent-terraform - -## Update OpenShift resources related to Jenkins Terraform agent image. -apply-jenkins-agent-terraform-build: - cd common/jenkins-agents/terraform/ocp-config && tailor apply --namespace $(ODS_NAMESPACE) -.PHONY: apply-jenkins-agent-terraform-build - -## Start build of BuildConfig "jenkins-agent-terraform". -start-jenkins-agent-terraform-build: - oc -n $(ODS_NAMESPACE) start-build jenkins-agent-terraform --follow -.PHONY: start-jenkins-agent-terraform-build - - # JENKINS AGENT TERRAFORM-2306 ## Install or update Jenkins Terraform agent resources. install-jenkins-agent-terraform-2306: apply-jenkins-agent-terraform-build-2306 start-jenkins-agent-terraform-build-2306 diff --git a/common/jenkins-agents/README.md b/common/jenkins-agents/README.md index f9d626d50..0b7e4e7b3 100644 --- a/common/jenkins-agents/README.md +++ b/common/jenkins-agents/README.md @@ -17,15 +17,14 @@ The ODS [jenkins shared library](https://github.com/opendevstack/ods-jenkins-sha 1. [GoLang](golang) 2. [Jdk](jdk) -3. [Node.js 16](nodejs16) -4. [Node.js 18](nodejs18) -5. [Node.js 20](nodejs20) +3. [Node.js 18](nodejs18) +4. [Node.js 20](nodejs20) +5. [Node.js 22](nodejs22) 6. [Python](python) 7. [Rust](rust) 8. [Scala & SBT](scala) -9. [Terraform](terraform) -10. [Terraform 2306](terraform-2306) -11. [Terraform 2408](terraform-2408) +9. [Terraform 2306](terraform-2306) +10. [Terraform 2408](terraform-2408) ## OCP Config / Installation diff --git a/common/jenkins-agents/nodejs16/docker/Dockerfile.ubi8 b/common/jenkins-agents/nodejs16/docker/Dockerfile.ubi8 deleted file mode 100644 index b17ce94c7..000000000 --- a/common/jenkins-agents/nodejs16/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,64 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-nodejs-16-rhel7-container" \ - name="openshift4/jenkins-agent-nodejs-16-rhel7" \ - architecture="x86_64" \ - io.k8s.display-name="Jenkins Agent Nodejs" \ - io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,nodejs" \ - maintainer="openshift-dev-services+jenkins@redhat.com" - -ARG nexusUrl -ARG nexusAuth - -ENV NODEJS_VERSION=16 \ - YARN_VERSION=1.22.18 \ - NPM_CONFIG_PREFIX=$HOME/.npm-global \ - PATH=$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/node_modules/.bin/:$HOME/.npm-global/bin/:$PATH \ - LANG=en_US.UTF-8 \ - LC_ALL=en_US.UTF-8 - -COPY contrib/bin/configure-agent /usr/local/bin/configure-agent - -# Generate machine ID -RUN dbus-uuidgen > /etc/machine-id - -# Install NodeJS -RUN INSTALL_PKGS="nodejs nodejs-nodemon make gcc-c++" && \ - curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ - yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_PKGS && \ - rpm -V $INSTALL_PKGS && \ - yum clean all -y - -# Install Yarn -# https://classic.yarnpkg.com/en/docs/install -RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION - -# Install Cypress dependencies -# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements -COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo -COPY yum.repos.d/almalinux.repo /etc/yum.repos.d/almalinux.repo -COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo -RUN yum repolist \ - && yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib \ - && yum install -y --enablerepo google-chrome google-chrome-stable \ - && yum install -y --enablerepo edge microsoft-edge-stable \ - && yum clean all -y - -RUN npm config set registry=$nexusUrl/repository/npmjs/ && \ - npm config set always-auth=true && \ - npm config set _auth=$(echo -n $nexusAuth | base64) && \ - npm config set email=no-reply@opendevstack.org && \ - npm config set ca=null && \ - npm config set strict-ssl=false && \ - yarn config set registry $nexusUrl/repository/npmjs/ -g && \ - echo node version: $(node --version) && \ - echo npm version: $(npm --version) && \ - echo npx version: $(npx --version) && \ - echo yarn version: $(yarn --version) - -RUN chown -R 1001:0 $HOME && \ - chmod -R g+rwX $HOME - -USER 1001 diff --git a/common/jenkins-agents/nodejs16/docker/contrib/bin/configure-agent b/common/jenkins-agents/nodejs16/docker/contrib/bin/configure-agent deleted file mode 100644 index 02ab20288..000000000 --- a/common/jenkins-agents/nodejs16/docker/contrib/bin/configure-agent +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - -# extract the different element of an url into a JSON structure -parse_url() { - # extract the protocol - proto="$(echo $1 | cut -f1 -d: )" - if [[ ! -z $proto ]] ; then - # remove the protocol - url="$(echo ${1/"$proto://"/})" - # extract the user (if any) - login="$(echo $url | grep @ | cut -d@ -f1)" - username="$(echo $login | cut -d: -f1)" - password="$(echo $login | cut -d: -f2)" - # extract the host - host_port="$(echo ${url/$login@/} | cut -d/ -f1) " - host="$(echo $host_port | cut -f1 -d:) " - - # by request - try to extract the port - port="$(echo $host_port | sed -e 's,^.*:,:,g' -e 's,.*:\([0-9]*\).*,\1,g' -e 's,[^0-9],,g')" - # extract the uri (if any) - resource="/$(echo $url | grep / | cut -d/ -f2-)" - fi - echo -n "{ \"uri\": \"$1\" , \"url\": \"$url\" , \"proto\": \"$proto\" , \"login\": \"$login\" ," - echo " \"username\": \"$username\" , \"password\": \"$password\" , \"host\": \"$host\" , \"port\": \"$port\" }" -} - -get_npm_proxy_config(){ - local proto json - proto=$1 - json=$2 - username=$( echo $json | jq -r .username) - password=$( echo $json | jq -r .password) - host=$( echo $json | jq -r .host) - port=$( echo $json | jq -r .port) - proxy_url="$host:$port" - - if [ -n "$username" -a -n "$password" ]; then - proxy_url="$proto://$username:$password@$proxy_url" - fi - - echo $proxy_url -} - - -if [ -n "$http_proxy" ]; then - json=$( parse_url $http_proxy ) - proxy=$(get_npm_proxy_config http "$json") - npm -g config set proxy $proxy -fi - -if [ -n "$https_proxy" ]; then - json=$( parse_url $https_proxy ) - proxy=$(get_npm_proxy_config https "$json") - npm -g config set https_proxy $proxy -fi - -if [ -n "$no_proxy" ]; then - npm -g config set noproxy $no_proxy -fi - -if [ -n "$NPM_MIRROR_URL" ]; then - npm -g config set registry "$NPM_MIRROR_URL" -fi diff --git a/common/jenkins-agents/nodejs16/docker/contrib/bin/scl_enable b/common/jenkins-agents/nodejs16/docker/contrib/bin/scl_enable deleted file mode 100644 index a4363c6a2..000000000 --- a/common/jenkins-agents/nodejs16/docker/contrib/bin/scl_enable +++ /dev/null @@ -1,3 +0,0 @@ -# This will make scl collection binaries work out of box. -unset BASH_ENV PROMPT_COMMAND ENV -source scl_source enable rh-nodejs16 diff --git a/common/jenkins-agents/nodejs16/docker/yum.repos.d/almalinux.repo b/common/jenkins-agents/nodejs16/docker/yum.repos.d/almalinux.repo deleted file mode 100644 index d26a001f7..000000000 --- a/common/jenkins-agents/nodejs16/docker/yum.repos.d/almalinux.repo +++ /dev/null @@ -1,13 +0,0 @@ -[almalinux-baseos] -name=AlmaLinux-8-BaseOS -baseurl=https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux - -[almalinux-appstream] -name=AlmaLinux-8-AppStream -baseurl=https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/ -enabled=1 -gpgcheck=1 -gpgkey=https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux \ No newline at end of file diff --git a/common/jenkins-agents/nodejs16/docker/yum.repos.d/google-chrome.repo b/common/jenkins-agents/nodejs16/docker/yum.repos.d/google-chrome.repo deleted file mode 100644 index 96e7eece3..000000000 --- a/common/jenkins-agents/nodejs16/docker/yum.repos.d/google-chrome.repo +++ /dev/null @@ -1,6 +0,0 @@ -[google-chrome] -name=google-chrome -baseurl=https://dl.google.com/linux/chrome/rpm/stable/$basearch -enabled=0 -gpgcheck=1 -gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub diff --git a/common/jenkins-agents/nodejs16/docker/yum.repos.d/microsoft-edge.repo b/common/jenkins-agents/nodejs16/docker/yum.repos.d/microsoft-edge.repo deleted file mode 100644 index e40052292..000000000 --- a/common/jenkins-agents/nodejs16/docker/yum.repos.d/microsoft-edge.repo +++ /dev/null @@ -1,6 +0,0 @@ -[edge] -name=Microsoft Edge Browser -baseurl=https://packages.microsoft.com/yumrepos/edge -enabled=0 -gpgcheck=1 -gpgkey=https://packages.microsoft.com/keys/microsoft.asc \ No newline at end of file diff --git a/common/jenkins-agents/nodejs16/ocp-config/Tailorfile b/common/jenkins-agents/nodejs16/ocp-config/Tailorfile deleted file mode 100644 index 9c6d41445..000000000 --- a/common/jenkins-agents/nodejs16/ocp-config/Tailorfile +++ /dev/null @@ -1,5 +0,0 @@ -namespace ods -selector app=jenkins-agent-nodejs16 -param-file ../../../../../ods-configuration/ods-core.env -ignore-unknown-parameters true -bc,is diff --git a/common/jenkins-agents/nodejs16/ocp-config/bc.yml b/common/jenkins-agents/nodejs16/ocp-config/bc.yml deleted file mode 100644 index 6fc62cd28..000000000 --- a/common/jenkins-agents/nodejs16/ocp-config/bc.yml +++ /dev/null @@ -1,66 +0,0 @@ -apiVersion: template.openshift.io/v1 -kind: Template -metadata: - name: jenkins-agent-nodejs16 -parameters: -- name: ODS_BITBUCKET_PROJECT - description: Bitbucket project name. - value: opendevstack -- name: NEXUS_URL - required: true -- name: NEXUS_AUTH - required: true -- name: REPO_BASE - required: true -- name: ODS_IMAGE_TAG - required: true - value: latest -- name: ODS_GIT_REF - required: true -- name: JENKINS_AGENT_DOCKERFILE_PATH - value: Dockerfile.ubi8 - description: Dockerfile variant to use -objects: -- apiVersion: build.openshift.io/v1 - kind: BuildConfig - metadata: - name: jenkins-agent-nodejs16 - labels: - app: jenkins-agent-nodejs16 - spec: - failedBuildsHistoryLimit: 5 - nodeSelector: null - output: - to: - kind: ImageStreamTag - name: jenkins-agent-nodejs16:${ODS_IMAGE_TAG} - postCommit: {} - resources: - limits: - cpu: "1" - memory: "2Gi" - requests: - cpu: "200m" - memory: "1Gi" - runPolicy: Serial - source: - contextDir: common/jenkins-agents/nodejs16/docker - git: - ref: ${ODS_GIT_REF} - uri: ${REPO_BASE}/${ODS_BITBUCKET_PROJECT}/ods-quickstarters.git - sourceSecret: - name: cd-user-token - type: Git - strategy: - dockerStrategy: - buildArgs: - - name: nexusUrl - value: ${NEXUS_URL} - - name: nexusAuth - value: ${NEXUS_AUTH} - dockerfilePath: ${JENKINS_AGENT_DOCKERFILE_PATH} - from: - kind: ImageStreamTag - name: jenkins-agent-base:${ODS_IMAGE_TAG} - type: Docker - successfulBuildsHistoryLimit: 5 diff --git a/common/jenkins-agents/nodejs16/ocp-config/is.yml b/common/jenkins-agents/nodejs16/ocp-config/is.yml deleted file mode 100644 index bb88b5b8e..000000000 --- a/common/jenkins-agents/nodejs16/ocp-config/is.yml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: template.openshift.io/v1 -kind: Template -metadata: - name: jenkins-agent-nodejs16 -objects: -- apiVersion: image.openshift.io/v1 - kind: ImageStream - metadata: - name: jenkins-agent-nodejs16 - labels: - app: jenkins-agent-nodejs16 - spec: - lookupPolicy: - local: false diff --git a/common/jenkins-agents/terraform/docker/Dockerfile.ubi8 b/common/jenkins-agents/terraform/docker/Dockerfile.ubi8 deleted file mode 100644 index 126f34d39..000000000 --- a/common/jenkins-agents/terraform/docker/Dockerfile.ubi8 +++ /dev/null @@ -1,181 +0,0 @@ -FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest - -LABEL maintainer="Erhard Wais , Frank Joas , Josef Hartmann , Steve Taylor " - -# Labels consumed by Red Hat build service -LABEL com.redhat.component="jenkins-agent-terraform-ubi8-docker" \ - name="openshift/jenkins-agent-terraform-ubi8" \ - version="0.1" \ - architecture="x86_64" \ - release="1" \ - io.k8s.display-name="Jenkins Agent Terraform" \ - io.k8s.description="The jenkins Agent image has terraform and other tools on top of the jenkins agent base image." \ - io.openshift.tags="openshift,jenkins,agent,terraform,aws,azure" - -ENV TERRAFORM_VERSION 1.2.9 -ENV TERRAFORM_CONFIG_INSPECT_VERSION 0.2.0 -ENV TERRAFORM_DOCS_VERSION v0.16.0 -ENV RUBY_VERSION 2.7.5 -ENV PACKER_VERSION 1.7.10 -ENV CONSUL_VERSION 1.11.2 -ENV TFENV_VERSION 2.2.0 -ENV NODEJS_VERSION 16.17.1 -ENV BUNDLER_VERSION 2.2.23 -ENV AGE_VERSION=1.0.0 -ENV GEM_HOME /opt/bundle -ENV RBENV_ROOT /opt/rbenv -ENV RBENV_SHELL bash - -ENV INSTALL_PKGS="yum-utils gcc make git-core zlib zlib-devel gcc-c++ patch \ - python38 python38-pip python38-setuptools \ - python39 python39-pip python39-setuptools \ - readline \ - libffi-devel openssl-devel make bzip2 autoconf curl sqlite-devel xz" -ENV INSTALL_DNF_PKGS="readline-devel bison automake libtool" -ENV PATH=/opt/tfenv/bin:/opt/rbenv/shims:/opt/rbenv/bin:/opt/node/bin:$PATH -ENV HOME=/home/jenkins - -RUN sh -c "rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm || true" -COPY python_requirements /tmp/requirements.txt - -# Workaroud we use when running behind proxy -# Basically we put the proxy certificate in certs folder -# COPY certs/* /etc/pki/ca-trust/source/anchors/ -# RUN update-ca-trust force-enable && update-ca-trust extract - -COPY yum.repos.d/rockylinux.repo /etc/yum.repos.d/rockylinux.repo -RUN sed -i 's@^\s*enabled\s*=.*$@enabled = 1@g' /etc/yum.repos.d/*.repo \ - && sed -i 's@^\s*enabled\s*=.*$@enabled = 0@g' /etc/yum.repos.d/rockylinux.repo \ - && grep -i '\(name\|enabled\)' /etc/yum.repos.d/*.repo - -RUN set -x \ - && dnf -y repolist \ - && dnf -y install $INSTALL_PKGS \ - && dnf -y install --enablerepo rockylinux-baseos --enablerepo rockylinux-appstream $INSTALL_DNF_PKGS - -RUN curl -sSL "https://bootstrap.pypa.io/pip/3.6/get-pip.py" -o "get-pip.py" \ - && python3 get-pip.py - -# Upgrade PIP -RUN pip3 install --upgrade pip \ - && pip3 -V \ - && pip3 install virtualenv pycodestyle \ - && pip3.8 install virtualenv pycodestyle \ - && pip3.9 install virtualenv pycodestyle - -# Configure PIP SSL validation -RUN pip config set global.cert /etc/ssl/certs/ca-bundle.crt \ - && pip config list - -# Install python requirements -RUN python3 -m pip install -r /tmp/requirements.txt \ - && python3.8 -m pip install -r /tmp/requirements.txt \ - && python3.9 -m pip install -r /tmp/requirements.txt - -# Install awscli2 -RUN curl -sSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \ - && unzip -qq awscliv2.zip \ - && ./aws/install \ - && rm -f awscliv2.zip \ - && rm -Rf ./aws - -# Install awssamcli -RUN curl -sSL "https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip" -o "awssam.zip" \ - && unzip -qq -d awssam awssam.zip \ - && ./awssam/install && rm -f awssam.zip && rm -Rf ./awssam - -# Install aws cdk -RUN wget -q "https://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-x64.tar.xz" \ - && xzcat node-v${NODEJS_VERSION}-linux-x64.tar.xz | tar xpf - -C /opt/ \ - && mv /opt/node-v${NODEJS_VERSION}-linux-x64 /opt/node \ - && /opt/node/bin/npm install -g aws-cdk \ - && chown -R 1001:0 /opt/node && chmod +x /opt/node/bin/* \ - && node --version \ - && cdk --version - -# Install Terraform -RUN wget -q -O /tmp/terraform.zip "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" \ - && unzip /tmp/terraform.zip -d /usr/local/bin \ - && rm -rf /tmp/terraform.zip \ - && terraform -h - -# Install tfenv -RUN umask 0002 && cd /opt && git clone --branch v${TFENV_VERSION} https://github.com/tfutils/tfenv.git \ - && TFENV_CURL_OUTPUT=0 /opt/tfenv/bin/tfenv install ${TERRAFORM_VERSION} \ - && /opt/tfenv/bin/tfenv use ${TERRAFORM_VERSION} \ - && chown -R 1001:0 /opt/tfenv \ - && chmod +x /opt/tfenv/bin/* \ - && terraform -version \ - && tfenv list - -# Install Packer -RUN wget -q -O /tmp/packer.zip "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip" \ - && unzip /tmp/packer.zip -d /usr/local/bin \ - && rm -rf /tmp/packer.zip \ - && packer --version - -# Install terraform-config-inspect -RUN wget -q -O /tmp/terraform-config-inspect.tar.gz https://github.com/nichtraunzer/terraform-config-inspect/releases/download/v${TERRAFORM_CONFIG_INSPECT_VERSION}/terraform-config-inspect_${TERRAFORM_CONFIG_INSPECT_VERSION}_linux_amd64.tar.gz \ - && tar zxpf /tmp/terraform-config-inspect.tar.gz -C /usr/local/bin/ \ - && rm -f /tmp/terraform-config-inspect.tar.gz \ - && chmod 755 /usr/local/bin/terraform-config-inspect - -# Install Terraform Docs -RUN wget -q -O /tmp/terraform-docs.tar.gz https://github.com/terraform-docs/terraform-docs/releases/download/${TERRAFORM_DOCS_VERSION}/terraform-docs-${TERRAFORM_DOCS_VERSION}-linux-amd64.tar.gz \ - && tar zxpf /tmp/terraform-docs.tar.gz -C /usr/local/bin/ terraform-docs \ - && chmod +x /usr/local/bin/terraform-docs - -# Install jq -RUN dnf install -y jq parallel \ - && jq -Version \ - && dnf clean all - -# Install consul-cli -RUN wget -q "https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip" \ - && unzip consul_${CONSUL_VERSION}_linux_amd64.zip -d /usr/local/bin \ - && rm -f consul_${CONSUL_VERSION}_linux_amd64.zip \ - && chmod +x /usr/local/bin/consul \ - && /usr/local/bin/consul -version - -# Install AGE -RUN wget -q -O /tmp/age.tar.gz https://github.com/FiloSottile/age/releases/download/v${AGE_VERSION}/age-v${AGE_VERSION}-linux-amd64.tar.gz \ - && tar xzf /tmp/age.tar.gz -C /usr/local/bin \ - && rm -f /tmp/age.tar.gz - -RUN chmod +t /tmp \ - && chown -R 1001:0 $HOME \ - && chmod -R g+rwX $HOME \ - && mkdir -p $GEM_HOME \ - && chmod 2770 $GEM_HOME - -COPY Gemfile Gemfile.lock $GEM_HOME/ - -RUN chown -R 1001:0 $GEM_HOME \ - && chmod -R g+rw $GEM_HOME \ - && ls -lisa /home/jenkins $GEM_HOME - -# setup ruby env and bundler gems -# RUBY https://syslint.com/blog/tutorial/how-to-install-ruby-on-rails-with-rbenv-on-centos-7-or-rhel-7/ -RUN cd /opt \ - && umask 0002 \ - && git clone https://github.com/rbenv/rbenv.git /opt/rbenv \ - && echo 'export PATH="/opt/rbenv/shims:/opt/rbenv/bin:$PATH"' >> ~/.bash_profile \ - && echo 'eval "$(rbenv init -)"' >> ~/.bash_profile \ - && source ~/.bash_profile \ - && git clone https://github.com/rbenv/ruby-build.git /opt/rbenv/plugins/ruby-build \ - && echo 'export PATH="/opt/rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile \ - && source ~/.bash_profile \ - && rbenv install $RUBY_VERSION \ - && rbenv global $RUBY_VERSION \ - && gem install bundler -v $BUNDLER_VERSION \ - && RBENV_VERSION=$RUBY_VERSION gem install bundler -v $BUNDLER_VERSION \ - && bundle config default $BUNDLER_VERSION \ - && RBENV_VERSION=$RUBY_VERSION bundle config default $BUNDLER_VERSION \ - && bundle config set --global path $GEM_HOME \ - && RBENV_VERSION=$RUBY_VERSION bundle config set --global path $GEM_HOME \ - && cd $GEM_HOME \ - && BUNDLE_SILENCE_ROOT_WARNING=true bundle install --full-index --jobs=8 \ - && rm -Rf /home/jenkins/.bundle/cache - -USER 1001 - diff --git a/common/jenkins-agents/terraform/docker/Gemfile b/common/jenkins-agents/terraform/docker/Gemfile deleted file mode 100644 index 2378f0f95..000000000 --- a/common/jenkins-agents/terraform/docker/Gemfile +++ /dev/null @@ -1,19 +0,0 @@ -source 'https://rubygems.org' do - gem 'activesupport' - gem 'irb' - gem 'kitchen-terraform', '~> 6.1.0' - gem 'test-kitchen' - gem 'rspec-retry' - gem 'aws-sdk', '~> 3' -end - -source 'https://packagecloud.io/cinc-project/stable' do - gem 'inspec-core' - gem 'inspec', '4.52.9' - gem 'cinc-auditor-bin' - gem 'unf_ext' - gem 'chef-config' - gem 'chef-utils' - gem 'mixlib-install' - gem 'mixlib-versioning' -end diff --git a/common/jenkins-agents/terraform/docker/Gemfile.lock b/common/jenkins-agents/terraform/docker/Gemfile.lock deleted file mode 100644 index 1c16833cb..000000000 --- a/common/jenkins-agents/terraform/docker/Gemfile.lock +++ /dev/null @@ -1,1765 +0,0 @@ -GEM - specs: - -GEM - remote: https://packagecloud.io/cinc-project/stable/ - specs: - chef-config (17.10.0) - addressable - chef-utils (= 17.10.0) - fuzzyurl - mixlib-config (>= 2.2.12, < 4.0) - mixlib-shellout (>= 2.0, < 4.0) - tomlrb (~> 1.2) - chef-utils (17.10.0) - concurrent-ruby - cinc-auditor-bin (4.52.9) - inspec (= 4.52.9) - inspec (4.52.9) - cookstyle - faraday_middleware (>= 0.12.2, < 1.1) - inspec-core (= 4.52.9) - mongo (= 2.13.2) - rake - train (~> 3.0) - train-aws (~> 0.2) - train-habitat (~> 0.1) - train-winrm (~> 0.2) - inspec-core (4.52.9) - addressable (~> 2.4) - chef-telemetry (~> 1.0, >= 1.0.8) - faraday (>= 0.9.0, < 1.5) - faraday_middleware (~> 1.0) - hashie (>= 3.4, < 5.0) - license-acceptance (>= 0.2.13, < 3.0) - method_source (>= 0.8, < 2.0) - mixlib-log (~> 3.0) - multipart-post (~> 2.0) - parallel (~> 1.9) - parslet (>= 1.5, < 2.0) - pry (~> 0.13) - rspec (>= 3.9, < 3.11) - rspec-its (~> 1.2) - rubyzip (>= 1.2.2, < 3.0) - semverse (~> 3.0) - sslshake (~> 1.2) - thor (>= 0.20, < 2.0) - tomlrb (>= 1.2, < 2.1) - train-core (~> 3.0) - tty-prompt (~> 0.17) - tty-table (~> 0.10) - mixlib-install (3.12.19) - mixlib-shellout - mixlib-versioning - thor - mixlib-versioning (1.2.12) - unf_ext (0.0.7.2) - -GEM - remote: https://rubygems.org/ - specs: - activesupport (7.0.4) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - addressable (2.8.1) - public_suffix (>= 2.0.2, < 6.0) - ast (2.4.2) - aws-eventstream (1.2.0) - aws-partitions (1.643.0) - aws-sdk (3.1.0) - aws-sdk-resources (~> 3) - aws-sdk-accessanalyzer (1.30.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-account (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-acm (1.52.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-acmpca (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-alexaforbusiness (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-amplify (1.32.0) - aws-sdk-core (~> 3, >= 3.120.0) - aws-sigv4 (~> 1.1) - aws-sdk-amplifybackend (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-amplifyuibuilder (1.6.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-apigateway (1.78.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-apigatewaymanagementapi (1.30.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-apigatewayv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-appconfig (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-appconfigdata (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-appflow (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-appintegrationsservice (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-applicationautoscaling (1.51.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-applicationcostprofiler (1.9.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-applicationdiscoveryservice (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-applicationinsights (1.31.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-appmesh (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-appregistry (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-apprunner (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-appstream (1.66.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-appsync (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-athena (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-auditmanager (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-augmentedairuntime (1.23.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-autoscaling (1.63.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-autoscalingplans (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-backup (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-backupgateway (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-backupstorage (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-batch (1.47.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-billingconductor (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-braket (1.19.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-budgets (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-chime (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-chimesdkidentity (1.9.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-chimesdkmediapipelines (1.1.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-chimesdkmeetings (1.14.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-chimesdkmessaging (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloud9 (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudcontrolapi (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-clouddirectory (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudformation (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudfront (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudhsm (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudhsmv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudsearch (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudsearchdomain (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudtrail (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudwatch (1.67.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchevents (1.46.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchevidently (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchlogs (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchrum (1.4.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codeartifact (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codebuild (1.88.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codecommit (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codedeploy (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codeguruprofiler (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codegurureviewer (1.32.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codepipeline (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codestar (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codestarconnections (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-codestarnotifications (1.20.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-cognitoidentity (1.31.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-cognitoidentityprovider (1.53.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-cognitosync (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-comprehend (1.62.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-comprehendmedical (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-computeoptimizer (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-configservice (1.83.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-connect (1.77.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-connectcampaignservice (1.1.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-connectcases (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-connectcontactlens (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-connectparticipant (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-connectwisdomservice (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-controltower (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-core (3.158.1) - aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.525.0) - aws-sigv4 (~> 1.1) - jmespath (~> 1, >= 1.6.1) - aws-sdk-costandusagereportservice (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-costexplorer (1.78.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-customerprofiles (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-databasemigrationservice (1.53.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-dataexchange (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-datapipeline (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-datasync (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-dax (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-detective (1.29.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-devicefarm (1.52.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-devopsguru (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-directconnect (1.54.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-directoryservice (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-dlm (1.52.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-docdb (1.44.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-drs (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-dynamodb (1.77.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-dynamodbstreams (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ebs (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ec2 (1.341.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ec2instanceconnect (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ecr (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ecrpublic (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ecs (1.102.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-efs (1.54.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-eks (1.77.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticache (1.79.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticbeanstalk (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticinference (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancing (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancingv2 (1.79.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticsearchservice (1.66.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-elastictranscoder (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-emr (1.53.0) - aws-sdk-core (~> 3, >= 3.121.2) - aws-sigv4 (~> 1.1) - aws-sdk-emrcontainers (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-emrserverless (1.1.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-eventbridge (1.24.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-finspace (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-finspacedata (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-firehose (1.48.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-fis (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-fms (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-forecastqueryservice (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-forecastservice (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-frauddetector (1.34.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-fsx (1.60.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-gamelift (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-gamesparks (1.1.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-glacier (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-globalaccelerator (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-glue (1.88.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-gluedatabrew (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-greengrass (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-greengrassv2 (1.19.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-groundstation (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-guardduty (1.59.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-health (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-healthlake (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-honeycode (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iam (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-identitystore (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-imagebuilder (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-importexport (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv2 (~> 1.0) - aws-sdk-inspector (1.43.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-inspector2 (1.6.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iot (1.94.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iot1clickdevicesservice (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iot1clickprojects (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotanalytics (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotdataplane (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotdeviceadvisor (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotevents (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ioteventsdata (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotfleethub (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotfleetwise (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotjobsdataplane (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotsecuretunneling (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotsitewise (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotthingsgraph (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iottwinmaker (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotwireless (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ivs (1.23.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ivschat (1.4.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kafka (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kafkaconnect (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kendra (1.59.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-keyspaces (1.2.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesis (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisanalytics (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisanalyticsv2 (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideo (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideoarchivedmedia (1.44.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideomedia (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideosignalingchannels (1.19.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-kms (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lakeformation (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lambda (1.85.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lambdapreview (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lex (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lexmodelbuildingservice (1.57.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lexmodelsv2 (1.28.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lexruntimev2 (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-licensemanager (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-licensemanagerusersubscriptions (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lightsail (1.69.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-locationservice (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lookoutequipment (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lookoutforvision (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-lookoutmetrics (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-machinelearning (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-macie (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-macie2 (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mainframemodernization (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-managedblockchain (1.32.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-managedgrafana (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-marketplacecatalog (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-marketplacecommerceanalytics (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-marketplaceentitlementservice (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-marketplacemetering (1.44.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediaconnect (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediaconvert (1.92.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-medialive (1.89.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediapackage (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediapackagevod (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediastore (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediastoredata (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediatailor (1.55.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-memorydb (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mgn (1.14.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-migrationhub (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-migrationhubconfig (1.20.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-migrationhuborchestrator (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-migrationhubrefactorspaces (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-migrationhubstrategyrecommendations (1.4.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mobile (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mq (1.40.0) - aws-sdk-core (~> 3, >= 3.120.0) - aws-sigv4 (~> 1.1) - aws-sdk-mturk (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-mwaa (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-neptune (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-networkfirewall (1.19.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-networkmanager (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-nimblestudio (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-opensearchservice (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-opsworks (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-opsworkscm (1.52.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-organizations (1.59.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-outposts (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-panorama (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-personalize (1.43.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-personalizeevents (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-personalizeruntime (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-pi (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-pinpoint (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-pinpointemail (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-pinpointsmsvoice (1.32.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-pinpointsmsvoicev2 (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-polly (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-pricing (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-privatenetworks (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-prometheusservice (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-proton (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-qldb (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-qldbsession (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-quicksight (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ram (1.26.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-rds (1.156.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-rdsdataservice (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-recyclebin (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-redshift (1.85.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-redshiftdataapiservice (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-redshiftserverless (1.3.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-rekognition (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-resiliencehub (1.6.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-resourcegroups (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-resourcegroupstaggingapi (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-resources (3.143.0) - aws-sdk-accessanalyzer (~> 1) - aws-sdk-account (~> 1) - aws-sdk-acm (~> 1) - aws-sdk-acmpca (~> 1) - aws-sdk-alexaforbusiness (~> 1) - aws-sdk-amplify (~> 1) - aws-sdk-amplifybackend (~> 1) - aws-sdk-amplifyuibuilder (~> 1) - aws-sdk-apigateway (~> 1) - aws-sdk-apigatewaymanagementapi (~> 1) - aws-sdk-apigatewayv2 (~> 1) - aws-sdk-appconfig (~> 1) - aws-sdk-appconfigdata (~> 1) - aws-sdk-appflow (~> 1) - aws-sdk-appintegrationsservice (~> 1) - aws-sdk-applicationautoscaling (~> 1) - aws-sdk-applicationcostprofiler (~> 1) - aws-sdk-applicationdiscoveryservice (~> 1) - aws-sdk-applicationinsights (~> 1) - aws-sdk-appmesh (~> 1) - aws-sdk-appregistry (~> 1) - aws-sdk-apprunner (~> 1) - aws-sdk-appstream (~> 1) - aws-sdk-appsync (~> 1) - aws-sdk-athena (~> 1) - aws-sdk-auditmanager (~> 1) - aws-sdk-augmentedairuntime (~> 1) - aws-sdk-autoscaling (~> 1) - aws-sdk-autoscalingplans (~> 1) - aws-sdk-backup (~> 1) - aws-sdk-backupgateway (~> 1) - aws-sdk-backupstorage (~> 1) - aws-sdk-batch (~> 1) - aws-sdk-billingconductor (~> 1) - aws-sdk-braket (~> 1) - aws-sdk-budgets (~> 1) - aws-sdk-chime (~> 1) - aws-sdk-chimesdkidentity (~> 1) - aws-sdk-chimesdkmediapipelines (~> 1) - aws-sdk-chimesdkmeetings (~> 1) - aws-sdk-chimesdkmessaging (~> 1) - aws-sdk-cloud9 (~> 1) - aws-sdk-cloudcontrolapi (~> 1) - aws-sdk-clouddirectory (~> 1) - aws-sdk-cloudformation (~> 1) - aws-sdk-cloudfront (~> 1) - aws-sdk-cloudhsm (~> 1) - aws-sdk-cloudhsmv2 (~> 1) - aws-sdk-cloudsearch (~> 1) - aws-sdk-cloudsearchdomain (~> 1) - aws-sdk-cloudtrail (~> 1) - aws-sdk-cloudwatch (~> 1) - aws-sdk-cloudwatchevents (~> 1) - aws-sdk-cloudwatchevidently (~> 1) - aws-sdk-cloudwatchlogs (~> 1) - aws-sdk-cloudwatchrum (~> 1) - aws-sdk-codeartifact (~> 1) - aws-sdk-codebuild (~> 1) - aws-sdk-codecommit (~> 1) - aws-sdk-codedeploy (~> 1) - aws-sdk-codeguruprofiler (~> 1) - aws-sdk-codegurureviewer (~> 1) - aws-sdk-codepipeline (~> 1) - aws-sdk-codestar (~> 1) - aws-sdk-codestarconnections (~> 1) - aws-sdk-codestarnotifications (~> 1) - aws-sdk-cognitoidentity (~> 1) - aws-sdk-cognitoidentityprovider (~> 1) - aws-sdk-cognitosync (~> 1) - aws-sdk-comprehend (~> 1) - aws-sdk-comprehendmedical (~> 1) - aws-sdk-computeoptimizer (~> 1) - aws-sdk-configservice (~> 1) - aws-sdk-connect (~> 1) - aws-sdk-connectcampaignservice (~> 1) - aws-sdk-connectcases (~> 1) - aws-sdk-connectcontactlens (~> 1) - aws-sdk-connectparticipant (~> 1) - aws-sdk-connectwisdomservice (~> 1) - aws-sdk-controltower (~> 1) - aws-sdk-costandusagereportservice (~> 1) - aws-sdk-costexplorer (~> 1) - aws-sdk-customerprofiles (~> 1) - aws-sdk-databasemigrationservice (~> 1) - aws-sdk-dataexchange (~> 1) - aws-sdk-datapipeline (~> 1) - aws-sdk-datasync (~> 1) - aws-sdk-dax (~> 1) - aws-sdk-detective (~> 1) - aws-sdk-devicefarm (~> 1) - aws-sdk-devopsguru (~> 1) - aws-sdk-directconnect (~> 1) - aws-sdk-directoryservice (~> 1) - aws-sdk-dlm (~> 1) - aws-sdk-docdb (~> 1) - aws-sdk-drs (~> 1) - aws-sdk-dynamodb (~> 1) - aws-sdk-dynamodbstreams (~> 1) - aws-sdk-ebs (~> 1) - aws-sdk-ec2 (~> 1) - aws-sdk-ec2instanceconnect (~> 1) - aws-sdk-ecr (~> 1) - aws-sdk-ecrpublic (~> 1) - aws-sdk-ecs (~> 1) - aws-sdk-efs (~> 1) - aws-sdk-eks (~> 1) - aws-sdk-elasticache (~> 1) - aws-sdk-elasticbeanstalk (~> 1) - aws-sdk-elasticinference (~> 1) - aws-sdk-elasticloadbalancing (~> 1) - aws-sdk-elasticloadbalancingv2 (~> 1) - aws-sdk-elasticsearchservice (~> 1) - aws-sdk-elastictranscoder (~> 1) - aws-sdk-emr (~> 1) - aws-sdk-emrcontainers (~> 1) - aws-sdk-emrserverless (~> 1) - aws-sdk-eventbridge (~> 1) - aws-sdk-finspace (~> 1) - aws-sdk-finspacedata (~> 1) - aws-sdk-firehose (~> 1) - aws-sdk-fis (~> 1) - aws-sdk-fms (~> 1) - aws-sdk-forecastqueryservice (~> 1) - aws-sdk-forecastservice (~> 1) - aws-sdk-frauddetector (~> 1) - aws-sdk-fsx (~> 1) - aws-sdk-gamelift (~> 1) - aws-sdk-gamesparks (~> 1) - aws-sdk-glacier (~> 1) - aws-sdk-globalaccelerator (~> 1) - aws-sdk-glue (~> 1) - aws-sdk-gluedatabrew (~> 1) - aws-sdk-greengrass (~> 1) - aws-sdk-greengrassv2 (~> 1) - aws-sdk-groundstation (~> 1) - aws-sdk-guardduty (~> 1) - aws-sdk-health (~> 1) - aws-sdk-healthlake (~> 1) - aws-sdk-honeycode (~> 1) - aws-sdk-iam (~> 1) - aws-sdk-identitystore (~> 1) - aws-sdk-imagebuilder (~> 1) - aws-sdk-importexport (~> 1) - aws-sdk-inspector (~> 1) - aws-sdk-inspector2 (~> 1) - aws-sdk-iot (~> 1) - aws-sdk-iot1clickdevicesservice (~> 1) - aws-sdk-iot1clickprojects (~> 1) - aws-sdk-iotanalytics (~> 1) - aws-sdk-iotdataplane (~> 1) - aws-sdk-iotdeviceadvisor (~> 1) - aws-sdk-iotevents (~> 1) - aws-sdk-ioteventsdata (~> 1) - aws-sdk-iotfleethub (~> 1) - aws-sdk-iotfleetwise (~> 1) - aws-sdk-iotjobsdataplane (~> 1) - aws-sdk-iotsecuretunneling (~> 1) - aws-sdk-iotsitewise (~> 1) - aws-sdk-iotthingsgraph (~> 1) - aws-sdk-iottwinmaker (~> 1) - aws-sdk-iotwireless (~> 1) - aws-sdk-ivs (~> 1) - aws-sdk-ivschat (~> 1) - aws-sdk-kafka (~> 1) - aws-sdk-kafkaconnect (~> 1) - aws-sdk-kendra (~> 1) - aws-sdk-keyspaces (~> 1) - aws-sdk-kinesis (~> 1) - aws-sdk-kinesisanalytics (~> 1) - aws-sdk-kinesisanalyticsv2 (~> 1) - aws-sdk-kinesisvideo (~> 1) - aws-sdk-kinesisvideoarchivedmedia (~> 1) - aws-sdk-kinesisvideomedia (~> 1) - aws-sdk-kinesisvideosignalingchannels (~> 1) - aws-sdk-kms (~> 1) - aws-sdk-lakeformation (~> 1) - aws-sdk-lambda (~> 1) - aws-sdk-lambdapreview (~> 1) - aws-sdk-lex (~> 1) - aws-sdk-lexmodelbuildingservice (~> 1) - aws-sdk-lexmodelsv2 (~> 1) - aws-sdk-lexruntimev2 (~> 1) - aws-sdk-licensemanager (~> 1) - aws-sdk-licensemanagerusersubscriptions (~> 1) - aws-sdk-lightsail (~> 1) - aws-sdk-locationservice (~> 1) - aws-sdk-lookoutequipment (~> 1) - aws-sdk-lookoutforvision (~> 1) - aws-sdk-lookoutmetrics (~> 1) - aws-sdk-machinelearning (~> 1) - aws-sdk-macie (~> 1) - aws-sdk-macie2 (~> 1) - aws-sdk-mainframemodernization (~> 1) - aws-sdk-managedblockchain (~> 1) - aws-sdk-managedgrafana (~> 1) - aws-sdk-marketplacecatalog (~> 1) - aws-sdk-marketplacecommerceanalytics (~> 1) - aws-sdk-marketplaceentitlementservice (~> 1) - aws-sdk-marketplacemetering (~> 1) - aws-sdk-mediaconnect (~> 1) - aws-sdk-mediaconvert (~> 1) - aws-sdk-medialive (~> 1) - aws-sdk-mediapackage (~> 1) - aws-sdk-mediapackagevod (~> 1) - aws-sdk-mediastore (~> 1) - aws-sdk-mediastoredata (~> 1) - aws-sdk-mediatailor (~> 1) - aws-sdk-memorydb (~> 1) - aws-sdk-mgn (~> 1) - aws-sdk-migrationhub (~> 1) - aws-sdk-migrationhubconfig (~> 1) - aws-sdk-migrationhuborchestrator (~> 1) - aws-sdk-migrationhubrefactorspaces (~> 1) - aws-sdk-migrationhubstrategyrecommendations (~> 1) - aws-sdk-mobile (~> 1) - aws-sdk-mq (~> 1) - aws-sdk-mturk (~> 1) - aws-sdk-mwaa (~> 1) - aws-sdk-neptune (~> 1) - aws-sdk-networkfirewall (~> 1) - aws-sdk-networkmanager (~> 1) - aws-sdk-nimblestudio (~> 1) - aws-sdk-opensearchservice (~> 1) - aws-sdk-opsworks (~> 1) - aws-sdk-opsworkscm (~> 1) - aws-sdk-organizations (~> 1) - aws-sdk-outposts (~> 1) - aws-sdk-panorama (~> 1) - aws-sdk-personalize (~> 1) - aws-sdk-personalizeevents (~> 1) - aws-sdk-personalizeruntime (~> 1) - aws-sdk-pi (~> 1) - aws-sdk-pinpoint (~> 1) - aws-sdk-pinpointemail (~> 1) - aws-sdk-pinpointsmsvoice (~> 1) - aws-sdk-pinpointsmsvoicev2 (~> 1) - aws-sdk-polly (~> 1) - aws-sdk-pricing (~> 1) - aws-sdk-privatenetworks (~> 1) - aws-sdk-prometheusservice (~> 1) - aws-sdk-proton (~> 1) - aws-sdk-qldb (~> 1) - aws-sdk-qldbsession (~> 1) - aws-sdk-quicksight (~> 1) - aws-sdk-ram (~> 1) - aws-sdk-rds (~> 1) - aws-sdk-rdsdataservice (~> 1) - aws-sdk-recyclebin (~> 1) - aws-sdk-redshift (~> 1) - aws-sdk-redshiftdataapiservice (~> 1) - aws-sdk-redshiftserverless (~> 1) - aws-sdk-rekognition (~> 1) - aws-sdk-resiliencehub (~> 1) - aws-sdk-resourcegroups (~> 1) - aws-sdk-resourcegroupstaggingapi (~> 1) - aws-sdk-robomaker (~> 1) - aws-sdk-rolesanywhere (~> 1) - aws-sdk-route53 (~> 1) - aws-sdk-route53domains (~> 1) - aws-sdk-route53recoverycluster (~> 1) - aws-sdk-route53recoverycontrolconfig (~> 1) - aws-sdk-route53recoveryreadiness (~> 1) - aws-sdk-route53resolver (~> 1) - aws-sdk-s3 (~> 1) - aws-sdk-s3control (~> 1) - aws-sdk-s3outposts (~> 1) - aws-sdk-sagemaker (~> 1) - aws-sdk-sagemakeredgemanager (~> 1) - aws-sdk-sagemakerfeaturestoreruntime (~> 1) - aws-sdk-sagemakerruntime (~> 1) - aws-sdk-savingsplans (~> 1) - aws-sdk-schemas (~> 1) - aws-sdk-secretsmanager (~> 1) - aws-sdk-securityhub (~> 1) - aws-sdk-serverlessapplicationrepository (~> 1) - aws-sdk-servicecatalog (~> 1) - aws-sdk-servicediscovery (~> 1) - aws-sdk-servicequotas (~> 1) - aws-sdk-ses (~> 1) - aws-sdk-sesv2 (~> 1) - aws-sdk-shield (~> 1) - aws-sdk-signer (~> 1) - aws-sdk-simpledb (~> 1) - aws-sdk-sms (~> 1) - aws-sdk-snowball (~> 1) - aws-sdk-snowdevicemanagement (~> 1) - aws-sdk-sns (~> 1) - aws-sdk-sqs (~> 1) - aws-sdk-ssm (~> 1) - aws-sdk-ssmcontacts (~> 1) - aws-sdk-ssmincidents (~> 1) - aws-sdk-ssoadmin (~> 1) - aws-sdk-states (~> 1) - aws-sdk-storagegateway (~> 1) - aws-sdk-support (~> 1) - aws-sdk-supportapp (~> 1) - aws-sdk-swf (~> 1) - aws-sdk-synthetics (~> 1) - aws-sdk-textract (~> 1) - aws-sdk-timestreamquery (~> 1) - aws-sdk-timestreamwrite (~> 1) - aws-sdk-transcribeservice (~> 1) - aws-sdk-transcribestreamingservice (~> 1) - aws-sdk-transfer (~> 1) - aws-sdk-translate (~> 1) - aws-sdk-voiceid (~> 1) - aws-sdk-waf (~> 1) - aws-sdk-wafregional (~> 1) - aws-sdk-wafv2 (~> 1) - aws-sdk-wellarchitected (~> 1) - aws-sdk-workdocs (~> 1) - aws-sdk-worklink (~> 1) - aws-sdk-workmail (~> 1) - aws-sdk-workmailmessageflow (~> 1) - aws-sdk-workspaces (~> 1) - aws-sdk-workspacesweb (~> 1) - aws-sdk-xray (~> 1) - aws-sdk-robomaker (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-rolesanywhere (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53 (1.65.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53domains (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53recoverycluster (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53recoverycontrolconfig (1.10.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53recoveryreadiness (1.10.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53resolver (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.114.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.4) - aws-sdk-s3control (1.43.0) - aws-sdk-core (~> 3, >= 3.122.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3outposts (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-sagemaker (1.143.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-sagemakeredgemanager (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-sagemakerfeaturestoreruntime (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-sagemakerruntime (1.43.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-savingsplans (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-schemas (1.23.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-secretsmanager (1.46.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-securityhub (1.69.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-serverlessapplicationrepository (1.43.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-servicecatalog (1.60.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-servicediscovery (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-servicequotas (1.23.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ses (1.41.0) - aws-sdk-core (~> 3, >= 3.120.0) - aws-sigv4 (~> 1.1) - aws-sdk-sesv2 (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-shield (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-signer (1.32.0) - aws-sdk-core (~> 3, >= 3.120.0) - aws-sigv4 (~> 1.1) - aws-sdk-simpledb (1.29.0) - aws-sdk-core (~> 3, >= 3.120.0) - aws-sigv2 (~> 1.0) - aws-sdk-sms (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-snowball (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-snowdevicemanagement (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-sns (1.55.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-sqs (1.51.1) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ssm (1.141.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ssmcontacts (1.14.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ssmincidents (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-ssoadmin (1.20.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-states (1.39.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-storagegateway (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-support (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-supportapp (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-swf (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-synthetics (1.19.0) - aws-sdk-core (~> 3, >= 3.121.2) - aws-sigv4 (~> 1.1) - aws-sdk-textract (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-timestreamquery (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-timestreamwrite (1.14.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-transcribeservice (1.76.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-transcribestreamingservice (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-transfer (1.34.0) - aws-sdk-core (~> 3, >= 3.112.0) - aws-sigv4 (~> 1.1) - aws-sdk-translate (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-voiceid (1.9.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-waf (1.43.0) - aws-sdk-core (~> 3, >= 3.122.0) - aws-sigv4 (~> 1.1) - aws-sdk-wafregional (1.48.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-wafv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-wellarchitected (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-workdocs (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-worklink (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-workmail (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-workmailmessageflow (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-workspaces (1.73.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-workspacesweb (1.4.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sdk-xray (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) - aws-sigv4 (~> 1.1) - aws-sigv2 (1.1.0) - aws-sigv4 (1.5.2) - aws-eventstream (~> 1, >= 1.0.2) - azure_graph_rbac (0.17.2) - ms_rest_azure (~> 0.12.0) - azure_mgmt_key_vault (0.17.7) - ms_rest_azure (~> 0.12.0) - azure_mgmt_resources (0.18.2) - ms_rest_azure (~> 0.12.0) - azure_mgmt_security (0.19.0) - ms_rest_azure (~> 0.12.0) - azure_mgmt_storage (0.23.0) - ms_rest_azure (~> 0.12.0) - bcrypt_pbkdf (1.1.0) - bson (4.15.0) - builder (3.2.4) - chef-telemetry (1.1.1) - chef-config - concurrent-ruby (~> 1.0) - coderay (1.1.3) - concurrent-ruby (1.1.10) - cookstyle (7.32.1) - rubocop (= 1.25.1) - declarative (0.0.20) - delegate (0.2.0) - diff-lcs (1.5.0) - docker-api (2.2.0) - excon (>= 0.47.0) - multi_json - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - dry-configurable (0.15.0) - concurrent-ruby (~> 1.0) - dry-core (~> 0.6) - dry-container (0.11.0) - concurrent-ruby (~> 1.0) - dry-core (0.8.1) - concurrent-ruby (~> 1.0) - dry-inflector (0.3.0) - dry-initializer (3.1.1) - dry-logic (1.2.0) - concurrent-ruby (~> 1.0) - dry-core (~> 0.5, >= 0.5) - dry-schema (1.10.6) - concurrent-ruby (~> 1.0) - dry-configurable (~> 0.13, >= 0.13.0) - dry-core (~> 0.5, >= 0.5) - dry-initializer (~> 3.0) - dry-logic (~> 1.2) - dry-types (~> 1.5) - dry-types (1.5.1) - concurrent-ruby (~> 1.0) - dry-container (~> 0.3) - dry-core (~> 0.5, >= 0.5) - dry-inflector (~> 0.1, >= 0.1.2) - dry-logic (~> 1.0, >= 1.0.2) - dry-validation (1.8.1) - concurrent-ruby (~> 1.0) - dry-container (~> 0.7, >= 0.7.1) - dry-core (~> 0.5, >= 0.5) - dry-initializer (~> 3.0) - dry-schema (~> 1.8, >= 1.8.0) - ed25519 (1.3.0) - erubi (1.11.0) - excon (0.93.0) - faraday (1.4.3) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) - multipart-post (>= 1.2, < 3) - ruby2_keywords (>= 0.0.4) - faraday-cookie_jar (0.0.7) - faraday (>= 0.8.0) - http-cookie (~> 1.0.0) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday_middleware (1.0.0) - faraday (~> 1.0) - ffi (1.15.5) - fuzzyurl (0.9.0) - google-api-client (0.52.0) - addressable (~> 2.5, >= 2.5.1) - googleauth (~> 0.9) - httpclient (>= 2.8.1, < 3.0) - mini_mime (~> 1.0) - representable (~> 3.0) - retriable (>= 2.0, < 4.0) - rexml - signet (~> 0.12) - googleauth (0.14.0) - faraday (>= 0.17.3, < 2.0) - jwt (>= 1.4, < 3.0) - memoist (~> 0.16) - multi_json (~> 1.11) - os (>= 0.9, < 2.0) - signet (~> 0.14) - gssapi (1.3.1) - ffi (>= 1.0.1) - gyoku (1.4.0) - builder (>= 2.1.2) - rexml (~> 3.0) - hashie (4.1.0) - http-cookie (1.0.5) - domain_name (~> 0.5) - httpclient (2.8.3) - i18n (1.12.0) - concurrent-ruby (~> 1.0) - inifile (3.0.0) - io-console (0.5.11) - irb (1.4.2) - reline (>= 0.3.0) - jmespath (1.6.1) - json (2.6.2) - jwt (2.5.0) - kitchen-terraform (6.1.0) - delegate (>= 0.1.0, < 0.3.0) - dry-validation (~> 1.6) - inspec (>= 3, < 5, != 4.24.32, != 4.24.28, != 4.24.26) - json (~> 2.3) - mixlib-shellout (~> 3.0) - test-kitchen (>= 2.1, < 4.0) - tty-which (~> 0.5.0) - license-acceptance (2.1.13) - pastel (~> 0.7) - tomlrb (>= 1.2, < 3.0) - tty-box (~> 0.6) - tty-prompt (~> 0.20) - little-plugger (1.1.4) - logging (2.3.1) - little-plugger (~> 1.1) - multi_json (~> 1.14) - memoist (0.16.2) - method_source (1.0.0) - mini_mime (1.1.2) - minitest (5.16.3) - mixlib-config (3.0.27) - tomlrb - mixlib-log (3.0.9) - mixlib-shellout (3.2.7) - chef-utils - mongo (2.13.2) - bson (>= 4.8.2, < 5.0.0) - ms_rest (0.7.6) - concurrent-ruby (~> 1.0) - faraday (>= 0.9, < 2.0.0) - timeliness (~> 0.3.10) - ms_rest_azure (0.12.0) - concurrent-ruby (~> 1.0) - faraday (>= 0.9, < 2.0.0) - faraday-cookie_jar (~> 0.0.6) - ms_rest (~> 0.7.6) - multi_json (1.15.0) - multipart-post (2.2.3) - net-scp (3.0.0) - net-ssh (>= 2.6.5, < 7.0.0) - net-ssh (6.1.0) - net-ssh-gateway (2.0.0) - net-ssh (>= 4.0.0) - nori (2.6.0) - os (1.1.4) - parallel (1.22.1) - parser (3.1.2.1) - ast (~> 2.4.1) - parslet (1.8.2) - pastel (0.8.0) - tty-color (~> 0.5) - pry (0.14.1) - coderay (~> 1.1) - method_source (~> 1.0) - public_suffix (5.0.0) - rainbow (3.1.1) - rake (13.0.6) - regexp_parser (2.6.0) - reline (0.3.1) - io-console (~> 0.5) - representable (3.2.0) - declarative (< 0.1.0) - trailblazer-option (>= 0.1.1, < 0.2.0) - uber (< 0.2.0) - retriable (3.1.2) - rexml (3.2.5) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.2) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.2) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-its (1.3.0) - rspec-core (>= 3.0.0) - rspec-expectations (>= 3.0.0) - rspec-mocks (3.10.3) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-retry (0.6.2) - rspec-core (> 3.3) - rspec-support (3.10.3) - rubocop (1.25.1) - parallel (~> 1.10) - parser (>= 3.1.0.0) - rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.15.1, < 2.0) - ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.21.0) - parser (>= 3.1.1.0) - ruby-progressbar (1.11.0) - ruby2_keywords (0.0.5) - rubyntlm (0.6.3) - rubyzip (2.3.2) - semverse (3.0.2) - signet (0.17.0) - addressable (~> 2.8) - faraday (>= 0.17.5, < 3.a) - jwt (>= 1.5, < 3.0) - multi_json (~> 1.10) - sslshake (1.3.1) - strings (0.2.1) - strings-ansi (~> 0.2) - unicode-display_width (>= 1.5, < 3.0) - unicode_utils (~> 1.4) - strings-ansi (0.2.0) - test-kitchen (3.3.2) - bcrypt_pbkdf (~> 1.0) - chef-utils (>= 16.4.35) - ed25519 (~> 1.2) - license-acceptance (>= 1.0.11, < 3.0) - mixlib-install (~> 3.6) - mixlib-shellout (>= 1.2, < 4.0) - net-scp (>= 1.1, < 4.0) - net-ssh (>= 2.9, < 7.0) - net-ssh-gateway (>= 1.2, < 3.0) - thor (>= 0.19, < 2.0) - winrm (~> 2.0) - winrm-elevated (~> 1.0) - winrm-fs (~> 1.1) - thor (1.2.1) - timeliness (0.3.10) - tomlrb (1.3.0) - trailblazer-option (0.1.2) - train (3.10.1) - activesupport (>= 6.0.3.1) - azure_graph_rbac (~> 0.16) - azure_mgmt_key_vault (~> 0.17) - azure_mgmt_resources (~> 0.15) - azure_mgmt_security (~> 0.18) - azure_mgmt_storage (~> 0.18) - docker-api (>= 1.26, < 3.0) - google-api-client (>= 0.23.9, <= 0.52.0) - googleauth (>= 0.6.6, <= 0.14.0) - inifile (~> 3.0) - train-core (= 3.10.1) - train-winrm (~> 0.2) - train-aws (0.2.24) - aws-sdk-alexaforbusiness (~> 1.0) - aws-sdk-amplify (~> 1.32.0) - aws-sdk-apigateway (~> 1.0) - aws-sdk-apigatewayv2 (~> 1.0) - aws-sdk-applicationautoscaling (>= 1.46, < 1.52) - aws-sdk-athena (~> 1.0) - aws-sdk-autoscaling (>= 1.22, < 1.64) - aws-sdk-batch (>= 1.36, < 1.48) - aws-sdk-budgets (~> 1.0) - aws-sdk-cloudformation (~> 1.0) - aws-sdk-cloudfront (~> 1.0) - aws-sdk-cloudhsm (~> 1.0) - aws-sdk-cloudhsmv2 (~> 1.0) - aws-sdk-cloudtrail (~> 1.8) - aws-sdk-cloudwatch (~> 1.13) - aws-sdk-cloudwatchevents (>= 1.36, < 1.47) - aws-sdk-cloudwatchlogs (~> 1.13) - aws-sdk-codecommit (~> 1.0) - aws-sdk-codedeploy (~> 1.0) - aws-sdk-codepipeline (~> 1.0) - aws-sdk-cognitoidentity (>= 1.26, < 1.32) - aws-sdk-cognitoidentityprovider (>= 1.46, < 1.54) - aws-sdk-configservice (~> 1.21) - aws-sdk-core (~> 3.0) - aws-sdk-costandusagereportservice (~> 1.6) - aws-sdk-databasemigrationservice (>= 1.42, < 1.54) - aws-sdk-dynamodb (~> 1.31) - aws-sdk-ec2 (~> 1.70) - aws-sdk-ecr (~> 1.18) - aws-sdk-ecrpublic (~> 1.3) - aws-sdk-ecs (~> 1.30) - aws-sdk-efs (~> 1.0) - aws-sdk-eks (~> 1.9) - aws-sdk-elasticache (~> 1.0) - aws-sdk-elasticbeanstalk (~> 1.0) - aws-sdk-elasticloadbalancing (~> 1.8) - aws-sdk-elasticloadbalancingv2 (~> 1.0) - aws-sdk-elasticsearchservice (~> 1.0) - aws-sdk-emr (~> 1.53.0) - aws-sdk-eventbridge (~> 1.24.0) - aws-sdk-firehose (~> 1.0) - aws-sdk-glue (>= 1.71, < 1.89) - aws-sdk-guardduty (~> 1.31) - aws-sdk-iam (~> 1.13) - aws-sdk-kafka (~> 1.0) - aws-sdk-kinesis (~> 1.0) - aws-sdk-kms (~> 1.13) - aws-sdk-lambda (~> 1.0) - aws-sdk-mq (~> 1.40.0) - aws-sdk-networkfirewall (>= 1.6.0) - aws-sdk-networkmanager (>= 1.13.0) - aws-sdk-organizations (>= 1.17, < 1.60) - aws-sdk-ram (>= 1.21, < 1.27) - aws-sdk-rds (~> 1.43) - aws-sdk-redshift (~> 1.0) - aws-sdk-route53 (~> 1.0) - aws-sdk-route53domains (~> 1.0) - aws-sdk-route53resolver (~> 1.0) - aws-sdk-s3 (~> 1.30) - aws-sdk-s3control (~> 1.43.0) - aws-sdk-secretsmanager (>= 1.42, < 1.47) - aws-sdk-securityhub (~> 1.0) - aws-sdk-servicecatalog (>= 1.48, < 1.61) - aws-sdk-ses (~> 1.41.0) - aws-sdk-shield (~> 1.30) - aws-sdk-signer (~> 1.32.0) - aws-sdk-simpledb (~> 1.29.0) - aws-sdk-sms (~> 1.0) - aws-sdk-sns (~> 1.9) - aws-sdk-sqs (~> 1.10) - aws-sdk-ssm (~> 1.0) - aws-sdk-states (>= 1.35, < 1.40) - aws-sdk-synthetics (~> 1.19.0) - aws-sdk-transfer (>= 1.26, < 1.35) - aws-sdk-waf (~> 1.43.0) - train-core (3.10.1) - addressable (~> 2.5) - ffi (!= 1.13.0) - json (>= 1.8, < 3.0) - mixlib-shellout (>= 2.0, < 4.0) - net-scp (>= 1.2, < 4.0) - net-ssh (>= 2.9, < 7.0) - train-habitat (0.2.22) - train-winrm (0.2.13) - winrm (>= 2.3.6, < 3.0) - winrm-elevated (~> 1.2.2) - winrm-fs (~> 1.0) - tty-box (0.7.0) - pastel (~> 0.8) - strings (~> 0.2.0) - tty-cursor (~> 0.7) - tty-color (0.6.0) - tty-cursor (0.7.1) - tty-prompt (0.23.1) - pastel (~> 0.8) - tty-reader (~> 0.8) - tty-reader (0.9.0) - tty-cursor (~> 0.7) - tty-screen (~> 0.8) - wisper (~> 2.0) - tty-screen (0.8.1) - tty-table (0.12.0) - pastel (~> 0.8) - strings (~> 0.2.0) - tty-screen (~> 0.8) - tty-which (0.5.0) - tzinfo (2.0.5) - concurrent-ruby (~> 1.0) - uber (0.1.0) - unf (0.1.4) - unf_ext - unicode-display_width (2.3.0) - unicode_utils (1.4.0) - winrm (2.3.6) - builder (>= 2.1.2) - erubi (~> 1.8) - gssapi (~> 1.2) - gyoku (~> 1.0) - httpclient (~> 2.2, >= 2.2.0.2) - logging (>= 1.6.1, < 3.0) - nori (~> 2.0) - rubyntlm (~> 0.6.0, >= 0.6.3) - winrm-elevated (1.2.3) - erubi (~> 1.8) - winrm (~> 2.0) - winrm-fs (~> 1.0) - winrm-fs (1.3.5) - erubi (~> 1.8) - logging (>= 1.6.1, < 3.0) - rubyzip (~> 2.0) - winrm (~> 2.0) - wisper (2.0.1) - -PLATFORMS - ruby - x86_64-linux - -DEPENDENCIES - activesupport! - aws-sdk (~> 3)! - chef-config! - chef-utils! - cinc-auditor-bin! - inspec (= 4.52.9)! - inspec-core! - irb! - kitchen-terraform (~> 6.1.0)! - mixlib-install! - mixlib-versioning! - rspec-retry! - test-kitchen! - unf_ext! - -BUNDLED WITH - 2.2.23 diff --git a/common/jenkins-agents/terraform/docker/README.md b/common/jenkins-agents/terraform/docker/README.md deleted file mode 100644 index f8d10dd59..000000000 --- a/common/jenkins-agents/terraform/docker/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Terraform Jenkins Agent - -## Introduction -This jenkins agent is used to build and deploy AWS & Azure workloads in the cloud. - -The image is built in the global `ods` project and is named `jenkins-agent-terraform`. It can be referenced in a `Jenkinsfile` with `ods/jenkins-agent-terraform`. - -## Known limitations -MS Azure support is on the Roadmap. diff --git a/common/jenkins-agents/terraform/docker/python_requirements b/common/jenkins-agents/terraform/docker/python_requirements deleted file mode 100644 index baae38fc0..000000000 --- a/common/jenkins-agents/terraform/docker/python_requirements +++ /dev/null @@ -1,10 +0,0 @@ -# -boto3~=1.20 -requests~=2.27 -simplejson~=3.17 -argparse~=1.4 -botocore -pipenv~=2022.1 -python-hcl2~=2.0 -pre-commit~=2.17 -azure-cli~=2.32 diff --git a/common/jenkins-agents/terraform/docker/yum.repos.d/rockylinux.repo b/common/jenkins-agents/terraform/docker/yum.repos.d/rockylinux.repo deleted file mode 100644 index 38210a8f9..000000000 --- a/common/jenkins-agents/terraform/docker/yum.repos.d/rockylinux.repo +++ /dev/null @@ -1,17 +0,0 @@ -[rockylinux-baseos] -name=Rocky Linux 8 - BaseOS -#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=BaseOS-8 -baseurl=https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/ -gpgcheck=1 -enabled=0 -countme=1 -gpgkey=https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/RPM-GPG-KEY-rockyofficial - -[rockylinux-appstream] -name=Rocky Linux 8 - AppStream -#mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=AppStream-8 -baseurl=http://dl.rockylinux.org/pub/rocky/8/AppStream/x86_64/os/ -gpgcheck=1 -enabled=0 -countme=1 -gpgkey=https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/RPM-GPG-KEY-rockyofficial diff --git a/common/jenkins-agents/terraform/ocp-config/Tailorfile b/common/jenkins-agents/terraform/ocp-config/Tailorfile deleted file mode 100644 index 323639b57..000000000 --- a/common/jenkins-agents/terraform/ocp-config/Tailorfile +++ /dev/null @@ -1,5 +0,0 @@ -namespace ods -selector app=jenkins-agent-terraform -param-file ../../../../../ods-configuration/ods-core.env -ignore-unknown-parameters true -bc,is diff --git a/common/jenkins-agents/terraform/ocp-config/bc.yml b/common/jenkins-agents/terraform/ocp-config/bc.yml deleted file mode 100644 index 676843d41..000000000 --- a/common/jenkins-agents/terraform/ocp-config/bc.yml +++ /dev/null @@ -1,58 +0,0 @@ -apiVersion: template.openshift.io/v1 -kind: Template -metadata: - name: jenkins-agent-terraform -parameters: -- name: ODS_BITBUCKET_PROJECT - description: Bitbucket project name. - value: opendevstack -- name: REPO_BASE - required: true -- name: ODS_IMAGE_TAG - required: true - value: latest -- name: ODS_GIT_REF - required: true -- name: JENKINS_AGENT_DOCKERFILE_PATH - value: Dockerfile.ubi8 - description: Dockerfile variant to use -objects: -- apiVersion: build.openshift.io/v1 - kind: BuildConfig - metadata: - name: jenkins-agent-terraform - labels: - app: jenkins-agent-terraform - spec: - failedBuildsHistoryLimit: 5 - nodeSelector: null - output: - to: - kind: ImageStreamTag - name: jenkins-agent-terraform:${ODS_IMAGE_TAG} - postCommit: {} - resources: - limits: - cpu: "1" - memory: "2Gi" - requests: - cpu: "200m" - memory: "1Gi" - runPolicy: Serial - source: - contextDir: common/jenkins-agents/terraform/docker - git: - ref: ${ODS_GIT_REF} - uri: ${REPO_BASE}/${ODS_BITBUCKET_PROJECT}/ods-quickstarters.git - sourceSecret: - name: cd-user-token - type: Git - strategy: - dockerStrategy: - dockerfilePath: ${JENKINS_AGENT_DOCKERFILE_PATH} - from: - kind: ImageStreamTag - name: jenkins-agent-base:${ODS_IMAGE_TAG} - type: Docker - successfulBuildsHistoryLimit: 5 - triggers: [] diff --git a/common/jenkins-agents/terraform/ocp-config/is.yml b/common/jenkins-agents/terraform/ocp-config/is.yml deleted file mode 100644 index 4660b82ee..000000000 --- a/common/jenkins-agents/terraform/ocp-config/is.yml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: template.openshift.io/v1 -kind: Template -metadata: - name: jenkins-agent-terraform -objects: -- apiVersion: image.openshift.io/v1 - kind: ImageStream - metadata: - name: jenkins-agent-terraform - labels: - app: jenkins-agent-terraform - spec: - lookupPolicy: - local: false diff --git a/docs/modules/jenkins-agents/pages/inf-terraform.adoc b/docs/modules/jenkins-agents/pages/inf-terraform.adoc index b47155b46..baae869d0 100644 --- a/docs/modules/jenkins-agents/pages/inf-terraform.adoc +++ b/docs/modules/jenkins-agents/pages/inf-terraform.adoc @@ -4,12 +4,11 @@ This agents are used to deploy (Cloud) resources using terraform code. There are two terraform jenkins agents available: -1. jenkins-agent-terraform (ruby 2.7.5, terraform 1.2.x) - this agent is *DEPRECATED* and will be removed in the next release. 1. jenkins-agent-terraform-2306 (ruby 3.2.2, terraform 1.4.6, and matching tools). 1. jenkins-agent-terraform-2408 (ruby 3.3.4, terraform 1.9.4, and matching tools) - this is the current active jenkins agent. -The images are built in the global `ods` project and are named `jenkins-agent-terraform`, `jenkins-agent-terraform-2306` and `jenkins-agent-terraform-2408`. -It can be referenced in a `Jenkinsfile` with e.g. `ods/jenkins-agent-terraform:latest`, `ods/jenkins-agent-terraform-2306:latest` or `ods/jenkins-agent-terraform-2408:latest`. +The images are built in the global `ods` project and are named `jenkins-agent-terraform-2306` and `jenkins-agent-terraform-2408`. +It can be referenced in a `Jenkinsfile` with e.g. `ods/jenkins-agent-terraform-2306:latest` or `ods/jenkins-agent-terraform-2408:latest`. == Features 1. support of multiple terraform versions using tfenv diff --git a/docs/modules/jenkins-agents/pages/nodejs16.adoc b/docs/modules/jenkins-agents/pages/nodejs16.adoc deleted file mode 100644 index 41f4db97d..000000000 --- a/docs/modules/jenkins-agents/pages/nodejs16.adoc +++ /dev/null @@ -1,17 +0,0 @@ -= Node.js 16 - Jenkins agent - -== Introduction -This agent is used to build Node.js-based projects, through `npm` or `yarn`. - -The image is built in the global `ods` project and is named `jenkins-agent-nodejs16`. -It can be referenced in a `Jenkinsfile` with `ods/jenkins-agent-nodejs16`. - -IMPORTANT: Node.js version 16 reaches end-of-life in 2024-04-30. Support for this version will be removed in releases after this date. Please consider switching to newer versions of this agent as soon as they are available. - -== Features -1. Nexus configuration -2. HTTP proxy awareness -3. Yarn & Cypress dependencies pre-installed - -== Known limitations -n/a diff --git a/docs/modules/quickstarters/nav.adoc b/docs/modules/quickstarters/nav.adoc index 93979b226..28de2a741 100644 --- a/docs/modules/quickstarters/nav.adoc +++ b/docs/modules/quickstarters/nav.adoc @@ -23,7 +23,6 @@ *** xref:jenkins-agents:golang.adoc[Go] *** xref:jenkins-agents:inf-terraform.adoc[terraform] *** xref:jenkins-agents:jdk.adoc[jdk] -*** xref:jenkins-agents:nodejs16.adoc[Node.js 16] *** xref:jenkins-agents:nodejs18.adoc[Node.js 18] *** xref:jenkins-agents:nodejs20.adoc[Node.js 20] *** xref:jenkins-agents:nodejs22.adoc[Node.js 22]