diff --git a/config/services/kustomization.yaml b/config/services/kustomization.yaml new file mode 100644 index 0000000..ac88c18 --- /dev/null +++ b/config/services/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +components: + - networking.datumapis.com diff --git a/config/services/networking.datumapis.com/kustomization.yaml b/config/services/networking.datumapis.com/kustomization.yaml new file mode 100644 index 0000000..5b704eb --- /dev/null +++ b/config/services/networking.datumapis.com/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component + +resources: + - service.yaml + - serviceconfiguration.yaml diff --git a/config/services/networking.datumapis.com/service.yaml b/config/services/networking.datumapis.com/service.yaml new file mode 100644 index 0000000..236f7ee --- /dev/null +++ b/config/services/networking.datumapis.com/service.yaml @@ -0,0 +1,19 @@ +apiVersion: services.miloapis.com/v1alpha1 +kind: Service +metadata: + name: networking-datumapis-com + labels: + app.kubernetes.io/name: network-services-operator + app.kubernetes.io/managed-by: kustomize +spec: + serviceName: networking.datumapis.com + phase: Draft + displayName: Network Services + description: | + Managed HTTP/HTTPS edge proxy, routing, and traffic protection + for Datum Cloud workloads. Provides programmable ingress via + Gateway API HTTPRoute and WAF/rate-limit policies. Billed via + the networking.datumapis.com/gateway meter family. + owner: + producerProjectRef: + name: datum-cloud diff --git a/config/services/networking.datumapis.com/serviceconfiguration.yaml b/config/services/networking.datumapis.com/serviceconfiguration.yaml new file mode 100644 index 0000000..1bb70b3 --- /dev/null +++ b/config/services/networking.datumapis.com/serviceconfiguration.yaml @@ -0,0 +1,77 @@ +apiVersion: services.miloapis.com/v1alpha1 +kind: ServiceConfiguration +metadata: + name: networking-datumapis-com +spec: + phase: Draft + serviceRef: + name: networking-datumapis-com + monitoredResourceTypes: + - type: networking.datumapis.com/HTTPRoute + displayName: HTTP Route + description: | + A customer-defined HTTP routing configuration attached to a managed + Gateway. One HTTPRoute represents a single HTTP service surface on + the Datum Cloud edge. Usage events cover proxied request count, + egress bytes, ingress bytes, and active connection seconds. + gvk: + group: gateway.networking.k8s.io + kind: HTTPRoute + labels: + - name: region + description: Datum deployment region serving the requests. + - name: gateway + description: Name of the underlying Gateway resource. + - name: gateway_namespace + description: Namespace of the underlying Gateway resource. + - name: gateway_class + description: GatewayClass of the underlying Gateway. + - name: httproute_name + description: Name of the HTTPRoute that served the request. + - name: httproute_namespace + description: Namespace of the HTTPRoute that served the request. + meters: + - name: networking.datumapis.com/gateway/requests + displayName: HTTP Route Requests + description: HTTP requests proxied through the route. + measurement: + aggregation: Sum + unit: "{request}" + billing: + consumedUnit: "{request}" + pricingUnit: "{request}" + monitoredResourceTypes: + - networking.datumapis.com/HTTPRoute + - name: networking.datumapis.com/gateway/egress-bytes + displayName: HTTP Route Egress Bytes + description: Bytes sent downstream by the route. + measurement: + aggregation: Sum + unit: By + billing: + consumedUnit: By + pricingUnit: GiBy + monitoredResourceTypes: + - networking.datumapis.com/HTTPRoute + - name: networking.datumapis.com/gateway/ingress-bytes + displayName: HTTP Route Ingress Bytes + description: Bytes received from clients by the route. + measurement: + aggregation: Sum + unit: By + billing: + consumedUnit: By + pricingUnit: GiBy + monitoredResourceTypes: + - networking.datumapis.com/HTTPRoute + - name: networking.datumapis.com/gateway/connection-seconds + displayName: HTTP Route Connection Seconds + description: Seconds long-lived connections (e.g. WebSocket) are held open. + measurement: + aggregation: Sum + unit: s + billing: + consumedUnit: s + pricingUnit: h + monitoredResourceTypes: + - networking.datumapis.com/HTTPRoute