version: 1
kind: platform-infra-egress-proxy-benchmarks

metadata:
  owner: unidesk
  relatedIssues:
    - 1032
    - 1048
    - 1077
    - 1110

profiles:
  real-deps-500m:
    enabled: true
    workload: k3s-real-deps
    description: Real k3s dependency egress benchmark; kubelet pulls remote alpine/node/golang images, then pod stages run apk, npm, go and git mirror clone/sync through the YAML-declared proxy.
    image: docker.io/library/alpine:3.20
    imagePullPolicy: Always
    targetOverrides: {}
    payloadMiB: 500
    timeoutSeconds: 3600
    ttlSecondsAfterFinished: 3600
    noMirror:
      apt: not-used
      npmRegistry: https://registry.npmjs.org/
      pipIndexUrl: not-used
      registryMirror: forbidden
    aptPackages: []
    dependencyDownload:
      enabled: false
      url: https://example.invalid/not-used
      chunks: 0
      expectedMiB: 0
    realDeps:
      minProxyMiB: 500
      imagePullPolicy: Always
      apk:
        image: docker.io/library/alpine:3.20
        packages:
          - build-base
          - cmake
          - git
          - go
          - nodejs
          - npm
          - cargo
          - python3-dev
          - openssl-dev
          - libffi-dev
        expectedMiB: 80
      npm:
        image: docker.io/library/node:22-bookworm
        registry: https://registry.npmjs.org/
        packages:
          "@swc/core": latest
          "@types/node": latest
          eslint: latest
          next: latest
          react: latest
          react-dom: latest
          rollup: latest
          typescript: latest
          vite: latest
          webpack: latest
        expectedMiB: 120
      go:
        image: docker.io/library/golang:1.24-bookworm
        goProxy: https://proxy.golang.org,direct
        modules:
          - github.com/aws/aws-sdk-go-v2/config@v1.29.14
          - github.com/gin-gonic/gin@v1.10.1
          - github.com/prometheus/client_golang@v1.20.5
          - go.opentelemetry.io/otel@v1.34.0
          - google.golang.org/grpc@v1.69.4
          - k8s.io/client-go@v0.32.4
        expectedMiB: 180
      gitMirror:
        image: docker.io/library/alpine:3.20
        remote: https://github.com/git/git.git
        expectedMiB: 30

  no-mirror-600m:
    enabled: true
    workload: k3s-build
    description: Generic k3s build benchmark with no registry/source mirror and at least 600 MiB output payload.
    image: docker.io/library/python:3.12-alpine
    imagePullPolicy: IfNotPresent
    targetOverrides:
      D601:
        image: 127.0.0.1:5000/platform-infra/sub2api-account-sentinel:python-3.12-alpine-openai-2.41.1
        imagePullPolicy: IfNotPresent
    payloadMiB: 600
    timeoutSeconds: 3600
    ttlSecondsAfterFinished: 3600
    noMirror:
      apt: system-default
      npmRegistry: https://registry.npmjs.org/
      pipIndexUrl: https://pypi.org/simple
      registryMirror: forbidden
    aptPackages: []
    dependencyDownload:
      enabled: true
      url: https://speed.cloudflare.com/__down?bytes=67108864
      chunks: 8
      expectedMiB: 512
