diff --git a/.github/workflows/build_and_push_image.yml b/.github/workflows/build_and_push_image.yml index adc3d229..384aed50 100644 --- a/.github/workflows/build_and_push_image.yml +++ b/.github/workflows/build_and_push_image.yml @@ -26,6 +26,8 @@ on: required: true AWS_SECRET_ACCESS_KEY: required: true + SUFFIX: + required: true jobs: @@ -49,19 +51,19 @@ jobs: # https://github.com/aws/containers-roadmap/issues/876 - name: Build and push image build cache to Docker Hub if: ${{ inputs.push_cache }} - run: make push-image-cache + run: make push-image-cache-${{ secrets.SUFFIX }} - name: Build and push image to Docker Hub - run: make push-image BUILD_TAG=${{ inputs.build_tag }} + run: make push-image-${{ secrets.SUFFIX }} BUILD_TAG=${{ inputs.build_tag }} - name: Tag latest to point to most recent release in Docker Hub if: ${{ inputs.tag_latest }} - run: make tag-release-image-with-latest BUILD_TAG=${{ inputs.build_tag }} + run: make tag-release-image-with-latest-${{ secrets.SUFFIX }} BUILD_TAG=${{ inputs.build_tag }} - name: Login to ECR run: make login-ecr env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - name: Build and push image to ECR - run: make push-image-ecr BUILD_TAG=${{ inputs.build_tag }} + run: make push-image-ecr-${{ secrets.SUFFIX }} BUILD_TAG=${{ inputs.build_tag }} - name: Tag latest to point to most recent release in ECR if: ${{ inputs.tag_latest }} - run: make tag-release-image-with-latest-ecr BUILD_TAG=${{ inputs.build_tag }} + run: make tag-release-image-with-latest-ecr-${{ secrets.SUFFIX }} BUILD_TAG=${{ inputs.build_tag }} diff --git a/.github/workflows/dev_builds.yml b/.github/workflows/dev_builds.yml index fa72df59..c104eb74 100644 --- a/.github/workflows/dev_builds.yml +++ b/.github/workflows/dev_builds.yml @@ -23,7 +23,7 @@ jobs: - name: Print tag run: echo "Running dev build for ${{ steps.extract_tag.outputs.tag }}" build-and-push-image: - uses: SumoLogic/sumologic-kubernetes-tools/.github/workflows/build_and_push_image.yml@main + uses: ./.github/workflows/build_and_push_image.yml needs: extract-image-tag with: build_tag: ${{ needs.extract-image-tag.outputs.build_tag }} @@ -33,5 +33,17 @@ jobs: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + SUFFIX: tools + build-and-push-image-kubectl: + uses: ./.github/workflows/build_and_push_image.yml + needs: extract-image-tag + with: + build_tag: ${{ needs.extract-image-tag.outputs.build_tag }} + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_KUBECTL }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_KUBECTL }} + SUFFIX: kubectl build-binaries: - uses: SumoLogic/sumologic-kubernetes-tools/.github/workflows/build_binaries.yml@main + uses: ./.github/workflows/build_binaries.yml diff --git a/.github/workflows/pre_release_builds.yml b/.github/workflows/pre_release_builds.yml index f61db481..7fdffd55 100644 --- a/.github/workflows/pre_release_builds.yml +++ b/.github/workflows/pre_release_builds.yml @@ -20,7 +20,7 @@ jobs: - name: Print tag run: echo "Running pre release build for ${{ steps.extract_tag.outputs.tag }}" build-and-push-image: - uses: SumoLogic/sumologic-kubernetes-tools/.github/workflows/build_and_push_image.yml@main + uses: ./.github/workflows/build_and_push_image.yml needs: extract-image-tag with: build_tag: ${{ needs.extract-image-tag.outputs.build_tag }} @@ -29,3 +29,15 @@ jobs: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + SUFFIX: tools + build-and-push-image-kubectl: + uses: ./.github/workflows/build_and_push_image.yml + needs: extract-image-tag + with: + build_tag: ${{ needs.extract-image-tag.outputs.build_tag }} + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_KUBECTL }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_KUBECTL }} + SUFFIX: kubectl diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml index b238ae82..9f179a0b 100644 --- a/.github/workflows/release_builds.yml +++ b/.github/workflows/release_builds.yml @@ -18,7 +18,7 @@ jobs: - name: Print tag run: echo "Running release build for ${{ steps.extract_tag.outputs.tag }}" build-and-push-image: - uses: SumoLogic/sumologic-kubernetes-tools/.github/workflows/build_and_push_image.yml@main + uses: ./.github/workflows/build_and_push_image.yml needs: extract-image-tag with: build_tag: ${{ needs.extract-image-tag.outputs.build_tag }} @@ -28,8 +28,21 @@ jobs: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + SUFFIX: tools + build-and-push-image-kubectl: + uses: ./.github/workflows/build_and_push_image.yml + needs: extract-image-tag + with: + build_tag: ${{ needs.extract-image-tag.outputs.build_tag }} + tag_latest: true + secrets: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_KUBECTL }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_KUBECTL }} + SUFFIX: kubectl build-binaries: - uses: SumoLogic/sumologic-kubernetes-tools/.github/workflows/build_binaries.yml@main + uses: ./.github/workflows/build_binaries.yml create-release: name: Create Github release runs-on: ubuntu-20.04 diff --git a/Makefile b/Makefile index e7a74643..1f2b0666 100644 --- a/Makefile +++ b/Makefile @@ -50,30 +50,37 @@ build-image-multiplatform-tools: build-image-multiplatform-kubectl: TAG=$(BUILD_TAG) docker buildx bake kubectl-multiplatform -tag-release-image-with-latest: - make push-image BUILD_TAG=latest +tag-release-image-with-latest-tools: + make push-image-tools BUILD_TAG=latest -tag-release-image-with-latest-ecr: - make tag-release-image-with-latest REPO_URL=$(ECR_REPO_URL) +tag-release-image-with-latest-kubectl: + make push-image-kubectl BUILD_TAG=latest + +tag-release-image-with-latest-ecr-tools: + make tag-release-image-with-latest-tools REPO_URL=$(ECR_REPO_URL) + +tag-release-image-with-latest-ecr-kubectl: + make tag-release-image-with-latest-kubectl REPO_URL=$(ECR_REPO_URL) test-image: ./scripts/test-image.sh "$(IMAGE_NAME):$(BUILD_TAG)" -push-image-cache: +push-image-cache-tools: # only push cache to Dockerhub as ECR doesn't support it yet # https://github.com/aws/containers-roadmap/issues/876 docker buildx bake cache-multiplatform -push-image: push-image-tools push-image-kubectl - push-image-tools: IMAGE=$(REPO_URL) TAG=$(BUILD_TAG) docker buildx bake tools-multiplatform --push push-image-kubectl: IMAGE=$(REPO_URL) TAG=$(BUILD_TAG) docker buildx bake kubectl-multiplatform --push -push-image-ecr: - make push-image REPO_URL=$(ECR_REPO_URL) +push-image-ecr-tools: + make push-image-tools REPO_URL=$(ECR_REPO_URL) + +push-image-ecr-kubectl: + make push-image-kubectl REPO_URL=$(ECR_REPO_URL) login: echo "${DOCKER_PASSWORD}" | docker login -u sumodocker --password-stdin