Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/release-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@
"wso2-amp-secrets-extension",
"wso2-amp-thunder-extension",
"wso2-amp-evaluation-extension",
"wso2-amp-ai-gateway-extension"
"wso2-amp-api-platform-gateway-extension"
]
}
13 changes: 9 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: help setup setup-colima setup-k3d setup-openchoreo setup-platform setup-console-local setup-console-local-force dev-up dev-down dev-restart dev-rebuild dev-logs dev-migrate openchoreo-up openchoreo-down openchoreo-status teardown db-connect db-logs service-logs service-shell console-logs port-forward gen-eval-artifacts
.PHONY: help setup setup-colima setup-k3d setup-openchoreo setup-platform setup-gateway setup-console-local setup-console-local-force dev-up dev-down dev-restart dev-rebuild dev-logs dev-migrate openchoreo-up openchoreo-down openchoreo-status teardown db-connect db-logs service-logs service-shell console-logs port-forward gen-eval-artifacts

# Default target
help:
Expand All @@ -10,6 +10,7 @@ help:
@echo " make setup-k3d - Create k3d cluster"
@echo " make setup-openchoreo - Install OpenChoreo on k3d"
@echo " make setup-platform - Build images and start core platform services"
@echo " make setup-gateway - Install API Platform Gateway (after platform is up)"
@echo " make setup-console-local - Install console deps (only if changed)"
@echo " make setup-console-local-force - Force reinstall console deps"
@echo ""
Expand Down Expand Up @@ -46,16 +47,17 @@ help:
# Complete setup
setup: setup-colima setup-k3d setup-openchoreo setup-platform setup-console-local
@echo ""
@echo "✅ Complete setup finished!"
@echo "✅ Setup finished!"
@echo ""
@echo "🌐 Access your services:"
@echo " Console: http://localhost:3000"
@echo " API: http://localhost:8080"
@echo " Traces Observer Service: http://localhost:9098"
@echo " Database: localhost:5432"
@echo ""
@echo "📊 To access OpenChoreo services, run:"
@echo " make port-forward"
@echo "📊 Next steps — install the API Platform Gateway:"
@echo " 1. make port-forward (in a separate terminal)"
@echo " 2. make setup-gateway"
Comment on lines +50 to +60
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot Apr 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Swap the post-setup order.

make port-forward will fail until the gateway service exists, so the instructions currently tell users to run the commands in the wrong order.

Suggested fix
-	`@echo` "📊 Next steps — install the API Platform Gateway:"
-	`@echo` "   1. make port-forward     (in a separate terminal)"
-	`@echo` "   2. make setup-gateway"
+	`@echo` "📊 Next steps — install the API Platform Gateway:"
+	`@echo` "   1. make setup-gateway"
+	`@echo` "   2. make port-forward     (in a separate terminal)"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
@echo "✅ Setup finished!"
@echo ""
@echo "🌐 Access your services:"
@echo " Console: http://localhost:3000"
@echo " API: http://localhost:8080"
@echo " Traces Observer Service: http://localhost:9098"
@echo " Database: localhost:5432"
@echo ""
@echo "📊 To access OpenChoreo services, run:"
@echo " make port-forward"
@echo "📊 Next steps — install the API Platform Gateway:"
@echo " 1. make port-forward (in a separate terminal)"
@echo " 2. make setup-gateway"
`@echo` "✅ Setup finished!"
`@echo` ""
`@echo` "🌐 Access your services:"
`@echo` " Console: http://localhost:3000"
`@echo` " API: http://localhost:8080"
`@echo` " Traces Observer Service: http://localhost:9098"
`@echo` " Database: localhost:5432"
`@echo` ""
`@echo` "📊 Next steps — install the API Platform Gateway:"
`@echo` " 1. make setup-gateway"
`@echo` " 2. make port-forward (in a separate terminal)"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Makefile` around lines 50 - 60, The post-setup printed "Next steps" order is
reversed causing users to run make port-forward before the gateway exists;
update the Makefile echo block so the recommended sequence shows "1. make
setup-gateway" first and "2. make port-forward" second (refer to the echo lines
that print "📊 Next steps — install the API Platform Gateway:" and the two
following echo lines listing "make port-forward" and "make setup-gateway") so
users run setup-gateway before port-forward.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AnoshanJ seems like this is a valid comment. port forward has gateway ports configured to be exposed. but, in this step, the gateway is not running.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!


# Setup individual components
setup-colima:
Expand All @@ -75,6 +77,9 @@ gen-keys:
setup-platform: gen-keys
@cd deployments/scripts && ./setup-platform.sh

setup-gateway:
@cd deployments/scripts && ./setup-gateway.sh

# Console local setup with dependency tracking
# This will only rebuild when rush.json or pnpm-lock.yaml changes
.make:
Expand Down
2 changes: 1 addition & 1 deletion agent-manager-service/config/config_loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ func loadEnvs() {
IsTraceContentEnabled: r.readOptionalBool("OTEL_TRACELOOP_TRACE_CONTENT", true),

// OTLP Exporter configuration
ExporterEndpoint: r.readOptionalString("OTEL_EXPORTER_OTLP_ENDPOINT", "http://obs-gateway-gateway-gateway-runtime.openchoreo-data-plane.svc.cluster.local:22893/otel"),
ExporterEndpoint: r.readOptionalString("OTEL_EXPORTER_OTLP_ENDPOINT", "http://api-platform-default-default-gateway-gateway-runtime.openchoreo-data-plane.svc.cluster.local:22893/otel"),
}

// Observer service configuration - temporarily use localhost for agent-manager-service to access observer service
Expand Down
2 changes: 1 addition & 1 deletion console/workspaces/libs/types/src/api/gateways.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

import type { ListQuery, OrgPathParams, PaginationMeta } from "./common";

export type GatewayType = "AI" | "REGULAR";
export type GatewayType = "AI" | "REGULAR" | "ai" | "regular";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Keep GatewayType aligned with the backend enum contract.

The API model now accepts "ai"/"regular" at type level, but the backend contract only declares "AI" and "REGULAR" as allowed values. This can let invalid request/query values compile and fail at runtime.

Proposed fix
-export type GatewayType = "AI" | "REGULAR" | "ai" | "regular";
+export type GatewayType = "AI" | "REGULAR";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
export type GatewayType = "AI" | "REGULAR" | "ai" | "regular";
export type GatewayType = "AI" | "REGULAR";
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@console/workspaces/libs/types/src/api/gateways.ts` at line 21, GatewayType
currently allows lowercase values ("ai"/"regular") that don't match the backend
enum; update the type definition for GatewayType to only the backend-allowed
string literals ("AI" and "REGULAR") so compile-time checks prevent sending
invalid values; locate the GatewayType alias in this file and remove the
lowercase alternatives, then run type checks to ensure callers are updated to
use "AI" or "REGULAR".


export type GatewayStatus =
| "ACTIVE"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,17 +122,17 @@ export const AddAIGatewayOrganization: React.FC = () => {
},
onError: (e: unknown) => {
// eslint-disable-next-line no-console
console.error("Failed to create AI gateway:", e);
console.error("Failed to create gateway:", e);
},
}
);
}, [formData, validateForm, createGateway, navigate, orgId]);

return (
<PageLayout
title="Add AI Gateway"
title="Add Gateway"
backHref={backHref}
backLabel="Back to AI Gateways"
backLabel="Back to Gateways"
disableIcon
>
<Form.Stack spacing={2}>
Expand All @@ -159,7 +159,7 @@ export const AddAIGatewayOrganization: React.FC = () => {
<Alert severity="error" sx={{ mt: 2 }}>
{createError instanceof Error
? createError.message
: "Failed to create AI gateway"}
: "Failed to create gateway"}
</Alert>
)}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export const GatewaysOrganization: React.FC = () => {
<Route
index
element={
<PageLayout title="AI Gateways" disableIcon>
<PageLayout title="Gateways" disableIcon>
<AIGatewaysTable onEditGateway={handleEditGateway} />
</PageLayout>
}
Expand Down
4 changes: 2 additions & 2 deletions console/workspaces/pages/gateways/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ import { DoorClosedLocked } from "@wso2/oxygen-ui-icons-react";
import { GatewaysOrganization } from "./Gateways.Organization";

export const metaData = {
title: "AI Gateways",
description: "A page component for AI Gateway management",
title: "Gateways",
description: "A page component for Gateway management",
icon: DoorClosedLocked,
path: "/gateways",
component: GatewaysOrganization,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
isLoading,
error,
refetch,
} = useListGateways({ orgName: orgId }, { type: "AI" });
} = useListGateways({ orgName: orgId });

const { mutateAsync: deleteGateway } = useDeleteGateway();

Expand Down Expand Up @@ -101,7 +101,7 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
<Box flexGrow={1}>
<SearchBar
key="search-bar"
placeholder="Search AI Gateways..."
placeholder="Search Gateways..."
size="small"
fullWidth
value={searchQuery}
Expand All @@ -122,7 +122,7 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
color="primary"
startIcon={<Plus size={16} />}
>
Add AI Gateway
Add Gateway
</Button>
)}
</Stack>
Expand Down Expand Up @@ -204,8 +204,8 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
<ListingTable.Container>
<ListingTable.EmptyState
illustration={<DoorClosedLocked size={64} />}
title="No available AI gateway"
description="Add an AI gateway to manage and monitor your AI gateway deployments."
title="No available gateway"
description="Add a gateway to manage and monitor your gateway deployments."
action={
<Button
component={Link}
Expand All @@ -217,7 +217,7 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
variant="contained"
startIcon={<Plus size={16} />}
>
Add AI Gateway
Add Gateway
</Button>
}
/>
Expand All @@ -233,7 +233,7 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
<ListingTable.Container>
<ListingTable.EmptyState
illustration={<Search size={64} />}
title="No AI Gateways found."
title="No Gateways found."
description="Try a different keyword or clear the search filter."
/>
</ListingTable.Container>
Expand All @@ -255,6 +255,9 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
<ListingTable.Head>
<ListingTable.Row>
<ListingTable.Cell width="300px">Name</ListingTable.Cell>
<ListingTable.Cell align="center" width="120px">
Type
</ListingTable.Cell>
<ListingTable.Cell align="center" width="120px">
Status
</ListingTable.Cell>
Expand Down Expand Up @@ -336,6 +339,15 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
</Stack>
</ListingTable.Cell>

<ListingTable.Cell align="center">
<Chip
label={gateway.gatewayType?.toUpperCase() === "AI" ? "AI" : "Regular"}
size="small"
variant="outlined"
color={gateway.gatewayType?.toUpperCase() === "AI" ? "info" : "default"}
/>
</ListingTable.Cell>

<ListingTable.Cell align="center">
<Chip
label={isActive ? "Active" : "Inactive"}
Expand Down Expand Up @@ -374,7 +386,7 @@ export function AIGatewaysTable({ onEditGateway }: AIGatewaysTableProps) {
size="small"
onClick={() =>
addConfirmation({
title: "Delete AI Gateway",
title: "Delete Gateway",
description: `Are you sure you want to delete ${displayName}?`,
confirmButtonText: "Delete",
confirmButtonColor: "error",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ export const AddAIGatewayForm: React.FC<AddAIGatewayFormProps> = ({
<Form.ElementWrapper label="Name" name="displayName">
<TextField
id="displayName"
placeholder="e.g., Production AI Gateway"
placeholder="e.g., Production Gateway"
value={formData.displayName}
onChange={(e: React.ChangeEvent<HTMLInputElement>) =>
handleFieldChange("displayName", e.target.value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ export function EditGatewayDrawer({
<DrawerWrapper open={open} onClose={onClose}>
<DrawerHeader
icon={<Edit size={24} />}
title="Edit AI Gateway"
title="Edit Gateway"
onClose={onClose}
/>
<DrawerContent>
Expand Down Expand Up @@ -184,7 +184,7 @@ export function EditGatewayDrawer({
onChange={(e) =>
handleFieldChange("displayName", e.target.value)
}
placeholder="e.g., Production AI Gateway"
placeholder="e.g., Production Gateway"
error={Boolean(errors.displayName)}
helperText={errors.displayName}
disabled={isPending}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ export const ViewGateway: React.FC = () => {
absoluteRouteMap.children.org.children.gateways.path,
{ orgId: orgId ?? "" },
)}
backLabel="Back to AI Gateways"
backLabel="Back to Gateways"
description={
gateway?.createdAt
? `Created ${formatDistanceToNow(new Date(gateway.createdAt), {
Expand Down Expand Up @@ -230,6 +230,26 @@ export const ViewGateway: React.FC = () => {
</Stack>
</Card>
</Grid>
<Grid size={{ xs: 12, sm: 6, md: 4 }}>
<Card variant="outlined" sx={{ p: 2, height: "100%" }}>
<Stack spacing={0.5}>
<Typography
variant="caption"
color="text.secondary"
sx={{ fontWeight: 500 }}
>
Type
</Typography>
<Chip
label={gateway.gatewayType?.toUpperCase() === "AI" ? "AI" : "Regular"}
size="small"
variant="outlined"
color={gateway.gatewayType?.toUpperCase() === "AI" ? "info" : "default"}
sx={{ width: "fit-content" }}
/>
</Stack>
</Card>
</Grid>
<Grid size={{ xs: 12, sm: 6, md: 4 }}>
<Card variant="outlined" sx={{ p: 2, height: "100%" }}>
<Stack spacing={0.5}>
Expand Down
4 changes: 2 additions & 2 deletions deployments/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ services:
- "api.openchoreo.localhost:host-gateway"
# Thunder IDP for OAuth2 token exchange (must match OpenChoreo's security.oidc config)
- "thunder.amp.localhost:host-gateway"
# AI Gateway runtime for agent endpoint access (port 8084 mapped via k3d)
- "ai-gateway.amp.localhost:host-gateway"
# API Platform Gateway runtime for agent endpoint access
- "api-platform-gateway.amp.localhost:host-gateway"

# Agent Manager Console (React Frontend)
agent-manager-console:
Expand Down
2 changes: 1 addition & 1 deletion deployments/helm-charts/wso2-agent-manager/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ agentManagerService:
# OpenTelemetry configuration
otel:
traceContent: "true"
exporterEndpoint: "http://obs-gateway-gateway-gateway-runtime.openchoreo-data-plane.svc.cluster.local:22893/otel"
exporterEndpoint: "http://api-platform-default-default-gateway-gateway-runtime.openchoreo-data-plane.svc.cluster.local:22893/otel"

# Key Manager configuration
keyManager:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: wso2-amp-ai-gateway-extension
description: A Helm chart to deploy and auto-register the WSO2 AI API Gateway for the Agent Management Platform.
name: wso2-amp-api-platform-gateway-extension
description: A Helm chart to deploy and auto-register the unified API Platform Gateway for the Agent Management Platform.
type: application
version: 0.0.0-dev
appVersion: "0.0.0-dev"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ Defaults to "<release-name>-config" when not explicitly set.

{{/*
Name of the APIGateway CR.
Defaults to the release name when gateway.name is not explicitly set.
Defaults to "api-platform-<orgName>-<environment>" when gateway.name is not explicitly set.
*/}}
{{- define "wso2-amp-gateway-extension.apiGatewayName" -}}
{{- if .Values.gateway.name }}
{{- .Values.gateway.name }}
{{- else }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- printf "api-platform-%s-%s" .Values.agentManager.orgName .Values.gateway.environment | trunc 63 | trimSuffix "-" }}
{{- end }}
Comment on lines +56 to +61
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail
rg -n --context 3 'orgName|environment|apiGatewayName|gateway\.name|pattern' deployments/helm-charts/wso2-amp-api-platform-gateway-extension
fd -t f 'values.schema.json' deployments/helm-charts/wso2-amp-api-platform-gateway-extension

Repository: wso2/agent-manager

Length of output: 14368


Add lower filter to sanitize APIGateway name components.

agentManager.orgName and gateway.environment lack validation constraints in the values schema, so uppercase or mixed-case inputs will produce invalid Kubernetes resource names. Apply the lowercase filter to ensure the generated name always conforms to DNS-1123 requirements.

Fix
-{{- printf "api-platform-%s-%s" .Values.agentManager.orgName .Values.gateway.environment | trunc 63 | trimSuffix "-" }}
+{{- printf "api-platform-%s-%s" .Values.agentManager.orgName .Values.gateway.environment | lower | trunc 63 | trimSuffix "-" }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{{- define "wso2-amp-gateway-extension.apiGatewayName" -}}
{{- if .Values.gateway.name }}
{{- .Values.gateway.name }}
{{- else }}
{{- printf "api-platform-%s-%s" .Values.agentManager.orgName .Values.gateway.environment | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- define "wso2-amp-gateway-extension.apiGatewayName" -}}
{{- if .Values.gateway.name }}
{{- .Values.gateway.name }}
{{- else }}
{{- printf "api-platform-%s-%s" .Values.agentManager.orgName .Values.gateway.environment | lower | trunc 63 | trimSuffix "-" }}
{{- end }}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@deployments/helm-charts/wso2-amp-api-platform-gateway-extension/templates/_helpers.tpl`
around lines 56 - 61, The template define
"wso2-amp-gateway-extension.apiGatewayName" can emit mixed/upper-case components
(.Values.agentManager.orgName and .Values.gateway.environment) which may violate
DNS-1123; update the printf pipeline to apply the lower filter to those
components (and ensure the final result is lowercased) before
truncation/trimSuffix so the generated name always uses lowercase characters
while preserving the existing fallback on .Values.gateway.name.

{{- end }}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ metadata:
{{- include "wso2-amp-gateway-extension.labels" . | nindent 4 }}
app.kubernetes.io/component: gateway-bootstrap
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "1"
"helm.sh/hook-delete-policy": before-hook-creation
---
Expand All @@ -25,7 +25,7 @@ metadata:
{{- include "wso2-amp-gateway-extension.labels" . | nindent 4 }}
app.kubernetes.io/component: gateway-bootstrap
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "2"
"helm.sh/hook-delete-policy": before-hook-creation
rules:
Expand All @@ -48,7 +48,7 @@ metadata:
{{- include "wso2-amp-gateway-extension.labels" . | nindent 4 }}
app.kubernetes.io/component: gateway-bootstrap
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "3"
"helm.sh/hook-delete-policy": before-hook-creation
subjects:
Expand All @@ -63,14 +63,14 @@ roleRef:
# Bootstrap Job:
# 1. Waits for Agent Manager API to be healthy
# 2. Gets a JWT from Thunder IDP using amp-api-client credentials
# 3. Registers the AI gateway in Agent Manager (idempotent)
# 3. Registers the Gateway in Agent Manager (idempotent)
# 4. Generates a registration token (skipped on upgrades if Secret already exists)
# 5. Writes the token to a Secret in apiGateway.namespace so the gateway-operator
# can reference it via the APIGateway CR spec.controlPlane.tokenSecretRef
#
# Hook weight 10 runs after:
# - Agent Manager is up (db-migration in wso2-agent-manager at weight -5)
# - Thunder bootstrap (wso2-amp-thunder-extension at weight -10)
# Pre-install hook: creates the token Secret BEFORE the APIGateway CR so the
# gateway-controller pod can mount it immediately when the operator deploys it.
# Hook weight 10 runs after other pre-install hooks in this chart (SA, Role, RoleBinding).
apiVersion: batch/v1
kind: Job
metadata:
Expand All @@ -80,7 +80,7 @@ metadata:
{{- include "wso2-amp-gateway-extension.labels" . | nindent 4 }}
app.kubernetes.io/component: gateway-bootstrap
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "10"
"helm.sh/hook-delete-policy": before-hook-creation
spec:
Expand Down
Loading
Loading