name: e2e Test Manual

on:
  workflow_dispatch:
    inputs:
      workerNodesCount:
        description: "Number of worker nodes to spawn."
        default: "2"
        required: true
      controlNodesCount:
        description: "Number of control-plane nodes to spawn."
        default: "1"
        required: true
      autoscale:
        description: "Autoscale?"
        type: boolean
        default: false
        required: true
      cloudProvider:
        description: "Which cloud provider to use."
        type: choice
        options:
          - "gcp"
          - "azure"
        default: "gcp"
        required: true
      machineType:
        description: "VM machine type. Make sure it matches selected cloud provider!"
        type: choice
        options:
          - "n2d-standard-4" # GCP
          - "Standard_DC4as_v5" # Azure
        default: "n2d-standard-4"
        required: true
      sonobuoyTestSuiteCmd:
        description: "Which tests should be run? Check README for guidance!"
        default: "--mode quick"
        required: true
      kubernetesVersion:
        description: "Kubernetes version to create the cluster from."
        default: "1.24"
        required: true
      coreosImage:
        description: "CoreOS image (full path). Examples are in internal/config/config.go."
        default: "debug-latest"
        required: false
      isDebugImage:
        description: "Is CoreOS image a debug image?"
        type: boolean
        default: true
        required: false

jobs:
  e2e-test-manual:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
      - name: Run manual E2E test
        uses: ./.github/actions/e2e_test
        with:
          workerNodesCount: ${{ github.event.inputs.workerNodesCount }}
          controlNodesCount: ${{ github.event.inputs.controlNodesCount }}
          autoscale: ${{ github.event.inputs.autoscale }}
          cloudProvider: ${{ github.event.inputs.cloudProvider }}
          machineType: ${{ github.event.inputs.machineType }}
          gcp_service_account_json: ${{ secrets.GCP_SERVICE_ACCOUNT }}
          gcpClusterServiceAccountKey: ${{ secrets.GCP_CLUSTER_SERVICE_ACCOUNT }}
          azure_credentials: ${{ secrets.AZURE_E2E_CREDENTIALS }}
          sonobuoyTestSuiteCmd: ${{ github.event.inputs.sonobuoyTestSuiteCmd }}
          kubernetesVersion: ${{ github.event.inputs.kubernetesVersion }}
          azureClientSecret: ${{ secrets.AZURE_E2E_CLIENT_SECRET }}
          msTeamsWebhook: ${{ secrets.MS_TEAMS_WEBHOOK_URI }}
          coreosImage: ${{ github.event.inputs.coreosImage }}
          isDebugImage: ${{ github.event.inputs.isDebugImage }}
          cosignPublicKey: ${{ secrets.COSIGN_PUBLIC_KEY }}
          cosignPrivateKey: ${{ secrets.COSIGN_PRIVATE_KEY }}
          cosignPassword: ${{ secrets.COSIGN_PASSWORD }}
          awsAccessKeyID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          awsSecretAccessKey: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          awsDefaultRegion: ${{ secrets.AWS_DEFAULT_REGION }}
          awsBucketName: ${{ secrets.PUBLIC_BUCKET_NAME }}
