From 5b1fa6b559d0b3c589dff344317cb64026aced41 Mon Sep 17 00:00:00 2001 From: leecalcote Date: Mon, 24 Jan 2022 20:04:17 +0000 Subject: [PATCH] [Patterns] Pattern components generated from latest OSM manifests Signed-off-by: l5io --- ...ery.layer5.io.meshery.layer5io.schema.json | 103 +++++++ .../egress.meshery.layer5.io_definition.json | 20 ++ ...ery.layer5.io.meshery.layer5io.schema.json | 60 ++++ ...utegroup.meshery.layer5.io_definition.json | 20 ++ ...ery.layer5.io.meshery.layer5io.schema.json | 118 ++++++++ ...sbackend.meshery.layer5.io_definition.json | 20 ++ ...ery.layer5.io.meshery.layer5io.schema.json | 264 ++++++++++++++++++ ...shconfig.meshery.layer5.io_definition.json | 20 ++ ...ery.layer5.io.meshery.layer5io.schema.json | 79 ++++++ ...rservice.meshery.layer5.io_definition.json | 20 ++ ...ery.layer5.io.meshery.layer5io.schema.json | 25 ++ ...tcproute.meshery.layer5.io_definition.json | 20 ++ ...ery.layer5.io.meshery.layer5io.schema.json | 59 ++++ ...ficsplit.meshery.layer5.io_definition.json | 20 ++ ...ery.layer5.io.meshery.layer5io.schema.json | 91 ++++++ ...ictarget.meshery.layer5.io_definition.json | 20 ++ 16 files changed, 959 insertions(+) create mode 100755 templates/oam/workloads/v1.0.0-rc.4/egress.meshery.layer5.io.meshery.layer5io.schema.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/egress.meshery.layer5.io_definition.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/httproutegroup.meshery.layer5.io.meshery.layer5io.schema.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/httproutegroup.meshery.layer5.io_definition.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/ingressbackend.meshery.layer5.io.meshery.layer5io.schema.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/ingressbackend.meshery.layer5.io_definition.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/meshconfig.meshery.layer5.io.meshery.layer5io.schema.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/meshconfig.meshery.layer5.io_definition.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/multiclusterservice.meshery.layer5.io.meshery.layer5io.schema.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/multiclusterservice.meshery.layer5.io_definition.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/tcproute.meshery.layer5.io.meshery.layer5io.schema.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/tcproute.meshery.layer5.io_definition.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/trafficsplit.meshery.layer5.io.meshery.layer5io.schema.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/trafficsplit.meshery.layer5.io_definition.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/traffictarget.meshery.layer5.io.meshery.layer5io.schema.json create mode 100755 templates/oam/workloads/v1.0.0-rc.4/traffictarget.meshery.layer5.io_definition.json diff --git a/templates/oam/workloads/v1.0.0-rc.4/egress.meshery.layer5.io.meshery.layer5io.schema.json b/templates/oam/workloads/v1.0.0-rc.4/egress.meshery.layer5.io.meshery.layer5io.schema.json new file mode 100755 index 00000000..c77de28d --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/egress.meshery.layer5.io.meshery.layer5io.schema.json @@ -0,0 +1,103 @@ +{ + "properties": { + "hosts": { + "description": "Hosts that the sources are allowed to direct external traffic to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ipAddresses": { + "description": "IP address ranges that the sources are allowed to direct external traffic to.", + "items": { + "pattern": "((?:\\d{1,3}\\.){3}\\d{1,3})\\/(\\d{1,2})$", + "type": "string" + }, + "type": "array" + }, + "matches": { + "description": "The resource references an Egress policy should match on.", + "items": { + "properties": { + "apiGroup": { + "description": "API group for the resource being referenced.", + "type": "string" + }, + "kind": { + "description": "Type of resource being referenced.", + "type": "string" + }, + "name": { + "description": "Name of resource being referenced.", + "type": "string" + } + }, + "required": [ + "apiGroup", + "kind", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "ports": { + "description": "Ports that the sources are allowed to direct external traffic to.", + "items": { + "properties": { + "number": { + "description": "Port number of this port.", + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "protocol": { + "description": "Protocol served by this port.", + "type": "string" + } + }, + "required": [ + "number", + "protocol" + ], + "type": "object" + }, + "type": "array" + }, + "sources": { + "description": "Sources the egress policy is applicable to.", + "items": { + "properties": { + "kind": { + "description": "Kind of this source.", + "enum": [ + "ServiceAccount" + ], + "type": "string" + }, + "name": { + "description": "Name of this source.", + "type": "string" + }, + "namespace": { + "description": "Namespace of this source.", + "type": "string" + } + }, + "required": [ + "kind", + "name", + "namespace" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "sources", + "ports" + ], + "title": "Egress", + "type": "object" +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/egress.meshery.layer5.io_definition.json b/templates/oam/workloads/v1.0.0-rc.4/egress.meshery.layer5.io_definition.json new file mode 100755 index 00000000..cb68e093 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/egress.meshery.layer5.io_definition.json @@ -0,0 +1,20 @@ +{ + "kind": "WorkloadDefinition", + "apiVersion": "core.oam.dev/v1alpha1", + "metadata": { + "name": "Egress", + "creationTimestamp": null + }, + "spec": { + "definitionRef": { + "name": "egress.meshery.layer5.io" + }, + "metadata": { + "@type": "pattern.meshery.io/mesh/workload", + "k8sAPIVersion": "policy.openservicemesh.io/v1alpha1", + "k8sKind": "Egress", + "meshName": "OPEN_SERVICE_MESH", + "meshVersion": "v1.0.0-rc.4" + } + } +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/httproutegroup.meshery.layer5.io.meshery.layer5io.schema.json b/templates/oam/workloads/v1.0.0-rc.4/httproutegroup.meshery.layer5.io.meshery.layer5io.schema.json new file mode 100755 index 00000000..6951d46c --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/httproutegroup.meshery.layer5.io.meshery.layer5io.schema.json @@ -0,0 +1,60 @@ +{ + "properties": { + "matches": { + "description": "Match conditions of this route group.", + "items": { + "properties": { + "headers": { + "description": "Header match conditions of this route.", + "items": { + "additionalProperties": { + "type": "string" + }, + "description": "Header match condition of this route.", + "type": "object" + }, + "type": "array" + }, + "methods": { + "description": "The HTTP methods of this HTTP route.", + "items": { + "description": "The HTTP method of this HTTP route.", + "enum": [ + "*", + "GET", + "HEAD", + "PUT", + "POST", + "DELETE", + "CONNECT", + "OPTIONS", + "TRACE", + "PATCH" + ], + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Name of the HTTP route.", + "type": "string" + }, + "pathRegex": { + "description": "URI path regex of the HTTP route.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "matches" + ], + "title": "HTTP Route Group", + "type": "object" +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/httproutegroup.meshery.layer5.io_definition.json b/templates/oam/workloads/v1.0.0-rc.4/httproutegroup.meshery.layer5.io_definition.json new file mode 100755 index 00000000..c67e9ed7 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/httproutegroup.meshery.layer5.io_definition.json @@ -0,0 +1,20 @@ +{ + "kind": "WorkloadDefinition", + "apiVersion": "core.oam.dev/v1alpha1", + "metadata": { + "name": "HTTPRouteGroup", + "creationTimestamp": null + }, + "spec": { + "definitionRef": { + "name": "httproutegroup.meshery.layer5.io" + }, + "metadata": { + "@type": "pattern.meshery.io/mesh/workload", + "k8sAPIVersion": "specs.smi-spec.io/v1alpha4", + "k8sKind": "HTTPRouteGroup", + "meshName": "OPEN_SERVICE_MESH", + "meshVersion": "v1.0.0-rc.4" + } + } +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/ingressbackend.meshery.layer5.io.meshery.layer5io.schema.json b/templates/oam/workloads/v1.0.0-rc.4/ingressbackend.meshery.layer5.io.meshery.layer5io.schema.json new file mode 100755 index 00000000..f5535897 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/ingressbackend.meshery.layer5.io.meshery.layer5io.schema.json @@ -0,0 +1,118 @@ +{ + "properties": { + "backends": { + "description": "Backends the IngressBackend policy is applicable to.", + "items": { + "properties": { + "name": { + "description": "Name of the backend.", + "type": "string" + }, + "port": { + "description": "Port of the backend.", + "properties": { + "number": { + "description": "Port number of this port.", + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "protocol": { + "description": "Protocol served by this port.", + "type": "string" + } + }, + "required": [ + "number", + "protocol" + ], + "type": "object" + }, + "tls": { + "description": "TLS configuration for the backend.", + "properties": { + "skipClientCertValidation": { + "description": "Skip client certificate validation.", + "type": "boolean" + }, + "sniHosts": { + "description": "SNI hosts allowed by the backend.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "skipClientCertValidation" + ], + "type": "object" + } + }, + "required": [ + "name", + "port" + ], + "type": "object" + }, + "type": "array" + }, + "matches": { + "description": "The resource references an IngressBackend policy should match on.", + "items": { + "properties": { + "apiGroup": { + "description": "API group for the resource being referenced.", + "type": "string" + }, + "kind": { + "description": "Type of resource being referenced.", + "type": "string" + }, + "name": { + "description": "Name of resource being referenced.", + "type": "string" + } + }, + "required": [ + "apiGroup", + "kind", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "sources": { + "description": "Sources the IngressBackend policy is applicable to.", + "items": { + "properties": { + "kind": { + "description": "Kind of this source.", + "type": "string" + }, + "name": { + "description": "Name of this source.", + "type": "string" + }, + "namespace": { + "description": "Namespace of this source.", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "backends", + "sources" + ], + "title": "Ingress Backend", + "type": "object" +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/ingressbackend.meshery.layer5.io_definition.json b/templates/oam/workloads/v1.0.0-rc.4/ingressbackend.meshery.layer5.io_definition.json new file mode 100755 index 00000000..085a0f4e --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/ingressbackend.meshery.layer5.io_definition.json @@ -0,0 +1,20 @@ +{ + "kind": "WorkloadDefinition", + "apiVersion": "core.oam.dev/v1alpha1", + "metadata": { + "name": "IngressBackend", + "creationTimestamp": null + }, + "spec": { + "definitionRef": { + "name": "ingressbackend.meshery.layer5.io" + }, + "metadata": { + "@type": "pattern.meshery.io/mesh/workload", + "k8sAPIVersion": "policy.openservicemesh.io/v1alpha1", + "k8sKind": "IngressBackend", + "meshName": "OPEN_SERVICE_MESH", + "meshVersion": "v1.0.0-rc.4" + } + } +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/meshconfig.meshery.layer5.io.meshery.layer5io.schema.json b/templates/oam/workloads/v1.0.0-rc.4/meshconfig.meshery.layer5.io.meshery.layer5io.schema.json new file mode 100755 index 00000000..b607634a --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/meshconfig.meshery.layer5.io.meshery.layer5io.schema.json @@ -0,0 +1,264 @@ +{ + "properties": { + "certificate": { + "description": "Configuration for certificate management", + "properties": { + "certKeyBitSize": { + "description": "Sets the certificate key bit size for data plane certificates.", + "type": "integer" + }, + "ingressGateway": { + "description": "Configuration for the ingress gateway's certificate", + "properties": { + "secret": { + "description": "Secret reference to store the certificate in", + "properties": { + "name": { + "description": "Name of the secret", + "type": "string" + }, + "namespace": { + "description": "Namespace of the secret", + "type": "string" + } + }, + "required": [ + "name", + "namespace" + ], + "type": "object" + }, + "subjectAltNames": { + "description": "Subject Alternative Names secured by the certificate", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "validityDuration": { + "description": "Certificate validity duration, represented as a sequence of decimal numbers each with optional fraction and a unit suffix", + "type": "string" + } + }, + "required": [ + "subjectAltNames", + "validityDuration", + "secret" + ], + "type": "object" + }, + "serviceCertValidityDuration": { + "description": "Sets the service certificate validity duration, represented as a sequence of decimal numbers each with optional fraction and a unit suffix.", + "type": "string" + } + }, + "required": [ + "serviceCertValidityDuration", + "certKeyBitSize" + ], + "type": "object" + }, + "featureFlags": { + "description": "OSM feature flags", + "properties": { + "enableAsyncProxyServiceMapping": { + "type": "boolean" + }, + "enableEgressPolicy": { + "type": "boolean" + }, + "enableEnvoyActiveHealthChecks": { + "type": "boolean" + }, + "enableIngressBackendPolicy": { + "type": "boolean" + }, + "enableMulticlusterMode": { + "type": "boolean" + }, + "enableRetryPolicy": { + "type": "boolean" + }, + "enableSnapshotCacheMode": { + "type": "boolean" + }, + "enableWASMStats": { + "type": "boolean" + } + }, + "type": "object" + }, + "observability": { + "description": "Configuration for observing the service mesh, including metrics, logs, tracing etc,.", + "properties": { + "enableDebugServer": { + "description": "Enables a debug endpoint on the osm-controller pod to list information regarding the mesh such as proxy connections, certificates, and SMI policies.", + "type": "boolean" + }, + "osmLogLevel": { + "description": "Allows setting OSM control plane log level at runtime", + "type": "string" + }, + "tracing": { + "description": "Configuration for distributed tracing", + "properties": { + "address": { + "description": "Address of Jaeger tracing deployment, if tracing is enabled.", + "type": "string" + }, + "enable": { + "description": "Enables Jaeger tracing for the mesh.", + "type": "boolean" + }, + "endpoint": { + "description": "Endpoint for tracing data, if tracing is enabled.", + "type": "string" + }, + "port": { + "description": "Port on which tracing is enabled.", + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "sidecar": { + "description": "Configuration for Envoy sidecar", + "properties": { + "configResyncInterval": { + "description": "Resync interval for regular proxy broadcast updates", + "type": "string" + }, + "enablePrivilegedInitContainer": { + "description": "Enables privileged init containers for pods in mesh. When false, init containers only have NET_ADMIN.", + "type": "boolean" + }, + "envoyImage": { + "description": "Image for the Envoy sidecar", + "type": "string" + }, + "envoyWindowsImage": { + "description": "Image for the Envoy sidecar on Windows workers", + "type": "string" + }, + "initContainerImage": { + "description": "Image for the init container", + "type": "string" + }, + "logLevel": { + "description": "Sets the logging verbosity of Envoy proxy sidecar, only applicable to newly created pods joining the mesh.", + "enum": [ + "trace", + "debug", + "info", + "warning", + "warn", + "error", + "critical", + "off" + ], + "type": "string" + }, + "maxDataPlaneConnections": { + "description": "Max allowed data plane sidecar connections", + "type": "integer" + }, + "resources": { + "properties": { + "limits": { + "additionalProperties": true, + "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "type": "object" + }, + "requests": { + "additionalProperties": true, + "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "traffic": { + "description": "Configuration for traffic management", + "properties": { + "enableEgress": { + "description": "Enables egress in the mesh", + "type": "boolean" + }, + "enablePermissiveTrafficPolicyMode": { + "description": "True for allowing traffic to flow between client and service pods within the mesh without SMI traffic policies, i.e. no traffic policy enforcement in the mesh. If set to false, enables deny-all traffic policy in mesh i.e. an SMI Traffic Target is necessary for services to communicate.", + "type": "boolean" + }, + "inboundExternalAuthorization": { + "description": "Configures external authorization for inbound and ingress connections.", + "properties": { + "address": { + "description": "Target destination endpoint that will handle external authorization.", + "type": "string" + }, + "enable": { + "description": "Enables/disables the inbound external authorization policy if present.", + "type": "boolean" + }, + "failureModeAllow": { + "description": "Allows specifying if traffic should succeed or fail if the external authorization endpoint fails to respond.", + "type": "boolean" + }, + "port": { + "description": "Remote destination port for the external authorization endpoint.", + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "statPrefix": { + "default": "inboundExtAuthz", + "description": "String prefix for inbound external authorization related metrics.", + "type": "string" + }, + "timeout": { + "default": "1s", + "description": "Defines the timeout to consider for the remote endpoint to reply in time.", + "type": "string" + } + }, + "type": "object" + }, + "inboundPortExclusionList": { + "description": "Global list of ports to exclude from inbound traffic interception by the sidecar proxy.", + "items": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "type": "array" + }, + "outboundIPRangeExclusionList": { + "description": "Global list of IP address ranges to exclude from outbound traffic interception by the sidecar proxy.", + "items": { + "pattern": "((?:\\d{1,3}\\.){3}\\d{1,3})\\/(\\d{1,2})$", + "type": "string" + }, + "type": "array" + }, + "outboundPortExclusionList": { + "description": "Global list of ports to exclude from outbound traffic interception by the sidecar proxy.", + "items": { + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + } + }, + "title": "Mesh Config", + "type": "object" +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/meshconfig.meshery.layer5.io_definition.json b/templates/oam/workloads/v1.0.0-rc.4/meshconfig.meshery.layer5.io_definition.json new file mode 100755 index 00000000..6966c081 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/meshconfig.meshery.layer5.io_definition.json @@ -0,0 +1,20 @@ +{ + "kind": "WorkloadDefinition", + "apiVersion": "core.oam.dev/v1alpha1", + "metadata": { + "name": "MeshConfig", + "creationTimestamp": null + }, + "spec": { + "definitionRef": { + "name": "meshconfig.meshery.layer5.io" + }, + "metadata": { + "@type": "pattern.meshery.io/mesh/workload", + "k8sAPIVersion": "config.openservicemesh.io/v1alpha1", + "k8sKind": "MeshConfig", + "meshName": "OPEN_SERVICE_MESH", + "meshVersion": "v1.0.0-rc.4" + } + } +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/multiclusterservice.meshery.layer5.io.meshery.layer5io.schema.json b/templates/oam/workloads/v1.0.0-rc.4/multiclusterservice.meshery.layer5.io.meshery.layer5io.schema.json new file mode 100755 index 00000000..60d4f7dd --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/multiclusterservice.meshery.layer5.io.meshery.layer5io.schema.json @@ -0,0 +1,79 @@ +{ + "properties": { + "clusters": { + "description": "The clusters the service accounts are hosted on.", + "items": { + "properties": { + "address": { + "description": "a routable IP + port", + "pattern": "^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3}):[0-9]+$", + "type": "string" + }, + "certificate": { + "description": "mTLS certificates (optional)", + "type": "string" + }, + "name": { + "description": "Name of the remote cluster", + "type": "string" + }, + "priority": { + "description": "Priority of the remote cluster in locality based load balancing", + "minimum": 0, + "type": "integer" + }, + "weight": { + "default": 0, + "description": "Load balancing weight of the remote cluster", + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "address", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "ports": { + "description": "The list of ports that are exposed by this service.", + "items": { + "properties": { + "port": { + "description": "The port that will be exposed by this service.", + "maximum": 65535, + "minimum": 1, + "type": "integer" + }, + "protocol": { + "default": "TCP", + "description": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", + "enum": [ + "TCP", + "UDP", + "SCTP" + ], + "type": "string" + } + }, + "required": [ + "port", + "protocol" + ], + "type": "object" + }, + "type": "array" + }, + "serviceAccount": { + "type": "string" + } + }, + "required": [ + "serviceAccount", + "clusters" + ], + "title": "Multi Cluster Service", + "type": "object" +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/multiclusterservice.meshery.layer5.io_definition.json b/templates/oam/workloads/v1.0.0-rc.4/multiclusterservice.meshery.layer5.io_definition.json new file mode 100755 index 00000000..68f130f0 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/multiclusterservice.meshery.layer5.io_definition.json @@ -0,0 +1,20 @@ +{ + "kind": "WorkloadDefinition", + "apiVersion": "core.oam.dev/v1alpha1", + "metadata": { + "name": "MultiClusterService", + "creationTimestamp": null + }, + "spec": { + "definitionRef": { + "name": "multiclusterservice.meshery.layer5.io" + }, + "metadata": { + "@type": "pattern.meshery.io/mesh/workload", + "k8sAPIVersion": "config.openservicemesh.io/v1alpha1", + "k8sKind": "MultiClusterService", + "meshName": "OPEN_SERVICE_MESH", + "meshVersion": "v1.0.0-rc.4" + } + } +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/tcproute.meshery.layer5.io.meshery.layer5io.schema.json b/templates/oam/workloads/v1.0.0-rc.4/tcproute.meshery.layer5.io.meshery.layer5io.schema.json new file mode 100755 index 00000000..d0cc9bfe --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/tcproute.meshery.layer5.io.meshery.layer5io.schema.json @@ -0,0 +1,25 @@ +{ + "properties": { + "matches": { + "description": "Match conditions of this route.", + "properties": { + "ports": { + "description": "Port numbers to match TCP traffic.", + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "required": [ + "ports" + ], + "type": "object" + } + }, + "required": [ + "matches" + ], + "title": "TCP Route", + "type": "object" +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/tcproute.meshery.layer5.io_definition.json b/templates/oam/workloads/v1.0.0-rc.4/tcproute.meshery.layer5.io_definition.json new file mode 100755 index 00000000..bfcc26af --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/tcproute.meshery.layer5.io_definition.json @@ -0,0 +1,20 @@ +{ + "kind": "WorkloadDefinition", + "apiVersion": "core.oam.dev/v1alpha1", + "metadata": { + "name": "TCPRoute", + "creationTimestamp": null + }, + "spec": { + "definitionRef": { + "name": "tcproute.meshery.layer5.io" + }, + "metadata": { + "@type": "pattern.meshery.io/mesh/workload", + "k8sAPIVersion": "specs.smi-spec.io/v1alpha4", + "k8sKind": "TCPRoute", + "meshName": "OPEN_SERVICE_MESH", + "meshVersion": "v1.0.0-rc.4" + } + } +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/trafficsplit.meshery.layer5.io.meshery.layer5io.schema.json b/templates/oam/workloads/v1.0.0-rc.4/trafficsplit.meshery.layer5.io.meshery.layer5io.schema.json new file mode 100755 index 00000000..13f0a9a2 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/trafficsplit.meshery.layer5.io.meshery.layer5io.schema.json @@ -0,0 +1,59 @@ +{ + "properties": { + "backends": { + "description": "The backend services of this split.", + "items": { + "properties": { + "service": { + "description": "Name of the Kubernetes service.", + "type": "string" + }, + "weight": { + "description": "Traffic weight value of this backend.", + "type": "number" + } + }, + "required": [ + "service", + "weight" + ], + "type": "object" + }, + "type": "array" + }, + "matches": { + "description": "The HTTP route groups that this traffic split should match.", + "items": { + "properties": { + "kind": { + "description": "Kind of the matching group.", + "enum": [ + "HTTPRouteGroup" + ], + "type": "string" + }, + "name": { + "description": "Name of the matching group.", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "service": { + "description": "The apex service of this split.", + "type": "string" + } + }, + "required": [ + "service", + "backends" + ], + "title": "Traffic Split", + "type": "object" +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/trafficsplit.meshery.layer5.io_definition.json b/templates/oam/workloads/v1.0.0-rc.4/trafficsplit.meshery.layer5.io_definition.json new file mode 100755 index 00000000..e7a2d569 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/trafficsplit.meshery.layer5.io_definition.json @@ -0,0 +1,20 @@ +{ + "kind": "WorkloadDefinition", + "apiVersion": "core.oam.dev/v1alpha1", + "metadata": { + "name": "TrafficSplit", + "creationTimestamp": null + }, + "spec": { + "definitionRef": { + "name": "trafficsplit.meshery.layer5.io" + }, + "metadata": { + "@type": "pattern.meshery.io/mesh/workload", + "k8sAPIVersion": "split.smi-spec.io/v1alpha4", + "k8sKind": "TrafficSplit", + "meshName": "OPEN_SERVICE_MESH", + "meshVersion": "v1.0.0-rc.4" + } + } +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/traffictarget.meshery.layer5.io.meshery.layer5io.schema.json b/templates/oam/workloads/v1.0.0-rc.4/traffictarget.meshery.layer5.io.meshery.layer5io.schema.json new file mode 100755 index 00000000..83a24559 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/traffictarget.meshery.layer5.io.meshery.layer5io.schema.json @@ -0,0 +1,91 @@ +{ + "properties": { + "destination": { + "description": "The destination of this traffic target.", + "properties": { + "kind": { + "description": "Kind of the destination.", + "type": "string" + }, + "name": { + "description": "Name of the destination.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the destination.", + "type": "string" + } + }, + "required": [ + "name", + "kind" + ], + "type": "object" + }, + "rules": { + "description": "Specifications of this traffic target.", + "items": { + "properties": { + "kind": { + "description": "Kind of this spec.", + "enum": [ + "HTTPRouteGroup", + "TCPRoute", + "UDPRoute" + ], + "type": "string" + }, + "matches": { + "description": "Match conditions of this spec.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Name of this spec.", + "type": "string" + } + }, + "required": [ + "name", + "kind" + ], + "type": "object" + }, + "type": "array" + }, + "sources": { + "description": "Sources of this traffic target.", + "items": { + "properties": { + "kind": { + "description": "Kind of this source.", + "type": "string" + }, + "name": { + "description": "Name of this source.", + "type": "string" + }, + "namespace": { + "description": "Namespace of this source.", + "type": "string" + } + }, + "required": [ + "name", + "kind" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "destination", + "rules", + "sources" + ], + "title": "Traffic Target", + "type": "object" +} \ No newline at end of file diff --git a/templates/oam/workloads/v1.0.0-rc.4/traffictarget.meshery.layer5.io_definition.json b/templates/oam/workloads/v1.0.0-rc.4/traffictarget.meshery.layer5.io_definition.json new file mode 100755 index 00000000..5cf08142 --- /dev/null +++ b/templates/oam/workloads/v1.0.0-rc.4/traffictarget.meshery.layer5.io_definition.json @@ -0,0 +1,20 @@ +{ + "kind": "WorkloadDefinition", + "apiVersion": "core.oam.dev/v1alpha1", + "metadata": { + "name": "TrafficTarget", + "creationTimestamp": null + }, + "spec": { + "definitionRef": { + "name": "traffictarget.meshery.layer5.io" + }, + "metadata": { + "@type": "pattern.meshery.io/mesh/workload", + "k8sAPIVersion": "access.smi-spec.io/v1alpha3", + "k8sKind": "TrafficTarget", + "meshName": "OPEN_SERVICE_MESH", + "meshVersion": "v1.0.0-rc.4" + } + } +} \ No newline at end of file