Repository: kubernetes-sigs/kueue
Pull request #196 (2022-04-08 19:14:08)

Add release process
#### What type of PR is this?

/kind documentation

#### What this PR does / why we need it:

Documents the release process

Also adds a make rule to build the artifacts

#### Which issue(s) this PR fixes:
<!--
*Automatically closes linked issue when PR is merged.
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*
-->
Fixes #

#### Special notes for your reviewer:

/hold
Depends on #195

k8s-ci-robot: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubernetes-sigs/kueue/pull/196#" title="Author self-approved">alculquicondor</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubernetes-sigs%2Fkueue).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/kubernetes-sigs/kueue/blob/main/OWNERS)~~ [alculquicondor]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->
alculquicondor: /assign @ahg-g 
k8s-ci-robot: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubernetes-sigs/kueue/pull/196#" title="Author self-approved">alculquicondor</a>*, *<a href="https://github.com/kubernetes-sigs/kueue/pull/196#pullrequestreview-937008834" title="LGTM">ArangoGutierrez</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubernetes-sigs%2Fkueue).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/kubernetes-sigs/kueue/blob/main/OWNERS)~~ [alculquicondor]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->
k8s-ci-robot: New changes are detected. LGTM label has been removed.

Patch:
diff --git a/.github/ISSUE_TEMPLATE/NEW_RELEASE.md b/.github/ISSUE_TEMPLATE/NEW_RELEASE.md
index 61f8e7115..f2e82b24a 100644
--- a/.github/ISSUE_TEMPLATE/NEW_RELEASE.md
+++ b/.github/ISSUE_TEMPLATE/NEW_RELEASE.md
@@ -10,18 +10,22 @@ assignees: ahg-g, alculquicondor, ArangoGutierrez, denkensk
 <!--
 Please do not remove items from the checklist
 -->
-- [ ] All [OWNERS](https://github.com/kubernetes-sigs/kueue/blob/master/OWNERS) must LGTM the release proposal
+- [ ] All [OWNERS](https://github.com/kubernetes-sigs/kueue/blob/main/OWNERS) must LGTM the release proposal
 - [ ] Verify that the changelog in this issue is up-to-date
-- [ ] For major releases (v0.$MAJ.0) create new release branch
+- [ ] For major or minor releases (v$MAJ.$MIN.0), create a new release branch.
   - [ ] an OWNER creates a vanilla release branch with
-        `git branch release-0.$MAJ master`
+        `git branch release-$MAJ.$MIN main`
   - [ ] An OWNER pushes the new release branch with
-        `git push release-0.$MAJ`
-- [ ] Update things like README, deployment templates, docs, configuration, test/e2e flags, submit a PR against the release branch
+        `git push release-$MAJ.$MIN`
+- [ ] Update things like README, deployment templates, docs, configuration, test/e2e flags.
+      Submit a PR against the release branch.
 - An OWNER prepares a draft release
-  - [ ] Create a draft release at [Github releases page](https://github.com/kubernetes-sigs/kueue/releases)
-  - [ ] Write the change log into the draft release
-  - [ ] Upload release artefacts
+  - [ ] Create a draft release at [Github releases page](https://github.com/kubernetes-sigs/kueue/releases).
+  - [ ] Write the change log into the draft release.
+  - [ ] Run
+      `make artifacts IMAGE_REGISTRY=k8s.gcr.io/kueue GIT_TAG=$VERSION`
+      to generate the artifacts and upload the files in the `artifacts` folder
+      to the draft release.
 - [ ] An OWNER runs
      `git tag -s $VERSION`
       and inserts the changelog into the tag description.
@@ -29,19 +33,18 @@ Please do not remove items from the checklist
       `git push $VERSION`
   - Triggers prow to build and publish a staging container image
       `gcr.io/k8s-staging-kueue/kueue:$VERSION`
-- [ ] Submit a PR against [k8s.io](https://github.com/kubernetes/k8s.io), updating `k8s.gcr.io/images/k8s-staging-kueue/images.yaml` to promote the container images (both "full" and "minimal" variants) to production
-- [ ] Wait for the PR to be merged and verify that the image (`k8s.gcr.io/kueue/kueue:$VERSION`) is available.
-- [ ] Publish the draft release prepared at the [Github releases page](https://github.com/kubernetes-sigs/kueue/releases)
-      which will also trigger a Helm repo index update to add the latest release
+- [ ] Submit a PR against [k8s.io](https://github.com/kubernetes/k8s.io), updating `k8s.gcr.io/images/k8s-staging-kueue/images.yaml` to [promote the container images](https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io#image-promoter) to production.
+- [ ] Wait for the PR to be merged and verify that the image `k8s.gcr.io/kueue/kueue:$VERSION` is available.
+- [ ] Publish the draft release prepared at the [Github releases page](https://github.com/kubernetes-sigs/kueue/releases).
 - [ ] Add a link to the tagged release in this issue.
 - [ ] Send an announcement email to `sig-scheduling@kubernetes.io` and `wg-batch@kubernetes.io` with the subject `[ANNOUNCE] kueue $VERSION is released`
-- [ ] Add a link to the release announcement in this issue
-- [ ] For a major release (or a point release of the latest major release), update README in master branch
-  - [ ] Update references on deployment yamls
-  - [ ] Wait for the PR to be merged
-- [ ] For a major release, create an unannotated *devel* tag in the master branch, on the first commit that gets merged after the release branch has been created (presumably the README update commit above), and, push the tag:
-      `DEVEL=v0.$(($MAJ+1)).0-devel; git tag $DEVEL master && git push $DEVEL`
-      This ensures that the devel builds on the master branch will have a meaningful version number.
+- [ ] Add a link to the release announcement in this issue.
+- [ ] For a major or minor release, update `docs/setup/install.md` in `main` branch.
+  - [ ] Update references on deployment yamls.
+  - [ ] Wait for the PR to be merged.
+- [ ] For a major release, create an unannotated _devel_ tag in the `main` branch, on the first commit that gets merged after the release branch has been created (presumably the README update commit above), and, push the tag:
+      `DEVEL=v0.$(($MAJ+1)).0-devel; git tag $DEVEL main && git push $DEVEL`
+      This ensures that the devel builds on the `main` branch will have a meaningful version number.
 - [ ] Close this issue
 
 
diff --git a/.gitignore b/.gitignore
index 1dfeddbb0..a6248d887 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@
 *.so
 *.dylib
 bin
+artifacts
 testbin/*
 
 # Test binary, build with `go test -c`
diff --git a/Dockerfile b/Dockerfile
index 3260c8dd0..0c724286f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -13,7 +13,7 @@ RUN go mod download
 
 # Copy the go source
 COPY main.go main.go
-COPY apis/ apis/
+COPY api/ api/
 COPY pkg/ pkg/
 
 # Build
diff --git a/Makefile b/Makefile
index e0ff51cd2..46f7f8783 100644
--- a/Makefile
+++ b/Makefile
@@ -117,7 +117,7 @@ ci-lint: golangci-lint
 
 .PHONY: verify
 verify: gomod-verify vet ci-lint fmt-verify manifests generate
-	git --no-pager diff --exit-code config/crd/bases apis
+	git --no-pager diff --exit-code config/crd/bases api
 
 ##@ Build
 
@@ -147,6 +147,8 @@ ifndef ignore-not-found
   ignore-not-found = false
 endif
 
+clean-manifests = (cd config/manager && $(KUSTOMIZE) edit set image controller=gcr.io/k8s-staging-kueue/kueue:main)
+
 .PHONY: install
 install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~/.kube/config.
 	$(KUSTOMIZE) build config/crd | kubectl apply -f -
@@ -159,12 +161,21 @@ uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified
 deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config.
 	cd config/manager && $(KUSTOMIZE) edit set image controller=${IMAGE_TAG}
 	$(KUSTOMIZE) build config/default | kubectl apply -f -
-	cd config/manager && $(KUSTOMIZE) edit set image controller=gcr.io/k8s-staging-kueue/kueue:devel
+	@$(call clean-manifests)
 
 .PHONY: undeploy
 undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
 	$(KUSTOMIZE) build config/default | kubectl delete --ignore-not-found=$(ignore-not-found) -f -
 
+##@ Release
+.PHONY: artifacts
+artifacts: kustomize
+	cd config/manager && $(KUSTOMIZE) edit set image controller=${IMAGE_TAG}
+	@mkdir -p artifacts
+	@rm -r artifacts/*
+	$(KUSTOMIZE) build config/default -o artifacts/manifests.yaml
+	@$(call clean-manifests)
+
 ##@ Tools
 PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
 GOLANGCI_LINT = $(shell pwd)/bin/golangci-lint
diff --git a/PROJECT b/PROJECT
index fe90a666b..2f1aaf7c5 100644
--- a/PROJECT
+++ b/PROJECT
@@ -1,7 +1,6 @@
 domain: x-k8s.io
 layout:
 - go.kubebuilder.io/v3
-multigroup: true
 projectName: kueue
 repo: sigs.k8s.io/kueue
 resources:
@@ -16,6 +15,7 @@ resources:
   version: v1alpha1
 - api:
     crdVersion: v1
+    namespaced: false
   controller: true
   domain: x-k8s.io
   group: kueue
@@ -33,6 +33,7 @@ resources:
   version: v1alpha1
 - api:
     crdVersion: v1
+    namespaced: false
   domain: x-k8s.io
   group: kueue
   kind: ResourceFlavor
diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 000000000..97d88e80c
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,6 @@
+# Release process
+
+Kueue is released on an as-needed basis.
+
+To begin the process, open an [issue](https://github.com/kubernetes-sigs/kueue/issues/new/choose)
+using the **New Release** template.
diff --git a/apis/core/v1alpha1/clusterqueue_types.go b/api/v1alpha1/clusterqueue_types.go
similarity index 100%
rename from apis/core/v1alpha1/clusterqueue_types.go
rename to api/v1alpha1/clusterqueue_types.go
diff --git a/apis/core/v1alpha1/groupversion_info.go b/api/v1alpha1/groupversion_info.go
similarity index 100%
rename from apis/core/v1alpha1/groupversion_info.go
rename to api/v1alpha1/groupversion_info.go
diff --git a/apis/core/v1alpha1/queue_types.go b/api/v1alpha1/queue_types.go
similarity index 100%
rename from apis/core/v1alpha1/queue_types.go
rename to api/v1alpha1/queue_types.go
diff --git a/apis/core/v1alpha1/resourceflavor_types.go b/api/v1alpha1/resourceflavor_types.go
similarity index 100%
rename from apis/core/v1alpha1/resourceflavor_types.go
rename to api/v1alpha1/resourceflavor_types.go
diff --git a/apis/core/v1alpha1/workload_types.go b/api/v1alpha1/workload_types.go
similarity index 99%
rename from apis/core/v1alpha1/workload_types.go
rename to api/v1alpha1/workload_types.go
index 97909f878..a6e36f178 100644
--- a/apis/core/v1alpha1/workload_types.go
+++ b/api/v1alpha1/workload_types.go
@@ -28,7 +28,7 @@ type WorkloadSpec struct {
 	//
 	// +listType=map
 	// +listMapKey=name
-	PodSets []PodSet `json:"podSets,omitempty"`
+	PodSets []PodSet `json:"pods,omitempty"`
 
 	// queueName is the name of the queue the Workload is associated with.
 	QueueName string `json:"queueName"`
diff --git a/apis/core/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
similarity index 100%
rename from apis/core/v1alpha1/zz_generated.deepcopy.go
rename to api/v1alpha1/zz_generated.deepcopy.go
diff --git a/config/crd/bases/kueue.x-k8s.io_workloads.yaml b/config/crd/bases/kueue.x-k8s.io_workloads.yaml
index 904104695..7c3cd12ff 100644
--- a/config/crd/bases/kueue.x-k8s.io_workloads.yaml
+++ b/config/crd/bases/kueue.x-k8s.io_workloads.yaml
@@ -83,7 +83,7 @@ spec:
                 - clusterQueue
                 - podSetFlavors
                 type: object
-              podSets:
+              pods:
                 description: pods is a list of sets of homogeneous pods, each described
                   by a Pod spec and a count.
                 items:
diff --git a/docs/concepts/workload.md b/docs/concepts/workload.md
index 08449d02d..5cb582221 100644
--- a/docs/concepts/workload.md
+++ b/docs/concepts/workload.md
@@ -23,7 +23,7 @@ metadata:
   name: sample-job
   namespace: default
 spec:
-  podSets:
+  pods:
   - count: 3
     name: main
     spec:
diff --git a/main.go b/main.go
index 4d23280aa..fceedf946 100644
--- a/main.go
+++ b/main.go
@@ -32,7 +32,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/healthz"
 	"sigs.k8s.io/controller-runtime/pkg/log/zap"
 
-	kueuev1alpha1 "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueuev1alpha1 "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/cache"
 	"sigs.k8s.io/kueue/pkg/constants"
 	"sigs.k8s.io/kueue/pkg/controller/core"
diff --git a/pkg/cache/cache.go b/pkg/cache/cache.go
index 8072d8e63..542c42385 100644
--- a/pkg/cache/cache.go
+++ b/pkg/cache/cache.go
@@ -28,7 +28,7 @@ import (
 	"k8s.io/apimachinery/pkg/util/sets"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/util/pointer"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
diff --git a/pkg/cache/snapshot.go b/pkg/cache/snapshot.go
index 7b85be048..7808ec70c 100644
--- a/pkg/cache/snapshot.go
+++ b/pkg/cache/snapshot.go
@@ -17,7 +17,7 @@ limitations under the License.
 package cache
 
 import (
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
 
diff --git a/pkg/controller/core/clusterqueue_controller.go b/pkg/controller/core/clusterqueue_controller.go
index c87f3230e..9371fc0f0 100644
--- a/pkg/controller/core/clusterqueue_controller.go
+++ b/pkg/controller/core/clusterqueue_controller.go
@@ -33,7 +33,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/source"
 	"sigs.k8s.io/kueue/pkg/queue"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/cache"
 )
 
diff --git a/pkg/controller/core/queue_controller.go b/pkg/controller/core/queue_controller.go
index 1c5f88a22..04d1c5b65 100644
--- a/pkg/controller/core/queue_controller.go
+++ b/pkg/controller/core/queue_controller.go
@@ -31,7 +31,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/source"
 	"sigs.k8s.io/kueue/pkg/constants"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/queue"
 )
 
diff --git a/pkg/controller/core/resourceflavor_controller.go b/pkg/controller/core/resourceflavor_controller.go
index 214d838f3..7fa8c0faf 100644
--- a/pkg/controller/core/resourceflavor_controller.go
+++ b/pkg/controller/core/resourceflavor_controller.go
@@ -24,7 +24,7 @@ import (
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/event"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/cache"
 )
 
diff --git a/pkg/controller/core/workload_controller.go b/pkg/controller/core/workload_controller.go
index 097251282..a12bda39b 100644
--- a/pkg/controller/core/workload_controller.go
+++ b/pkg/controller/core/workload_controller.go
@@ -27,7 +27,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/event"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/cache"
 	"sigs.k8s.io/kueue/pkg/queue"
 	"sigs.k8s.io/kueue/pkg/workload"
diff --git a/pkg/controller/workload/job/job_controller.go b/pkg/controller/workload/job/job_controller.go
index f8791e309..e943cc068 100644
--- a/pkg/controller/workload/job/job_controller.go
+++ b/pkg/controller/workload/job/job_controller.go
@@ -34,7 +34,7 @@ import (
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/constants"
 	utilpriority "sigs.k8s.io/kueue/pkg/util/priority"
 	"sigs.k8s.io/kueue/pkg/workload"
diff --git a/pkg/queue/cluster_queue_best_effort_fifo.go b/pkg/queue/cluster_queue_best_effort_fifo.go
index 6e4e3de1c..95a8469e6 100644
--- a/pkg/queue/cluster_queue_best_effort_fifo.go
+++ b/pkg/queue/cluster_queue_best_effort_fifo.go
@@ -19,7 +19,7 @@ package queue
 import (
 	"k8s.io/apimachinery/pkg/api/equality"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
 
diff --git a/pkg/queue/cluster_queue_impl.go b/pkg/queue/cluster_queue_impl.go
index 86117b1bb..691ba5c03 100644
--- a/pkg/queue/cluster_queue_impl.go
+++ b/pkg/queue/cluster_queue_impl.go
@@ -21,7 +21,7 @@ import (
 
 	"k8s.io/apimachinery/pkg/util/sets"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
 
diff --git a/pkg/queue/cluster_queue_interface.go b/pkg/queue/cluster_queue_interface.go
index 0a2d760d4..b17442400 100644
--- a/pkg/queue/cluster_queue_interface.go
+++ b/pkg/queue/cluster_queue_interface.go
@@ -20,7 +20,7 @@ import (
 	"fmt"
 
 	"k8s.io/apimachinery/pkg/util/sets"
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
 
diff --git a/pkg/queue/cluster_queue_strict_fifo.go b/pkg/queue/cluster_queue_strict_fifo.go
index a8a51f9ec..5a63a84fe 100644
--- a/pkg/queue/cluster_queue_strict_fifo.go
+++ b/pkg/queue/cluster_queue_strict_fifo.go
@@ -17,7 +17,7 @@ limitations under the License.
 package queue
 
 import (
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	utilpriority "sigs.k8s.io/kueue/pkg/util/priority"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
diff --git a/pkg/queue/manager.go b/pkg/queue/manager.go
index 701c65476..af3d39545 100644
--- a/pkg/queue/manager.go
+++ b/pkg/queue/manager.go
@@ -27,7 +27,7 @@ import (
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
 
diff --git a/pkg/queue/queue.go b/pkg/queue/queue.go
index f3977561e..eac31aa0c 100644
--- a/pkg/queue/queue.go
+++ b/pkg/queue/queue.go
@@ -19,7 +19,7 @@ package queue
 import (
 	"fmt"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
 
diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go
index 050ee93b0..f00157e8d 100644
--- a/pkg/scheduler/scheduler.go
+++ b/pkg/scheduler/scheduler.go
@@ -36,7 +36,7 @@ import (
 	ctrl "sigs.k8s.io/controller-runtime"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/cache"
 	"sigs.k8s.io/kueue/pkg/queue"
 	"sigs.k8s.io/kueue/pkg/util/routine"
diff --git a/pkg/util/priority/priority.go b/pkg/util/priority/priority.go
index b5f02c36a..12dacee0a 100644
--- a/pkg/util/priority/priority.go
+++ b/pkg/util/priority/priority.go
@@ -23,7 +23,7 @@ import (
 	"k8s.io/apimachinery/pkg/types"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/constants"
 )
 
diff --git a/pkg/workload/workload.go b/pkg/workload/workload.go
index 4c459010d..b3320d852 100644
--- a/pkg/workload/workload.go
+++ b/pkg/workload/workload.go
@@ -26,7 +26,7 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 )
 
 // Info holds a Workload object and some pre-processing.


Test patch:
diff --git a/pkg/cache/cache_test.go b/pkg/cache/cache_test.go
index 00d8d8e70..626d2c25f 100644
--- a/pkg/cache/cache_test.go
+++ b/pkg/cache/cache_test.go
@@ -31,7 +31,7 @@ import (
 	"k8s.io/apimachinery/pkg/util/sets"
 	"sigs.k8s.io/controller-runtime/pkg/client/fake"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/util/pointer"
 	utiltesting "sigs.k8s.io/kueue/pkg/util/testing"
 	"sigs.k8s.io/kueue/pkg/workload"
diff --git a/pkg/cache/snapshot_test.go b/pkg/cache/snapshot_test.go
index f6fbb3f26..7de795e2c 100644
--- a/pkg/cache/snapshot_test.go
+++ b/pkg/cache/snapshot_test.go
@@ -30,7 +30,7 @@ import (
 	"k8s.io/apimachinery/pkg/util/sets"
 	"sigs.k8s.io/controller-runtime/pkg/client/fake"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	utiltesting "sigs.k8s.io/kueue/pkg/util/testing"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
diff --git a/pkg/queue/cluster_queue_best_effort_fifo_test.go b/pkg/queue/cluster_queue_best_effort_fifo_test.go
index 6941810a5..702cf1a0d 100644
--- a/pkg/queue/cluster_queue_best_effort_fifo_test.go
+++ b/pkg/queue/cluster_queue_best_effort_fifo_test.go
@@ -22,7 +22,7 @@ import (
 	"github.com/google/go-cmp/cmp"
 	"k8s.io/apimachinery/pkg/util/sets"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	utiltesting "sigs.k8s.io/kueue/pkg/util/testing"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
diff --git a/pkg/queue/cluster_queue_strict_fifo_test.go b/pkg/queue/cluster_queue_strict_fifo_test.go
index 96c7ed2e6..c1f1ac8cc 100644
--- a/pkg/queue/cluster_queue_strict_fifo_test.go
+++ b/pkg/queue/cluster_queue_strict_fifo_test.go
@@ -23,7 +23,7 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/utils/pointer"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 )
 
 const (
diff --git a/pkg/queue/manager_test.go b/pkg/queue/manager_test.go
index bc678ac40..d350a2ab9 100644
--- a/pkg/queue/manager_test.go
+++ b/pkg/queue/manager_test.go
@@ -28,7 +28,7 @@ import (
 	"k8s.io/apimachinery/pkg/util/sets"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/client/fake"
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	utiltesting "sigs.k8s.io/kueue/pkg/util/testing"
 	"sigs.k8s.io/kueue/pkg/workload"
 )
diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go
index a0562c133..a445bd5fe 100644
--- a/pkg/scheduler/scheduler_test.go
+++ b/pkg/scheduler/scheduler_test.go
@@ -35,7 +35,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/client/fake"
 	"sigs.k8s.io/kueue/pkg/util/pointer"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/cache"
 	"sigs.k8s.io/kueue/pkg/constants"
 	"sigs.k8s.io/kueue/pkg/queue"
diff --git a/pkg/util/testing/wrappers.go b/pkg/util/testing/wrappers.go
index bfca7d2f0..39b567e4c 100644
--- a/pkg/util/testing/wrappers.go
+++ b/pkg/util/testing/wrappers.go
@@ -25,7 +25,7 @@ import (
 	"k8s.io/apimachinery/pkg/api/resource"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/constants"
 	"sigs.k8s.io/kueue/pkg/util/pointer"
 )
diff --git a/pkg/workload/workload_test.go b/pkg/workload/workload_test.go
index 61d11c21f..9b853263e 100644
--- a/pkg/workload/workload_test.go
+++ b/pkg/workload/workload_test.go
@@ -29,7 +29,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/client/fake"
 	utiltesting "sigs.k8s.io/kueue/pkg/util/testing"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 )
 
 func TestPodRequests(t *testing.T) {
diff --git a/test/integration/controller/core/clusterqueue_controller_test.go b/test/integration/controller/core/clusterqueue_controller_test.go
index 0db22ecee..18f76ec55 100644
--- a/test/integration/controller/core/clusterqueue_controller_test.go
+++ b/test/integration/controller/core/clusterqueue_controller_test.go
@@ -24,7 +24,7 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	"sigs.k8s.io/controller-runtime/pkg/client"
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/util/pointer"
 	"sigs.k8s.io/kueue/pkg/util/testing"
 	"sigs.k8s.io/kueue/test/integration/framework"
diff --git a/test/integration/controller/core/queue_controller_test.go b/test/integration/controller/core/queue_controller_test.go
index 09ceae6c6..5b21a228d 100644
--- a/test/integration/controller/core/queue_controller_test.go
+++ b/test/integration/controller/core/queue_controller_test.go
@@ -23,7 +23,7 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	"sigs.k8s.io/controller-runtime/pkg/client"
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/util/testing"
 	"sigs.k8s.io/kueue/test/integration/framework"
 )
diff --git a/test/integration/controller/core/workload_controller_test.go b/test/integration/controller/core/workload_controller_test.go
index 369de6190..9b0460172 100644
--- a/test/integration/controller/core/workload_controller_test.go
+++ b/test/integration/controller/core/workload_controller_test.go
@@ -25,7 +25,7 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	"sigs.k8s.io/controller-runtime/pkg/client"
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/util/testing"
 	"sigs.k8s.io/kueue/test/integration/framework"
 )
diff --git a/test/integration/controller/job/job_controller_test.go b/test/integration/controller/job/job_controller_test.go
index b7a33e0c2..5fc7db083 100644
--- a/test/integration/controller/job/job_controller_test.go
+++ b/test/integration/controller/job/job_controller_test.go
@@ -28,7 +28,7 @@ import (
 	"k8s.io/apimachinery/pkg/types"
 	"k8s.io/client-go/kubernetes/scheme"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/constants"
 	workloadjob "sigs.k8s.io/kueue/pkg/controller/workload/job"
 	"sigs.k8s.io/kueue/pkg/util/testing"
diff --git a/test/integration/framework/framework.go b/test/integration/framework/framework.go
index 1c529c8b9..8372caab2 100644
--- a/test/integration/framework/framework.go
+++ b/test/integration/framework/framework.go
@@ -35,7 +35,7 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/manager"
 	"sigs.k8s.io/kueue/pkg/workload"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	//+kubebuilder:scaffold:imports
 )
 
diff --git a/test/integration/scheduler/scheduler_test.go b/test/integration/scheduler/scheduler_test.go
index 003d0a57a..3029026a5 100644
--- a/test/integration/scheduler/scheduler_test.go
+++ b/test/integration/scheduler/scheduler_test.go
@@ -26,7 +26,7 @@ import (
 	"k8s.io/utils/pointer"
 	"sigs.k8s.io/controller-runtime/pkg/client"
 
-	kueue "sigs.k8s.io/kueue/apis/core/v1alpha1"
+	kueue "sigs.k8s.io/kueue/api/v1alpha1"
 	"sigs.k8s.io/kueue/pkg/util/testing"
 	"sigs.k8s.io/kueue/test/integration/framework"
 )