Skip to content

Add container image scanning workflow #13

Add container image scanning workflow

Add container image scanning workflow #13

name: Run Image Scan for Amazon CloudWatch Observability Helm Chart
on:
push:
branches:
- main
pull_request:
types: [ opened, reopened, synchronize, ready_for_review ]
branches:
- main
workflow_dispatch:
permissions:
id-token: write
contents: read
env:
TERRAFORM_AWS_ASSUME_ROLE: ${{ secrets.TERRAFORM_AWS_ASSUME_ROLE }}
AWS_DEFAULT_REGION: us-west-2
jobs:
ContainerImageScan:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
yaml: [
{
"domain": ".manager.image.repositoryDomainMap.public",
"repository": ".manager.image.repository",
"tag": ".manager.image.tag"
},
{
"domain": ".manager.autoInstrumentationImage.java.repositoryDomain",
"repository": ".manager.autoInstrumentationImage.java.repository",
"tag": ".manager.autoInstrumentationImage.java.tag"
},
{
"domain": ".manager.autoInstrumentationImage.python.repositoryDomain",
"repository": ".manager.autoInstrumentationImage.python.repository",
"tag": ".manager.autoInstrumentationImage.python.tag"
},
{
"domain": ".manager.autoInstrumentationImage.dotnet.repositoryDomain",
"repository": ".manager.autoInstrumentationImage.dotnet.repository",
"tag": ".manager.autoInstrumentationImage.dotnet.tag"
},
{
"domain": ".agent.image.repositoryDomainMap.public",
"repository": ".agent.image.repository",
"tag": ".agent.image.tag"
},
{
"domain": ".dcgmExporter.image.repositoryDomainMap.public",
"repository": ".dcgmExporter.image.repository",
"tag": ".dcgmExporter.image.tag"
},
{
"domain": ".neuronMonitor.image.repositoryDomainMap.public",
"repository": ".neuronMonitor.image.repository",
"tag": ".neuronMonitor.image.tag"
}
]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }}
aws-region: ${{ env.AWS_DEFAULT_REGION }}
- name: Login ECR
uses: aws-actions/amazon-ecr-login@v1
- name: "Get image paths"
id: image
uses: mikefarah/yq@master
with:
cmd:
echo CONTAINER_IMAGE="$(yq '${{ matrix.yaml.domain }}' charts/amazon-cloudwatch-observability/values.yaml)/$(yq '${{ matrix.yaml.repository }}' charts/amazon-cloudwatch-observability/values.yaml):$(yq '${{ matrix.yaml.tag }}' charts/amazon-cloudwatch-observability/values.yaml)" >> $GITHUB_OUTPUT
- name: "Scan for vulnerabilities"
uses: crazy-max/ghaction-container-scan@v3
with:
image: ${{ steps.image.outputs.CONTAINER_IMAGE }}
severity_threshold: HIGH