From 9b4e764674c2c18144a4967505b926250e533c6c Mon Sep 17 00:00:00 2001 From: dehaocheng Date: Wed, 7 Jun 2023 18:36:24 +0800 Subject: [PATCH 1/3] Upgrade fluentbit-operator to fluent-operator Signed-off-by: dehaocheng --- cmd/upgrade/upgrade.sh | 80 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 cmd/upgrade/upgrade.sh diff --git a/cmd/upgrade/upgrade.sh b/cmd/upgrade/upgrade.sh new file mode 100644 index 000000000..0a75f0466 --- /dev/null +++ b/cmd/upgrade/upgrade.sh @@ -0,0 +1,80 @@ +#!/bin/bash +namespace=kubesphere-logging-system +deployment="fluentbit-operator" + +function error_exit { + echo "$1" 1>&2 + exit 1 +} + +function converting(){ +## Converting an existing configuration to a new one +local resource=$1 +local kind=$2 +local list=$(kubectl get $resource.logging.kubesphere.io -A -o json) || error_exit "Cannot get resource $reresource" +local name=($(echo $list | jq -r '.items[].metadata.name | @json')) +local labels=($(echo $list | jq -r '.items[].metadata.labels | @json')) +local spec=($(echo $list | jq -r '.items[].spec | @json')) +local ns=($(echo $list | jq -r '.items[].metadata.namespace | @json')) +local size=${#spec[*]} +echo "Number of original $resource configuration files:$size" +for((i=0;i<${size};i++));do +if [[ "${kind}" = "fluentbits" ]]; then +cluster_resource_list[i]="{ +\"apiVersion\": \"fluentbit.fluent.io/v1alpha2\", +\"kind\": \"${kind}\", +\"metadata\": { +\"name\": ${name[i]}, +\"labels\": ${labels[i]}, +\"namespace\": \"${ns}\" +}, +\"spec\": ${spec[i]} +}" +else +cluster_resource_list[i]="{ +\"apiVersion\": \"fluentbit.fluent.io/v1alpha2\", +\"kind\": \"${kind}\", +\"metadata\": { +\"name\": ${name[i]}, +\"labels\": ${labels[i]} +}, +\"spec\": ${spec[i]} +}" +fi +done + +## Uninstall the fluentbit-operator and the original configuration +for((i=0;i<${size};i++));do +echo "${name[i]}" + temp=$(echo ${name[i]} | sed 's/"//g') + echo "$temp" + kubectl delete $resource.logging.kubesphere.io $temp -n ${namespace} +done + +for((i=0;i<${size};i++));do +echo ${cluster_resource_list[i]} | kubectl apply -f - || error_exit "Cannot apply resource $reresource" +done +} + +converting "inputs" "ClusterInput" +converting "parsers" "ClusterParser" +converting "filters" "ClusterFilter" +converting "outputs" "ClusterOutput" +converting "fluentbitconfigs" "ClusterFluentBitConfig" +converting "fluentbits" "FluentBit" + +# Determine if Deployment exists +if kubectl get deployment -n $namespace $deployment >/dev/null 2>&1; then + # Delete Deployment if it exists + kubectl delete deployment -n $namespace $deployment + kubectl delete clusterrolebinding kubesphere:operator:fluentbit-operator + kubectl delete clusterrole kubesphere:operator:fluentbit-operator + kubectl delete serviceaccount fluentbit-operator -n $namespace + echo "Deployment $deployment deleted" +else + # If it does not exist, output the message + echo "Deployment $deployment does not exist" +fi + +## Delete the old crd +kubectl get crd -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep "logging.kubesphere.io" | xargs -I crd_name kubectl delete crd crd_name \ No newline at end of file From 5779839a3dc46d36a73145ecf0bbf130fa98c4d7 Mon Sep 17 00:00:00 2001 From: Elon Cheng <995729579@qq.com> Date: Tue, 4 Jul 2023 20:10:17 +0800 Subject: [PATCH 2/3] Update upgrade.sh --- cmd/upgrade/upgrade.sh | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/cmd/upgrade/upgrade.sh b/cmd/upgrade/upgrade.sh index 0a75f0466..20333aabf 100644 --- a/cmd/upgrade/upgrade.sh +++ b/cmd/upgrade/upgrade.sh @@ -1,6 +1,6 @@ #!/bin/bash namespace=kubesphere-logging-system -deployment="fluentbit-operator" +FluentbitOperator="fluentbit-operator" function error_exit { echo "$1" 1>&2 @@ -9,20 +9,20 @@ function error_exit { function converting(){ ## Converting an existing configuration to a new one -local resource=$1 -local kind=$2 -local list=$(kubectl get $resource.logging.kubesphere.io -A -o json) || error_exit "Cannot get resource $reresource" +local oldKind=$1 +local newKind=$2 +local list=$(kubectl get $oldKind.logging.kubesphere.io -A -o json) || error_exit "Cannot get resource $oldKind" local name=($(echo $list | jq -r '.items[].metadata.name | @json')) local labels=($(echo $list | jq -r '.items[].metadata.labels | @json')) local spec=($(echo $list | jq -r '.items[].spec | @json')) local ns=($(echo $list | jq -r '.items[].metadata.namespace | @json')) local size=${#spec[*]} -echo "Number of original $resource configuration files:$size" +echo "Number of original $oldKind configuration files:$size" for((i=0;i<${size};i++));do if [[ "${kind}" = "fluentbits" ]]; then cluster_resource_list[i]="{ \"apiVersion\": \"fluentbit.fluent.io/v1alpha2\", -\"kind\": \"${kind}\", +\"kind\": \"${newKind}\", \"metadata\": { \"name\": ${name[i]}, \"labels\": ${labels[i]}, @@ -48,33 +48,33 @@ for((i=0;i<${size};i++));do echo "${name[i]}" temp=$(echo ${name[i]} | sed 's/"//g') echo "$temp" - kubectl delete $resource.logging.kubesphere.io $temp -n ${namespace} + kubectl delete $oldKind.logging.kubesphere.io $temp -n ${namespace} done for((i=0;i<${size};i++));do -echo ${cluster_resource_list[i]} | kubectl apply -f - || error_exit "Cannot apply resource $reresource" +echo ${cluster_resource_list[i]} | kubectl apply -f - || error_exit "Cannot apply resource $oldKind" done } -converting "inputs" "ClusterInput" -converting "parsers" "ClusterParser" -converting "filters" "ClusterFilter" -converting "outputs" "ClusterOutput" -converting "fluentbitconfigs" "ClusterFluentBitConfig" -converting "fluentbits" "FluentBit" +converting "Input" "ClusterInput" +converting "Parser" "ClusterParser" +converting "Filter" "ClusterFilter" +converting "Output" "ClusterOutput" +converting "FluentbitConfig" "ClusterFluentBitConfig" +converting "FluentBit" "FluentBit" # Determine if Deployment exists -if kubectl get deployment -n $namespace $deployment >/dev/null 2>&1; then +if kubectl get deployment -n $namespace $FluentbitOperator >/dev/null 2>&1; then # Delete Deployment if it exists - kubectl delete deployment -n $namespace $deployment + kubectl delete deployment -n $namespace $FluentbitOperator kubectl delete clusterrolebinding kubesphere:operator:fluentbit-operator kubectl delete clusterrole kubesphere:operator:fluentbit-operator kubectl delete serviceaccount fluentbit-operator -n $namespace - echo "Deployment $deployment deleted" + echo "Deployment $FluentbitOperator deleted" else # If it does not exist, output the message - echo "Deployment $deployment does not exist" + echo "Deployment $FluentbitOperator does not exist" fi ## Delete the old crd -kubectl get crd -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep "logging.kubesphere.io" | xargs -I crd_name kubectl delete crd crd_name \ No newline at end of file +kubectl get crd -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep "logging.kubesphere.io" | xargs -I crd_name kubectl delete crd crd_name From 12f4190a5bebe89f45617854c24c95cbbcd29608 Mon Sep 17 00:00:00 2001 From: Elon Cheng Date: Wed, 5 Jul 2023 09:33:33 +0800 Subject: [PATCH 3/3] Update upgrade.sh Change function name --- cmd/upgrade/upgrade.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/upgrade/upgrade.sh b/cmd/upgrade/upgrade.sh index 20333aabf..76ee81b4c 100644 --- a/cmd/upgrade/upgrade.sh +++ b/cmd/upgrade/upgrade.sh @@ -7,7 +7,7 @@ function error_exit { exit 1 } -function converting(){ +function migrate(){ ## Converting an existing configuration to a new one local oldKind=$1 local newKind=$2 @@ -56,12 +56,12 @@ echo ${cluster_resource_list[i]} | kubectl apply -f - || error_exit "Cannot appl done } -converting "Input" "ClusterInput" -converting "Parser" "ClusterParser" -converting "Filter" "ClusterFilter" -converting "Output" "ClusterOutput" -converting "FluentbitConfig" "ClusterFluentBitConfig" -converting "FluentBit" "FluentBit" +migrate "Input" "ClusterInput" +migrate "Parser" "ClusterParser" +migrate "Filter" "ClusterFilter" +migrate "Output" "ClusterOutput" +migrate "FluentbitConfig" "ClusterFluentBitConfig" +migrate "FluentBit" "FluentBit" # Determine if Deployment exists if kubectl get deployment -n $namespace $FluentbitOperator >/dev/null 2>&1; then