prow/prowjobs/GoogleContainerTools/kpt-config-sync/kpt-config-sync-periodics.yaml (411 lines of code) (raw):
# YAML anchors for reference elsewhere.
# to view expanded yaml, run: `yq eval 'explode(.)' [file]`
prow_ignored:
- &config-sync-base-job
cluster: build-kpt-config-sync
decorate: true
decoration_config:
timeout: 4h
extra_refs:
- org: GoogleContainerTools
repo: kpt-config-sync
base_ref: main
spec: &config-sync-base-job-spec
serviceAccountName: e2e-test-runner
containers:
- &config-sync-base-job-container
image: us-docker.pkg.dev/kpt-config-sync-ci-artifacts/test-infra/gke-e2e:v2.0.0-go1.23.4-gcloud449.0.0-docker20.10.14
command:
- make
- test-e2e-gke-ci
resources:
requests:
memory: "8Gi"
cpu: "4000m"
nodeSelector:
# This job requires 8vCPUs or less, so it is "small".
kpt-config-sync/type: periodic
kpt-config-sync/size: small
# Base job definition for standard jobs
- &config-sync-standard-job
<<: *config-sync-base-job
# Run on even hours to stagger
cron: 0 */2 * * *
spec: &config-sync-standard-job-spec
<<: *config-sync-base-job-spec
containers:
- &config-sync-standard-job-container
<<: *config-sync-base-job-container
env:
- name: GKE_E2E_TIMEOUT
value: 4h
- name: GCP_PROJECT
value: kpt-config-sync-ci-main
- name: GCP_NETWORK
value: prow-e2e-network-1
# Use regional clusters to avoid capacity issues in a single zone
- name: GCP_ZONE
value: ""
- name: GCP_REGION
value: "us-west1"
- name: E2E_CREATE_CLUSTERS
value: "lazy"
# This can be set to true to destroy clusters after test execution
- name: E2E_DESTROY_CLUSTERS
value: "false"
- name: GKE_NUM_NODES
value: "1"
- name: GKE_MACHINE_TYPE
value: "n2-standard-4"
- name: GKE_DISK_TYPE
value: "pd-ssd"
- name: GKE_DISK_SIZE
value: "25Gb"
- name: E2E_GIT_PROVIDER
value: "local"
- name: E2E_OCI_PROVIDER
value: "gar"
- name: E2E_HELM_PROVIDER
value: "gar"
- name: E2E_NUM_CLUSTERS
value: "8"
# Base job definition for autopilot jobs
- &config-sync-autopilot-job
<<: *config-sync-base-job
# Run on odd hours to stagger
cron: 0 1-23/2 * * *
spec: &config-sync-autopilot-job-spec
<<: *config-sync-base-job-spec
containers:
- &config-sync-autopilot-job-container
<<: *config-sync-base-job-container
env:
- name: GKE_E2E_TIMEOUT
value: 4h
- name: GCP_PROJECT
value: kpt-config-sync-ci-main
- name: GCP_NETWORK
value: prow-e2e-network-1
# Autopilot clusters must be regional
- name: GCP_ZONE
value: ""
- name: GCP_REGION
value: "us-central1"
- name: E2E_CREATE_CLUSTERS
value: "lazy"
# This can be set to true to destroy clusters after test execution
- name: E2E_DESTROY_CLUSTERS
value: "false"
- name: E2E_GIT_PROVIDER
value: "local"
- name: E2E_OCI_PROVIDER
value: "gar"
- name: E2E_HELM_PROVIDER
value: "gar"
- name: E2E_NUM_CLUSTERS
value: "12"
- name: GKE_AUTOPILOT
value: "true"
periodics:
# One-off KinD periodic job.
# TODO: do we need this, given KinD is tested with presubmits?
- <<: *config-sync-base-job
name: kpt-config-sync-kind
interval: 1h
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: kind
labels:
preset-kind-volume-mounts: "true"
preset-service-account: "true"
preset-dind-enabled-memory: "true"
spec:
containers:
# https://github.com/kubernetes/test-infra/blob/master/images/kubekins-e2e/variants.yaml
- image: gcr.io/k8s-staging-test-infra/kubekins-e2e:v20250227-3a13bdd784-1.31
command:
- runner.sh
args:
- make
- test-e2e-kind
- 'E2E_GIT_PROVIDER=local'
- 'E2E_OCI_PROVIDER=local'
- 'E2E_HELM_PROVIDER=local'
securityContext:
privileged: true
resources:
requests:
memory: "50Gi"
cpu: "26000m"
nodeSelector:
kpt-config-sync/type: periodic
kpt-config-sync/size: large
#### Begin GKE standard jobs
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-regular
cron: 0 */2 * * *
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-regular
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-1'
- 'GKE_RELEASE_CHANNEL=regular'
- 'E2E_CLUSTER_PREFIX=standard-regular'
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-rapid
cron: 30 */2 * * *
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-rapid
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-3'
- 'GKE_RELEASE_CHANNEL=rapid'
- 'E2E_CLUSTER_PREFIX=standard-rapid'
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-rapid-latest
cron: 45 */2 * * *
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-rapid-latest
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-4'
- 'GKE_RELEASE_CHANNEL=rapid'
- 'GKE_CLUSTER_VERSION=latest'
- 'E2E_CLUSTER_PREFIX=standard-rapid-latest'
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-stable
cron: 15 */2 * * *
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-stable
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-5'
- 'GKE_RELEASE_CHANNEL=stable'
- 'E2E_CLUSTER_PREFIX=standard-stable'
#### End GKE standard jobs
#### Begin git provider specific jobs
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-regular-bitbucket
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-regular-bitbucket
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-6'
- 'GKE_RELEASE_CHANNEL=regular'
- 'E2E_CLUSTER_PREFIX=standard-regular-bitbucket'
- 'E2E_GIT_PROVIDER=bitbucket'
- 'E2E_OCI_PROVIDER=local' # Use local to minimize AR quota usage
- 'E2E_HELM_PROVIDER=local'
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-regular-gitlab
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-regular-gitlab
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-7'
- 'GKE_RELEASE_CHANNEL=regular'
- 'E2E_CLUSTER_PREFIX=standard-regular-gitlab'
- 'E2E_GIT_PROVIDER=gitlab'
- 'E2E_OCI_PROVIDER=local' # Use local to minimize AR quota usage
- 'E2E_HELM_PROVIDER=local'
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-regular-csr
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-regular-csr
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-8'
- 'GKE_RELEASE_CHANNEL=regular'
- 'E2E_CLUSTER_PREFIX=standard-regular-csr'
- 'E2E_GIT_PROVIDER=csr'
- 'E2E_OCI_PROVIDER=local' # Use local to minimize AR quota usage
- 'E2E_HELM_PROVIDER=local'
#### End git provider specific jobs
#### Begin GKE autopilot jobs
- <<: *config-sync-autopilot-job
name: kpt-config-sync-autopilot-regular
cron: 0 1-23/2 * * *
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: autopilot-regular
spec:
<<: *config-sync-autopilot-job-spec
containers:
- <<: *config-sync-autopilot-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-2'
- 'GKE_RELEASE_CHANNEL=regular'
- 'E2E_CLUSTER_PREFIX=autopilot-regular'
- <<: *config-sync-autopilot-job
name: kpt-config-sync-autopilot-stable
cron: 15 1-23/2 * * *
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: autopilot-stable
spec:
<<: *config-sync-autopilot-job-spec
containers:
- <<: *config-sync-autopilot-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-8'
- 'GKE_RELEASE_CHANNEL=stable'
- 'E2E_CLUSTER_PREFIX=autopilot-stable'
- <<: *config-sync-autopilot-job
name: kpt-config-sync-autopilot-rapid
cron: 30 1-23/2 * * *
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: autopilot-rapid
spec:
<<: *config-sync-autopilot-job-spec
containers:
- <<: *config-sync-autopilot-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-9'
- 'GKE_RELEASE_CHANNEL=rapid'
- 'E2E_CLUSTER_PREFIX=autopilot-rapid'
- <<: *config-sync-autopilot-job
name: kpt-config-sync-autopilot-rapid-latest
cron: 45 1-23/2 * * *
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: autopilot-rapid-latest
spec:
<<: *config-sync-autopilot-job-spec
containers:
- <<: *config-sync-autopilot-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-10'
- 'GKE_RELEASE_CHANNEL=rapid'
- 'GKE_CLUSTER_VERSION=latest'
- 'E2E_CLUSTER_PREFIX=autopilot-rapid-latest'
#### End GKE autopilot jobs
#### Begin one-off jobs
# The below job definitions each use a small number of clusters (e.g. 1),
# so they can share a single subnetwork (max 15 clusters per subnetwork).
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-regular-kcc
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-regular-kcc
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-11'
- 'GKE_RELEASE_CHANNEL=regular'
- 'E2E_CLUSTER_PREFIX=standard-regular-kcc'
- 'E2E_NUM_CLUSTERS=1'
- 'E2E_ARGS=--kcc'
- 'E2E_OCI_PROVIDER=local' # Use local to minimize AR quota usage
- 'E2E_HELM_PROVIDER=local'
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-regular-gcenode
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-regular-gcenode
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-11'
- 'GKE_RELEASE_CHANNEL=regular'
- 'E2E_CLUSTER_PREFIX=standard-regular-gcenode'
- 'E2E_NUM_CLUSTERS=1'
- 'E2E_ARGS=--gcenode'
- 'E2E_OCI_PROVIDER=local' # Use local to minimize AR quota usage
- 'E2E_HELM_PROVIDER=local'
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-regular-githubapp
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-regular-githubapp
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-11'
- 'GKE_RELEASE_CHANNEL=regular'
- 'E2E_CLUSTER_PREFIX=standard-regular-githubapp'
- 'E2E_NUM_CLUSTERS=1'
- 'E2E_ARGS=--githubapp'
- 'E2E_OCI_PROVIDER=local' # Use local to minimize AR quota usage
- 'E2E_HELM_PROVIDER=local'
- <<: *config-sync-standard-job
name: kpt-config-sync-standard-rapid-latest-stress
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: standard-rapid-latest-stress
spec:
<<: *config-sync-standard-job-spec
containers:
- <<: *config-sync-standard-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-usw1-11'
- 'GKE_RELEASE_CHANNEL=rapid'
- 'GKE_CLUSTER_VERSION=latest'
- 'E2E_CLUSTER_PREFIX=standard-rapid-latest-stress'
- 'E2E_NUM_CLUSTERS=1'
- 'GKE_NUM_NODES=5' # TestStressManyDeployments needs 50cpu & 51GiB for pods (13 nodes)
- 'GKE_MACHINE_TYPE=n2-standard-4' # 3.9cpu & 13.9GB allocatable
- 'GKE_DISK_SIZE=25Gb'
- 'E2E_ARGS=--stress'
resources:
requests:
memory: "24Gi" # Stress tests watch many large objects
cpu: "6000m"
- <<: *config-sync-autopilot-job
name: kpt-config-sync-autopilot-rapid-latest-stress
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: autopilot-rapid-latest-stress
spec:
<<: *config-sync-autopilot-job-spec
containers:
- <<: *config-sync-autopilot-job-container
args:
- 'GCP_SUBNETWORK=prow-e2e-subnetwork-11'
- 'GKE_RELEASE_CHANNEL=rapid'
- 'GKE_CLUSTER_VERSION=latest'
- 'E2E_CLUSTER_PREFIX=autopilot-rapid-latest-stress'
- 'E2E_NUM_CLUSTERS=2' # autopilot uses more clusters to run more quickly
- 'E2E_ARGS=--stress'
resources:
requests:
memory: "24Gi" # Stress tests watch many large objects
cpu: "6000m"
#### End one-off jobs
### End new prowjob definitions
- name: kpt-config-sync-vulnerability-scan
interval: 30m
annotations:
testgrid-dashboards: googleoss-kpt-config-sync-main
testgrid-tab-name: vulnerability-scan
cluster: build-kpt-config-sync
decorate: true
decoration_config:
timeout: 30m
extra_refs:
- org: GoogleContainerTools
repo: kpt-config-sync
base_ref: main
spec:
serviceAccountName: vulnerability-scanner
containers:
- image: us-docker.pkg.dev/kpt-config-sync-ci-artifacts/test-infra/vulnerability-scanner:v1.0.0-ff545b40
command:
- make
- vulnerability-scan-postsubmit
resources:
requests:
memory: "64Mi"
cpu: "250m"
nodeSelector:
# This job requires 8vCPUs or less, so it is "small".
kpt-config-sync/type: periodic
kpt-config-sync/size: small