Skip to content

Commit 9f52bce

Browse files
committed
Updating to use latest release canadite and including metric collection
1 parent da62368 commit 9f52bce

File tree

4 files changed

+75
-32
lines changed

4 files changed

+75
-32
lines changed

deployment/base/policies/kustomization.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ resources:
88
# Gateway policies - default for all models
99
- gateway-auth-policy.yaml
1010
- token-limit-policy.yaml
11-
- rate-limit-policy.yaml
11+
- rate-limit-policy.yaml
12+
- telemetry-policy.yaml
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: extensions.kuadrant.io/v1alpha1
2+
kind: TelemetryPolicy
3+
metadata:
4+
name: user-group
5+
namespace: openshift-ingress
6+
spec:
7+
metrics:
8+
default:
9+
labels:
10+
model: responseBodyJSON("/model")
11+
tier: auth.identity.tier
12+
user: auth.identity.userid
13+
targetRef:
14+
group: gateway.networking.k8s.io
15+
kind: Gateway
16+
name: maas-default-gateway

deployment/scripts/deploy-openshift.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,9 @@ echo "7️⃣ Applying OpenShift-specific configurations..."
249249
# Patch Kuadrant for OpenShift Gateway Controller
250250
echo " Patching Kuadrant operator..."
251251
if ! kubectl -n kuadrant-system get deployment kuadrant-operator-controller-manager -o jsonpath='{.spec.template.spec.containers[0].env[?(@.name=="ISTIO_GATEWAY_CONTROLLER_NAMES")]}' | grep -q "ISTIO_GATEWAY_CONTROLLER_NAMES"; then
252-
kubectl -n kuadrant-system patch deployment kuadrant-operator-controller-manager \
253-
--type='json' \
254-
-p='[{"op":"add","path":"/spec/template/spec/containers/0/env/-","value":{"name":"ISTIO_GATEWAY_CONTROLLER_NAMES","value":"openshift.io/gateway-controller/v1"}}]'
252+
kubectl patch csv kuadrant-operator.v1.3.0-rc2 -n kuadrant-system \
253+
--type=json -p='[{"op":"add","path":"/spec/install/spec/deployments/0/spec/template/spec/containers/0/env/-","value":{"name":"ISTIO_GATEWAY_CONTROLLER_NAMES",\
254+
"value":"istio.io/gateway-controller,openshift.io/gateway-controller/v1"}}]'
255255
echo " ✅ Kuadrant operator patched"
256256
else
257257
echo " ✅ Kuadrant operator already configured"

deployment/scripts/install-dependencies.sh

Lines changed: 54 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ COMPONENTS=("istio" "cert-manager" "odh" "kserve" "prometheus" "kuadrant" "graf
1212
# OpenShift flag
1313
OCP=false
1414

15+
KUADRANT_VERSION="v1.3.0-rc2"
16+
1517
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
1618
INSTALLERS_DIR="$SCRIPT_DIR/installers"
1719

@@ -41,7 +43,7 @@ get_component_description() {
4143
echo "Dashboard visualization platform (not implemented for vanilla Kubernetes)"
4244
fi
4345
;;
44-
kuadrant) echo "API gateway operators via Helm (Kuadrant, Authorino, Limitador)" ;;
46+
kuadrant) echo "API gateway operators via OLM (Kuadrant, Authorino, Limitador)" ;;
4547
*) echo "Unknown component" ;;
4648
esac
4749
}
@@ -59,7 +61,7 @@ usage() {
5961
echo " --kserve Install KServe model serving platform"
6062
echo " --prometheus Install Prometheus operator"
6163
echo " --grafana Install Grafana dashboard platform"
62-
echo " --kuadrant Install Kuadrant operators via Helm"
64+
echo " --kuadrant Install Kuadrant operators via OLM"
6365
echo " --ocp Use OpenShift-specific handling (validate instead of install)"
6466
echo " -h, --help Show this help message"
6567
echo ""
@@ -98,36 +100,60 @@ install_component() {
98100

99101
# Inline handler for Kuadrant (installed via Helm)
100102
if [[ "$component" == "kuadrant" ]]; then
101-
echo "🚀 Installing kuadrant (via Helm)..."
102-
NAMESPACE=${NAMESPACE:-kuadrant-system}
103-
KUADRANT_CHART_VERSION=${KUADRANT_CHART_VERSION:-1.3.0-alpha2}
104-
AUTHORINO_CHART_VERSION=${AUTHORINO_CHART_VERSION:-0.21.0}
105-
LIMITADOR_CHART_VERSION=${LIMITADOR_CHART_VERSION:-0.15.0}
106-
HELM_REPO_NAME=${HELM_REPO_NAME:-kuadrant}
107-
HELM_REPO_URL=${HELM_REPO_URL:-https://kuadrant.io/helm-charts/}
108-
109-
if ! command -v helm &> /dev/null; then
110-
echo "❌ helm not found. Please install helm first."
111-
return 1
112-
fi
113103

114-
if helm repo list | awk '{print $1}' | grep -qx "$HELM_REPO_NAME"; then
115-
echo "🔄 Updating Helm repo $HELM_REPO_NAME..."
116-
helm repo update
104+
NAMESPACE=${NAMESPACE:-kuadrant-system}
105+
# Check if the CatalogSource already exists before applying
106+
if kubectl get catalogsource kuadrant-operator-catalog -n "$NAMESPACE" &>/dev/null; then
107+
echo "✅ Kuadrant CatalogSource already exists in namespace $NAMESPACE, skipping creation."
117108
else
118-
echo "➕ Adding Helm repo $HELM_REPO_NAME -> $HELM_REPO_URL..."
119-
helm repo add "$HELM_REPO_NAME" "$HELM_REPO_URL" --force-update
109+
kubectl apply -f - <<EOF
110+
apiVersion: operators.coreos.com/v1alpha1
111+
kind: CatalogSource
112+
metadata:
113+
name: kuadrant-operator-catalog
114+
namespace: kuadrant-system
115+
spec:
116+
displayName: Kuadrant Operators
117+
grpcPodConfig:
118+
securityContextConfig: restricted
119+
image: 'quay.io/kuadrant/kuadrant-operator-catalog:v1.3.0-rc2'
120+
publisher: grpc
121+
sourceType: grpc
122+
EOF
120123
fi
121124

122-
echo "📦 Installing kuadrant-operator chart ($KUADRANT_CHART_VERSION)"
123-
# Add --devel flag if version contains alpha, beta, or rc
124-
if [[ "$KUADRANT_CHART_VERSION" =~ (alpha|beta|rc) ]]; then
125-
helm upgrade -i kuadrant-operator "$HELM_REPO_NAME/kuadrant-operator" \
126-
--version "$KUADRANT_CHART_VERSION" --devel -n "$NAMESPACE" --create-namespace --wait
127-
else
128-
helm upgrade -i kuadrant-operator "$HELM_REPO_NAME/kuadrant-operator" \
129-
--version "$KUADRANT_CHART_VERSION" -n "$NAMESPACE" --create-namespace --wait
130-
fi
125+
126+
echo "🚀 Installing kuadrant (via OLM Subscription)..."
127+
kubectl apply -f - <<EOF
128+
apiVersion: operators.coreos.com/v1alpha1
129+
kind: Subscription
130+
metadata:
131+
name: kuadrant-operator
132+
namespace: kuadrant-system
133+
spec:
134+
channel: stable
135+
installPlanApproval: Automatic
136+
name: kuadrant-operator
137+
source: kuadrant-operator-catalog
138+
sourceNamespace: kuadrant-system
139+
EOF
140+
# Wait for kuadrant-operator-controller-manager deployment to exist before waiting for Available condition
141+
ATTEMPTS=0
142+
MAX_ATTEMPTS=5
143+
while true; do
144+
145+
if kubectl get deployment/kuadrant-operator-controller-manager -n "$NAMESPACE" &>/dev/null; then
146+
break
147+
else
148+
ATTEMPTS=$((ATTEMPTS+1))
149+
if [[ $ATTEMPTS -ge $MAX_ATTEMPTS ]]; then
150+
echo "❌ kuadrant-operator-controller-manager deployment not found after $MAX_ATTEMPTS attempts."
151+
return 1
152+
fi
153+
echo "⏳ Waiting for kuadrant-operator-controller-manager deployment to be created... (attempt $ATTEMPTS/$MAX_ATTEMPTS)"
154+
sleep $((10 + 10 * $ATTEMPTS))
155+
fi
156+
done
131157

132158
echo "⏳ Waiting for operators to be ready..."
133159
kubectl wait --for=condition=Available deployment/kuadrant-operator-controller-manager -n "$NAMESPACE" --timeout=300s

0 commit comments

Comments
 (0)