diff --git a/.github/ISSUE_TEMPLATE/bug_request.md b/.github/ISSUE_TEMPLATE/bug_request.md new file mode 100644 index 00000000..c2597eb3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_request.md @@ -0,0 +1,26 @@ +--- +name: Bug Report +about: Report a bug you encountered +labels: kind/bug + +--- + + + +**What happened**: + +**What you expected to happen**: + +**How to reproduce it (as minimally and precisely as possible)**: + +**Anything else we need to know?**: + +**Environment**: +- Kubernetes version (use `kubectl version`): +- Inference extension version (use `git describe --tags --dirty --always`): +- Cloud provider or hardware configuration: +- Install tools: +- Others: diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..53a885c7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,15 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + + + +**What would you like to be added**: + +**Why is this needed**: + diff --git a/.github/ISSUE_TEMPLATE/new-release.md b/.github/ISSUE_TEMPLATE/new-release.md new file mode 100644 index 00000000..2d2cafb4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/new-release.md @@ -0,0 +1,45 @@ +--- +name: New Release +about: Propose a new release +title: Release v0.x.0 +labels: '' +assignees: '' + +--- + +## Release Checklist +- [ ] For major or minor releases (v$MAJ.$MIN.0), create a new release branch. + - [ ] A maintainer creates a vanilla release branch with + `git branch release-$MAJ.$MIN main` + - [ ] A maintainer pushes the new release branch with + `git push release-$MAJ.$MIN` (e.g., release-0.1) +- [ ] Update content and artifacts such as README, deployment templates, docs, configuration, test/e2e flags. + Submit a PR against the release branch. +- [ ] A maintainer [prepares a draft release](https://github.com/kubernetes-sigs/gateway-api-inference-extension/releases) + - [ ] Write the change log into the draft release. + - [ ] Run + `make artifacts` + to generate the artifacts and upload the files in the `artifacts` folder to the draft release. +- [ ] A maintainer creates a signed tag running (e.g., VERSION=v0.1.0) + `git tag -s $VERSION` + and inserts the changelog into the tag description. + To perform this step, you need [a PGP key registered on github](https://docs.github.com/en/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys). +- [ ] A maintainer pushes the tag with + `git push $VERSION` + - Triggers prow to build and publish a staging container image + [`us-central1-docker.pkg.dev/k8s-staging-images/llm-instance-gateway/epp:$VERSION`](https://us-central1-docker.pkg.dev/k8s-staging-images/llm-instance-gateway/epp) +- [ ] Submit a PR against [k8s.io](https://github.com/kubernetes/k8s.io), + updating [`k8s-staging-gateway-api-inference-extension/images.yaml`](https://github.com/kubernetes/k8s.io/blob/main/registry.k8s.io/images/k8s-staging-gateway-api-inference-extension/images.yaml) to + promote the container images from staging to production. +- [ ] Wait for the PR to be merged and verify that the image `registry.k8s.io/gateway-api-inference-extension/epp:$VERSION` is available. +- [ ] Publish the draft release prepared at the [Github releases page](https://github.com/kubernetes-sigs/gateway-api-inference-extension/releases). +- [ ] Add a link to the tagged release in this issue: +- [ ] Send an announcement email to `wg-serving@kubernetes.io` and `dev@kubernetes.io` with the subject `[ANNOUNCE] Gateway API Inference Extension $VERSION is released` +- [ ] Add a link to the release announcement in this issue: +- [ ] Update docs in `main` branch: +- [ ] Close this issue + +## Changelog + diff --git a/.gitignore b/.gitignore index 3b1fa7ba..4442b651 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *.dylib bin/* Dockerfile.cross +artifacts # Test binary, built with `go test -c` *.test diff --git a/Makefile b/Makefile index 087dd69d..1dc6348b 100644 --- a/Makefile +++ b/Makefile @@ -195,14 +195,13 @@ install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~ uninstall: manifests kustomize ## Uninstall CRDs 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/crd | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f - -.PHONY: deploy -deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config. - cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} - $(KUSTOMIZE) build config/default | $(KUBECTL) apply -f - - -.PHONY: undeploy -undeploy: kustomize ## 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 + if [ -d artifacts ]; then rm -rf artifacts; fi + mkdir -p artifacts + $(KUSTOMIZE) build config/crd -o artifacts/manifests.yaml + @$(call clean-manifests) ##@ Dependencies