diff --git a/.github/workflows/java-ec2-asg-test.yml b/.github/workflows/java-ec2-asg-test.yml index 267d050b8..7102f4e70 100644 --- a/.github/workflows/java-ec2-asg-test.yml +++ b/.github/workflows/java-ec2-asg-test.yml @@ -14,6 +14,11 @@ on: caller-workflow-name: required: true type: string + java-version: + description: "Currently support version 8, 11, 17, 21, 22" + required: false + type: string + default: '11' cpu-architecture: description: "Permitted values: x86_64 or arm64" required: false @@ -32,9 +37,10 @@ permissions: env: E2E_TEST_AWS_REGION: ${{ inputs.aws-region }} CALLER_WORKFLOW_NAME: ${{ inputs.caller-workflow-name }} + JAVA_VERSION: ${{ inputs.java-version }} CPU_ARCHITECTURE: ${{ inputs.cpu-architecture }} - SAMPLE_APP_FRONTEND_SERVICE_JAR: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/main-service.jar - SAMPLE_APP_REMOTE_SERVICE_JAR: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/remote-service.jar + SAMPLE_APP_FRONTEND_SERVICE_JAR: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/java-main-service-v${{ inputs.java-version }}.jar + SAMPLE_APP_REMOTE_SERVICE_JAR: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/java-remote-service-v${{ inputs.java-version }}.jar E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }} E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }} METRIC_NAMESPACE: ApplicationSignals @@ -151,6 +157,7 @@ jobs: -var="sample_remote_app_jar=${{ env.SAMPLE_APP_REMOTE_SERVICE_JAR }}" \ -var="get_cw_agent_rpm_command=${{ env.GET_CW_AGENT_RPM_COMMAND }}" \ -var="get_adot_jar_command=${{ env.GET_ADOT_JAR_COMMAND }}" \ + -var="language_version=${{ env.JAVA_VERSION }}" \ -var="cpu_architecture=${{ env.CPU_ARCHITECTURE }}" \ || deployment_failed=$? diff --git a/.github/workflows/java-ec2-canary.yml b/.github/workflows/java-ec2-canary.yml index 4ce2f4fcb..332c078cd 100644 --- a/.github/workflows/java-ec2-canary.yml +++ b/.github/workflows/java-ec2-canary.yml @@ -29,6 +29,7 @@ jobs: with: aws-region: ${{ matrix.aws-region }} caller-workflow-name: 'appsignals-e2e-ec2-canary-test' + java-version: '11' cpu-architecture: 'x86_64' maven: @@ -38,4 +39,5 @@ jobs: aws-region: 'us-east-1' caller-workflow-name: 'appsignals-e2e-ec2-maven-canary-test' otel-source: 'maven' + java-version: '11' cpu-architecture: 'x86_64' diff --git a/.github/workflows/java-ec2-default-retry.yml b/.github/workflows/java-ec2-default-retry.yml index f0f5e85c4..77edc7aca 100644 --- a/.github/workflows/java-ec2-default-retry.yml +++ b/.github/workflows/java-ec2-default-retry.yml @@ -14,6 +14,9 @@ on: caller-workflow-name: required: true type: string + java-version: + required: true + type: string cpu-architecture: required: false type: string @@ -34,6 +37,7 @@ jobs: with: aws-region: ${{ inputs.aws-region }} caller-workflow-name: ${{ inputs.caller-workflow-name }} + java-version: ${{ inputs.java-version }} otel-source: ${{ inputs.otel-source }} cpu-architecture: ${{ inputs.cpu-architecture }} @@ -45,6 +49,7 @@ jobs: with: aws-region: ${{ inputs.aws-region }} caller-workflow-name: ${{ inputs.caller-workflow-name }} + java-version: ${{ inputs.java-version }} otel-source: ${{ inputs.otel-source }} cpu-architecture: ${{ inputs.cpu-architecture }} diff --git a/.github/workflows/java-ec2-default-test.yml b/.github/workflows/java-ec2-default-test.yml index 811b1a3bf..270b89930 100644 --- a/.github/workflows/java-ec2-default-test.yml +++ b/.github/workflows/java-ec2-default-test.yml @@ -14,6 +14,11 @@ on: caller-workflow-name: required: true type: string + java-version: + description: "Currently support version 8, 11, 17, 21, 22" + required: false + type: string + default: '11' cpu-architecture: description: "Permitted values: x86_64 or arm64" required: false @@ -36,10 +41,11 @@ permissions: env: E2E_TEST_AWS_REGION: ${{ inputs.aws-region }} CALLER_WORKFLOW_NAME: ${{ inputs.caller-workflow-name }} + JAVA_VERSION: ${{ inputs.java-version }} OTEL_SOURCE: ${{ inputs.otel-source }} CPU_ARCHITECTURE: ${{ inputs.cpu-architecture }} - SAMPLE_APP_FRONTEND_SERVICE_JAR: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/main-service.jar - SAMPLE_APP_REMOTE_SERVICE_JAR: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/remote-service.jar + SAMPLE_APP_FRONTEND_SERVICE_JAR: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/java-main-service-v${{ inputs.java-version }}.jar + SAMPLE_APP_REMOTE_SERVICE_JAR: s3://aws-appsignals-sample-app-prod-${{ inputs.aws-region }}/java-remote-service-v${{ inputs.java-version }}.jar E2E_TEST_ACCOUNT_ID: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ACCOUNT_ID }} E2E_TEST_ROLE_NAME: ${{ secrets.APPLICATION_SIGNALS_E2E_TEST_ROLE_NAME }} METRIC_NAMESPACE: ApplicationSignals @@ -160,6 +166,7 @@ jobs: -var="sample_remote_app_jar=${{ env.SAMPLE_APP_REMOTE_SERVICE_JAR }}" \ -var="get_cw_agent_rpm_command=${{ env.GET_CW_AGENT_RPM_COMMAND }}" \ -var="get_adot_jar_command=${{ env.GET_ADOT_JAR_COMMAND }}" \ + -var="language_version=${{ env.JAVA_VERSION }}" \ -var="cpu_architecture=${{ env.CPU_ARCHITECTURE }}" \ || deployment_failed=$? diff --git a/.github/workflows/k8s-patch-os-jobs.yml b/.github/workflows/k8s-patch-os-jobs.yml index d02745646..fb933356c 100644 --- a/.github/workflows/k8s-patch-os-jobs.yml +++ b/.github/workflows/k8s-patch-os-jobs.yml @@ -202,29 +202,29 @@ jobs: "e2e-test/${{ matrix.instance.repo_name }}/${{ matrix.instance.language }}-k8s-master-node-endpoint-pending-value" ) endpoint_secret=$(aws secretsmanager get-secret-value --secret-id "${PENDING_SECRET_KEYS[0]}" --query SecretString --output text) - + instance_name=$(aws ec2 describe-instances \ --filters "Name=ip-address,Values=$endpoint_secret" \ --query "Reservations[*].Instances[*].{Name:Tags[?Key=='Name']|[0].Value}" \ --output text) - + if [ -n "$instance_name" ]; then prev_testing_id=$(echo $instance_name | awk -F'-' '{print $(NF-1)"-"$NF}') - + aws ec2 delete-key-pair --key-name "k8s-on-ec2-${{ matrix.instance.ec2_name }}-${{ matrix.instance.language }}-key-pair-$prev_testing_id" - + main_instance_name=k8s-on-ec2-${{ matrix.instance.ec2_name }}-${{ matrix.instance.language }}-master-$prev_testing_id worker_instance_name=k8s-on-ec2-${{ matrix.instance.ec2_name }}-${{ matrix.instance.language }}-worker-$prev_testing_id main_instance_id=$(aws ec2 describe-instances \ --filters "Name=tag:Name,Values=$main_instance_name" \ --query "Reservations[*].Instances[*].InstanceId" \ --output text) - + worker_instance_id=$(aws ec2 describe-instances \ --filters "Name=tag:Name,Values=$worker_instance_name" \ --query "Reservations[*].Instances[*].InstanceId" \ --output text) - + aws ec2 terminate-instances --instance-ids $main_instance_id aws ec2 terminate-instances --instance-ids $worker_instance_id fi diff --git a/terraform/java/ec2/asg/main.tf b/terraform/java/ec2/asg/main.tf index b930d51b4..f33e797d7 100644 --- a/terraform/java/ec2/asg/main.tf +++ b/terraform/java/ec2/asg/main.tf @@ -96,8 +96,14 @@ resource "aws_launch_configuration" "launch_configuration" { #!/bin/bash # Make the Terraform fail if any step throws an error set -o errexit - # Install Java 11 and wget - sudo yum install wget java-11-amazon-corretto -y + # Install wget + sudo yum install wget -y + # Install Java + if [[ "${var.language_version}" == "8" ]]; then + sudo yum install java-1.8.0-amazon-corretto -y + else + sudo yum install java-${var.language_version}-amazon-corretto -y + fi # Copy in CW Agent configuration agent_config='${replace(replace(file("./amazon-cloudwatch-agent.json"), "/\\s+/", ""), "$REGION", var.aws_region)}' @@ -186,8 +192,14 @@ resource "null_resource" "remote_service_setup" { <<-EOF # Make the Terraform fail if any step throws an error set -o errexit - # Install Java 11 and wget - sudo yum install wget java-11-amazon-corretto -y + # Install wget + sudo yum install wget -y + # Install Java + if [[ "${var.language_version}" == "8" ]]; then + sudo yum install java-1.8.0-amazon-corretto -y + else + sudo yum install java-${var.language_version}-amazon-corretto -y + fi # Copy in CW Agent configuration agent_config='${replace(replace(file("./amazon-cloudwatch-agent.json"), "/\\s+/", ""), "$REGION", var.aws_region)}' diff --git a/terraform/java/ec2/asg/variables.tf b/terraform/java/ec2/asg/variables.tf index 72b70243d..1f32a57c1 100644 --- a/terraform/java/ec2/asg/variables.tf +++ b/terraform/java/ec2/asg/variables.tf @@ -45,6 +45,10 @@ variable "canary_type" { default = "java-ec2-asg" } -variable "cpu_architecture" { +variable "language_version" { + default = "11" +} + + variable "cpu_architecture" { default = "x86_64" } \ No newline at end of file diff --git a/terraform/java/ec2/default/main.tf b/terraform/java/ec2/default/main.tf index f432b8154..5c19668dc 100644 --- a/terraform/java/ec2/default/main.tf +++ b/terraform/java/ec2/default/main.tf @@ -107,8 +107,15 @@ resource "null_resource" "main_service_setup" { <<-EOF # Make the Terraform fail if any step throws an error set -o errexit - # Install Java 11 and wget - sudo yum install wget java-11-amazon-corretto -y + # Install wget + sudo yum install wget -y + # Install Java + echo + if [[ "${var.language_version}" == "8" ]]; then + sudo yum install java-1.8.0-amazon-corretto -y + else + sudo yum install java-${var.language_version}-amazon-corretto -y + fi # Copy in CW Agent configuration agent_config='${replace(replace(file("./amazon-cloudwatch-agent.json"), "/\\s+/", ""), "$REGION", var.aws_region)}' @@ -190,8 +197,14 @@ resource "null_resource" "remote_service_setup" { <<-EOF # Make the Terraform fail if any step throws an error set -o errexit - # Install Java 11 and wget - sudo yum install wget java-11-amazon-corretto -y + # Install wget + sudo yum install wget -y + # Install Java + if [[ "${var.language_version}" == "8" ]]; then + sudo yum install java-1.8.0-amazon-corretto -y + else + sudo yum install java-${var.language_version}-amazon-corretto -y + fi # Copy in CW Agent configuration agent_config='${replace(replace(file("./amazon-cloudwatch-agent.json"), "/\\s+/", ""), "$REGION", var.aws_region)}' diff --git a/terraform/java/ec2/default/variables.tf b/terraform/java/ec2/default/variables.tf index 89c446c19..e8b0ef066 100644 --- a/terraform/java/ec2/default/variables.tf +++ b/terraform/java/ec2/default/variables.tf @@ -45,6 +45,10 @@ variable "canary_type" { default = "java-ec2-default" } +variable "language_version" { + default = "11" +} + variable "cpu_architecture" { default = "x86_64" } \ No newline at end of file