Most users are expected to use a released version of the serving-progressive-rollout, but if you're testing or want to use a pre-released version of the release yamls, you may want to build your own copy of the operator.
You can find all the available releases here. Choose the version to install, e.g. v1.13.3. Run the following commands:
export VERSION=v1.13.3
kubectl apply -f https://github.com/knative-extensions/serving-progressive-rollout/releases/download/knative-${VERSION}/serving-progressive-rollout-core.yaml
You can install the Knative Serving Progressive Rollout from the source code using the ko build tool.
-
Download the source code:
git clone https://github.com/knative-extensions/serving-progressive-rollout.git
-
Install the CRDs and the ConfigMaps:
kubectl apply -f config/core/300-resources kubectl apply -f config/core/configmaps
-
Install the serving progressive rollout:
ko apply -f config/core/deployments/autoscaler.yaml ko apply -f config/core/deployments/controller.yaml
-
To verify the installation:
kubectl get deployment -n knative-serving
Make sure that the deployment resources named controller and autoscaler, are up and running as below:
NAME READY UP-TO-DATE AVAILABLE AGE activator 1/1 1 1 26h autoscaler 1/1 1 1 26h autoscaler-hpa 1/1 1 1 26h controller 1/1 1 1 17h net-istio-controller 1/1 1 1 26h net-istio-webhook 1/1 1 1 26h webhook 1/1 1 1 26h
The serving progressive rollout does not change the way how you use Knative Serving. Everything happens underneath with the user's awareness, when a new version of Knative Service is launched to replace the old one.
All configuration options are available in the ConfigMap named config-rolloutorchestrator
. It is installed by default
under the namespace knative-serving
, the same one we use for Knative Serving.
- Global key: progressive-rollout-enabled, determining whether progressive rollout feature is enabled or not.
- Possible values: boolean
- Default: true
Set the key to false in order to disable the progressive rollout:
apiVersion: v1
kind: ConfigMap
metadata:
name: config-rolloutorchestrator
namespace: knative-serving
data:
progressive-rollout-enabled: "false"
- Global key: over-consumption-ratio, the percentage about how much resource more than the requested can be used to accomplish the rolling upgrade.
- Possible values: integer
- Default: 10
Set the key to other value, e.g. 20%, for each stage to use additionally to accomplish the rollout.
apiVersion: v1
kind: ConfigMap
metadata:
name: config-rolloutorchestrator
namespace: knative-serving
data:
over-consumption-ratio: "20"
- Global key: stage-rollout-timeout-minutes, the timeout value of minutes to use for each stage to accomplish in the rollout process.
- Possible values: integer
- Default: 2
Set the key to other value, e.g. 10, to change the timeout for each stage.
apiVersion: v1
kind: ConfigMap
metadata:
name: config-rolloutorchestrator
namespace: knative-serving
data:
stage-rollout-timeout-minutes: "10"