Skip to content

Commit

Permalink
Promote VisibilityOnDemand to Beta.
Browse files Browse the repository at this point in the history
  • Loading branch information
mbobrovskyi committed Sep 10, 2024
1 parent 6711364 commit cb687d7
Show file tree
Hide file tree
Showing 14 changed files with 32 additions and 63 deletions.
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,6 @@ artifacts: kustomize yq helm ## Generate release artifacts.
$(KUSTOMIZE) build config/dev -o artifacts/manifests-dev.yaml
$(KUSTOMIZE) build config/alpha-enabled -o artifacts/manifests-alpha-enabled.yaml
$(KUSTOMIZE) build config/prometheus -o artifacts/prometheus.yaml
$(KUSTOMIZE) build config/visibility -o artifacts/visibility-api.yaml
@$(call clean-manifests)
# Update the image tag and policy
$(YQ) e '.controllerManager.manager.image.repository = "$(IMAGE_REPO)" | .controllerManager.manager.image.tag = "$(GIT_TAG)" | .controllerManager.manager.image.pullPolicy = "IfNotPresent"' -i charts/kueue/values.yaml
Expand Down
2 changes: 0 additions & 2 deletions charts/kueue/templates/visibility/apiservice.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
{{- if include "kueue.isFeatureGateEnabled" (dict "List" .Values.controllerManager.featureGates "Feature" "VisibilityOnDemand") }}
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
Expand All @@ -14,4 +13,3 @@ spec:
namespace: '{{ .Release.Namespace }}'
version: v1alpha1
versionPriority: 100
{{- end }}
2 changes: 0 additions & 2 deletions charts/kueue/templates/visibility/role_binding.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
{{- if include "kueue.isFeatureGateEnabled" (dict "List" .Values.controllerManager.featureGates "Feature" "VisibilityOnDemand") }}
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
Expand All @@ -14,4 +13,3 @@ subjects:
- kind: ServiceAccount
name: kueue-controller-manager
namespace: '{{ .Release.Namespace }}'
{{- end }}
2 changes: 0 additions & 2 deletions charts/kueue/templates/visibility/service.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
{{- if include "kueue.isFeatureGateEnabled" (dict "List" .Values.controllerManager.featureGates "Feature" "VisibilityOnDemand") }}
apiVersion: v1
kind: Service
metadata:
Expand All @@ -14,4 +13,3 @@ spec:
targetPort: 8082
selector:
{{- include "kueue.selectorLabels" . | nindent 4 }}
{{- end }}
1 change: 0 additions & 1 deletion config/alpha-enabled/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# Use default settings as a base.
resources:
- ../default
- ../visibility

patches:
# Modify feature gates to enable AllAlpha=true
Expand Down
5 changes: 5 additions & 0 deletions config/default/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ resources:
- ../components/rbac
- ../components/manager
- ../components/internalcert
- ../components/visibility
# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in
# ../components/crd/kustomization.yaml
- ../components/webhook
Expand All @@ -31,6 +32,10 @@ resources:
# [PROMETHEUS] To enable prometheus monitor, uncomment all sections with 'PROMETHEUS'.
#- ../components/prometheus

transformers:
# Sets the namespace for the role binding as kube-system instead of default kueue-system
- role_binding_visibility_transformer.yaml

patches:
# Protect the /metrics endpoint by putting it behind auth.
# If you want your controller-manager to expose the /metrics
Expand Down
21 changes: 0 additions & 21 deletions config/visibility/kustomization.yaml

This file was deleted.

2 changes: 0 additions & 2 deletions hack/update-helm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -299,9 +299,7 @@ EOT
$SED -i '/^metadata:.*/a\ labels:\n {{- include "kueue.labels" . | nindent 4 }}' "$output_file"

{
echo '{{- if include "kueue.isFeatureGateEnabled" (dict "List" .Values.controllerManager.featureGates "Feature" "VisibilityOnDemand") }}'
cat "$output_file"
echo "{{- end }}"
} > "${output_file}.tmp"
mv "${output_file}.tmp" "${output_file}"
done
3 changes: 2 additions & 1 deletion pkg/features/kube_features.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ const (
// owner: @pbundyra
// kep: https://github.com/kubernetes-sigs/kueue/pull/1300
// alpha: v0.6
// beta: v0.9
//
// Enables Kueue visibility on demand
VisibilityOnDemand featuregate.Feature = "VisibilityOnDemand"
Expand Down Expand Up @@ -116,7 +117,7 @@ var defaultFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
QueueVisibility: {Default: false, PreRelease: featuregate.Alpha},
FlavorFungibility: {Default: true, PreRelease: featuregate.Beta},
ProvisioningACC: {Default: true, PreRelease: featuregate.Beta},
VisibilityOnDemand: {Default: false, PreRelease: featuregate.Alpha},
VisibilityOnDemand: {Default: true, PreRelease: featuregate.Beta},
PrioritySortingWithinCohort: {Default: true, PreRelease: featuregate.Beta},
MultiKueue: {Default: false, PreRelease: featuregate.Alpha},
LendingLimit: {Default: true, PreRelease: featuregate.Beta},
Expand Down
33 changes: 17 additions & 16 deletions site/content/en/docs/installation/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,22 +243,23 @@ spec:

The currently supported features are:

| Feature | Default | Stage | Since | Until |
|---------|---------|-------|-------|-------|
| `FlavorFungibility` | `true` | Beta | 0.5 | |
| `MultiKueue` | `false` | Alpha | 0.6 | |
| `MultiKueueBatchJobWithManagedBy` | `false` | Alpha | 0.8 | |
| `PartialAdmission` | `false` | Alpha | 0.4 | 0.4 |
| `PartialAdmission` | `true` | Beta | 0.5 | |
| `ProvisioningACC` | `false` | Alpha | 0.5 | 0.6 |
| `ProvisioningACC` | `true` | Beta | 0.7 | |
| `QueueVisibility` | `false` | Alpha | 0.5 | |
| `VisibilityOnDemand` | `false` | Alpha | 0.6 | |
| `PrioritySortingWithinCohort` | `true` | Beta | 0.6 | |
| `LendingLimit` | `false` | Alpha | 0.6 | 0.8 |
| `LendingLimit` | `true` | Beta | 0.9 | |
| `MultiplePreemptions` | `false` | Alpha | 0.8 | 0.8 |
| `MultiplePreemptions` | `true` | Beta | 0.9 | |
| Feature | Default | Stage | Since | Until |
|-----------------------------------|---------|-------|-------|-------|
| `FlavorFungibility` | `true` | Beta | 0.5 | |
| `MultiKueue` | `false` | Alpha | 0.6 | |
| `MultiKueueBatchJobWithManagedBy` | `false` | Alpha | 0.8 | |
| `PartialAdmission` | `false` | Alpha | 0.4 | 0.4 |
| `PartialAdmission` | `true` | Beta | 0.5 | |
| `ProvisioningACC` | `false` | Alpha | 0.5 | 0.6 |
| `ProvisioningACC` | `true` | Beta | 0.7 | |
| `QueueVisibility` | `false` | Alpha | 0.5 | |
| `VisibilityOnDemand` | `false` | Alpha | 0.6 | 0.8 |
| `VisibilityOnDemand` | `true` | Beta | 0.9 | |
| `PrioritySortingWithinCohort` | `true` | Beta | 0.6 | |
| `LendingLimit` | `false` | Alpha | 0.6 | 0.8 |
| `LendingLimit` | `true` | Beta | 0.9 | |
| `MultiplePreemptions` | `false` | Alpha | 0.8 | 0.8 |
| `MultiplePreemptions` | `true` | Beta | 0.9 | |

## What's next

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Pending Workloads on-demand"
date: 2023-12-05
date: 2024-09-10
weight: 3
description: >
Monitor pending Workloads with the on-demand visibility API
Expand All @@ -22,21 +22,15 @@ Make sure the following conditions are met:
- The kubectl command-line tool has communication with your cluster.
- [Kueue is installed](/docs/installation) in version v0.6.0 or later.

### Enable the VisibilityOnDemand feature gate

VisibilityOnDemand is an `Alpha` feature disabled by default. To use the visibility API change [the feature gates configuration](/docs/installation/#change-the-feature-gates-configuration) and set `VisibilityOnDemand=true`.

### Install the visibility API
## Monitor pending workloads on demand

To install the visibility API, run the following command
{{< feature-state state="beta" for_version="v0.9" >}}
{{% alert title="Note" color="primary" %}}

```shell
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/{{< param "version" >}}/visibility-api.yaml
```

## Monitor pending workloads on demand
`VisibilityOnDemand` is a Beta feature enabled by default.

{{< feature-state state="stable" for_version="v0.6" >}}
You can disable it by setting the `VisibilityOnDemand` feature gate. Check the [Installation](/docs/installation/#change-the-feature-gates-configuration) guide for details on feature gate configuration.
{{% /alert %}}

To install a simple setup of ClusterQueue

Expand Down
1 change: 0 additions & 1 deletion test/e2e/config/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ kind: Kustomization

resources:
- ../../../config/dev
- ../../../config/visibility

replicas:
- name: kueue-controller-manager
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/config/manager_e2e_patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
value: IfNotPresent
- op: add
path: /spec/template/spec/containers/0/args/-
value: --feature-gates=VisibilityOnDemand=true,MultiKueue=true,MultiKueueBatchJobWithManagedBy=true
value: --feature-gates=MultiKueue=true,MultiKueueBatchJobWithManagedBy=true

0 comments on commit cb687d7

Please sign in to comment.