Browse Source

Flow to update product version on AWS Marketplace (#1951)

* add publish step

* test path

* set workdir for packer

* update workflow

Co-authored-by: Azat Safin <azsafin@provectus.com>
Co-authored-by: Oleksii Troian <otroian@provectus.com>
Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com>
azatsafin 3 years ago
parent
commit
f8713cf3ef
1 changed files with 26 additions and 1 deletions
  1. 26 1
      .github/workflows/aws_publisher.yaml

+ 26 - 1
.github/workflows/aws_publisher.yaml

@@ -10,6 +10,10 @@ on:
         description: 'Version of KafkaUI'
         required: true
         default: '0.3.2'
+      PublishOnMarketplace:
+        description: 'If set to true, the request to update AWS Server product version will be raised'
+        required: true
+        default: false
 
 jobs:
   build-ami:
@@ -46,6 +50,27 @@ jobs:
         with:
           command: build
           arguments: "-color=false -on-error=abort -var=kafka_ui_release_version=${{ github.event.inputs.KafkaUIReleaseVersion }}"
-          target: kafka-ui-infra/ami/kafka-ui.pkr.hcl
+          target: kafka-ui.pkr.hcl
+          working_directory: ${{ env.WORK_DIR }}
         env:
           PACKER_LOG: 1
+
+      # add fresh AMI to AWS Marketplace
+      - name: Publish Artifact at Marketplace
+        if: ${{ github.event.inputs.PublishOnMarketplace == true }}
+        env:
+          PRODUCT_ID: ${{ secrets.AWS_SERVER_PRODUCT_ID }}
+          RELEASE_VERSION: "${{ github.event.inputs.KafkaUIReleaseVersion }}"
+          RELEASE_NOTES: "https://github.com/provectus/kafka-ui/releases/tag/v${{ github.event.inputs.KafkaUIReleaseVersion }}"
+          MP_ROLE_ARN: ${{ secrets.AWS_MARKETPLACE_AMI_ACCESS_ROLE }} # https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-marketplace-ami-access
+          AMI_OS_VERSION: "amzn2-ami-kernel-5.10-hvm-*-x86_64-gp2"
+        run: |
+          set -x
+          pwd
+          ls -la kafka-ui-infra/ami
+          echo $WORK_DIR/manifest.json
+          export AMI_ID=$(jq -r '.builds[-1].artifact_id' kafka-ui-infra/ami/manifest.json | cut -d ":" -f2)
+          /bin/bash kafka-ui-infra/aws-marketplace/prepare_changeset.sh > changeset.json
+          aws marketplace-catalog start-change-set \
+            --catalog "AWSMarketplace" \
+            --change-set "$(cat changeset.json)"