Install Rollout Plugin
To support Kurator’s Rollout, it’s imperative to first configure the Rollout plugin for Fleet. This guide will walk you through configuring the Flagger-based rollout plugin for Fleet, laying the groundwork for Kurator’s Rollout capabilities.
Prerequisites
1. Fleet Manager Setup
Set up the Fleet manager by following the instructions in the installation guide.
2. Secrets and Setup for Attached Clusters
kubectl create secret generic kurator-member1 --from-file=kurator-member1.config=/root/.kube/kurator-member1.config
kubectl create secret generic kurator-member2 --from-file=kurator-member2.config=/root/.kube/kurator-member2.config
---
kubectl apply -f - <<EOF
apiVersion: cluster.kurator.dev/v1alpha1
kind: AttachedCluster
metadata:
name: kurator-member1
namespace: default
spec:
kubeconfig:
name: kurator-member1
key: kurator-member1.config
---
apiVersion: cluster.kurator.dev/v1alpha1
kind: AttachedCluster
metadata:
name: kurator-member2
namespace: default
spec:
kubeconfig:
name: kurator-member2
key: kurator-member2.config
EOF
Create a Fleet with the Rollout Plugin Enabled
Run following command to create Flagger in the Fleet:
kubectl apply -f -<<EOF
apiVersion: fleet.kurator.dev/v1alpha1
kind: Fleet
metadata:
name: quickstart
namespace: default
spec:
clusters:
- name: kurator-member1
kind: AttachedCluster
- name: kurator-member2
kind: AttachedCluster
plugin:
flagger:
publicTestloader: true
trafficRoutingProvider: istio
EOF
Fleet Rollout Plugin Configuration Explained
Let’s delve into the spec
section of the above Fleet:
-
clusters
: Contains the twoAttachedCluster
objects created earlier, indicating that the Rollout plugin will be installed on these two clusters. -
plugin
: Theflagger
indicates the description of a Rollout plugin. It contains configurations for whether to installpublicTestloader
andtrafficRoutingProvider
.publicTestloader
: Indicates whether to install a common test loader to generate test traffic for application services.trafficRoutingProvider
: Traffic Routing Provider. Currently it only supports Istio, in the future it will add support for other service meshes or ingress controllers. For example, Linkerd, Gloo, Nginx etc.
For more configuration information, please refer to the Fleet API.
Verify the Installation
To ensure that the Rollout plugin is successfully installed and running.
Run the following commands:
kubectl get pod -n istio-system --kubeconfig=/root/.kube/kurator-member1.config
kubectl get pod -n istio-system --kubeconfig=/root/.kube/kurator-member2.config
Initially, you should observe:
istio-system-flagger-kurator-member1-649c65bd7d-ptgbj 1/1 Running 0 2m21s
istio-system-testloader-kurator-member1-loadtester-7ff7d75grwsh 1/1 Running 0 2m21s
Cleanup
This section guides you through the process of cleaning up the fleets and plugins.
1. Cleanup the Rollout Plugin
If you only need to remove the Rollout plugin, simply edit the current fleet and remove the corresponding description:
kubectl edit fleet.fleet.kurator.dev quickstart
To check the results of the deletion, you can observe that the Flagger components have been removed:
kubectl get po -A --kubeconfig=/root/.kube/kurator-member1.config
kubectl get po -A --kubeconfig=/root/.kube/kurator-member2.config
If you wish to reinstall the components later, you can simply edit the fleet and add the necessary configurations.
2. Cleanup the Fleet
When the fleet is deleted, all associated plugins will also be removed:
kubectl delete fleet.fleet.kurator.dev quickstart
3. Cleanup the fleet-manager (optional)
Run the following commands to delete fleet-manager and cluster-operator:
helm uninstall kurator-cluster-operator -n kurator-system
helm uninstall kurator-fleet-manager -n kurator-system
Run the following commands to delete Fluxcd:
helm delete fluxcd -n fluxcd-system
kubectl delete ns fluxcd-system --ignore-not-found
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.