From 47a9e816b76c692999f7145f7a33de2de73f1be7 Mon Sep 17 00:00:00 2001 From: Roi Vazquez Date: Wed, 17 Jul 2024 11:40:05 +0200 Subject: [PATCH] Bump release --- Makefile | 2 +- bundle.Dockerfile | 3 +- .../saas-operator.clusterserviceversion.yaml | 2352 ++++++++++++++++- .../manifests/saas.3scale.net_apicasts.yaml | 1598 ++++++++++- .../manifests/saas.3scale.net_autossls.yaml | 623 ++++- .../manifests/saas.3scale.net_backends.yaml | 803 +++++- .../saas.3scale.net_corsproxies.yaml | 618 +++++ .../manifests/saas.3scale.net_echoapis.yaml | 768 +++++- .../saas.3scale.net_mappingservices.yaml | 618 +++++ bundle/manifests/saas.3scale.net_systems.yaml | 646 +++++ bundle/manifests/saas.3scale.net_zyncs.yaml | 646 +++++ bundle/metadata/annotations.yaml | 3 +- config/manager/kustomization.yaml | 2 +- .../saas-operator.clusterserviceversion.yaml | 2061 ++++++++++++++- pkg/version/version.go | 2 +- 15 files changed, 10608 insertions(+), 137 deletions(-) diff --git a/Makefile b/Makefile index 7f6c5956..96281dbe 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # To re-generate a bundle for another specific version without changing the standard setup, you can: # - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) # - use environment variables to overwrite this value (e.g export VERSION=0.0.2) -VERSION ?= 0.24.0 +VERSION ?= 0.25.0-alpha.6 # CHANNELS define the bundle channels used in the bundle. # Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable") # To re-generate a bundle for other specific channels without changing the standard setup, you can: diff --git a/bundle.Dockerfile b/bundle.Dockerfile index e44312a4..b80837a0 100644 --- a/bundle.Dockerfile +++ b/bundle.Dockerfile @@ -5,8 +5,7 @@ LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ LABEL operators.operatorframework.io.bundle.package.v1=saas-operator -LABEL operators.operatorframework.io.bundle.channels.v1=alpha,stable -LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha +LABEL operators.operatorframework.io.bundle.channels.v1=alpha LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.27.0 LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3 diff --git a/bundle/manifests/saas-operator.clusterserviceversion.yaml b/bundle/manifests/saas-operator.clusterserviceversion.yaml index 29db79ed..095a0b29 100644 --- a/bundle/manifests/saas-operator.clusterserviceversion.yaml +++ b/bundle/manifests/saas-operator.clusterserviceversion.yaml @@ -17,28 +17,149 @@ metadata: "logLevel": "debug", "threescalePortalEndpoint": "http://example.com" }, - "endpoint": { - "dns": [ - "production.gw.example.com", - "production.apicast.example.com" - ] - }, "image": { "tag": "v0.1.0" }, - "marin3r": { - "ports": [ - { - "name": "gateway-http", - "port": 38080 - }, + "publishingStrategies": { + "endpoints": [ { - "name": "gateway-https", - "port": 38443 + "marin3rSidecar": { + "dynamicConfigs": { + "gateway_cluster": { + "cluster": { + "host": "127.0.0.1", + "port": 8080 + } + }, + "http": { + "listenerHttp": { + "port": 38080, + "rateLimitOptions": { + "domain": "apicast_production", + "rateLimitCluster": "limitador_cluster", + "timeout": "10ms" + }, + "routeConfigName": "router" + } + }, + "https": { + "listenerHttp": { + "certificateSecretName": "stg-saas-wildcard-apicast-production", + "port": 38443, + "rateLimitOptions": { + "domain": "apicast_production", + "rateLimitCluster": "limitador_cluster", + "timeout": "10ms" + }, + "routeConfigName": "router" + } + }, + "limitador_cluster": { + "cluster": { + "host": "limitador-cluster.limitador.svc.cluster.local", + "isHttp2": true, + "port": 8081 + } + }, + "router": { + "routeConfiguration": { + "virtualHosts": [ + { + "domains": [ + "*" + ], + "name": "gateway", + "rate_limits": [ + { + "actions": [ + { + "request_headers": { + "descriptor_key": "per_hostname_per_second_burst", + "header_name": ":authority" + } + } + ] + }, + { + "actions": [ + { + "request_headers": { + "descriptor_key": "per_hostname_daily_total", + "header_name": ":authority" + } + } + ] + } + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "gateway_cluster", + "timeout": "30s" + } + } + ] + } + ] + } + }, + "runtime": { + "runtime": { + "listenerNames": [ + "http", + "https" + ] + } + } + }, + "externalDnsHostnames": [ + "production.gw.example.com", + "production.apicast.example.com" + ], + "ports": [ + { + "name": "gateway-http", + "port": 38080 + }, + { + "name": "gateway-https", + "port": 38443 + }, + { + "name": "envoy-metrics", + "port": 9901 + } + ], + "servicePorts": [ + { + "name": "gateway-http", + "port": 80, + "targetPort": "gateway-http" + }, + { + "name": "gateway-https", + "port": 443, + "targetPort": "gateway-https" + } + ], + "serviceType": "ELB", + "shtdnmgrExtraLifecycleHooks": [ + "apicast" + ], + "shtdnmgrPort": 8091 + }, + "name": "Gateway", + "strategy": "Marin3rSidecar" }, { - "name": "envoy-metrics", - "port": 9901 + "name": "Management", + "simple": { + "serviceType": "ClusterIP" + }, + "strategy": "Simple" } ] } @@ -49,30 +170,160 @@ metadata: "logLevel": "debug", "threescalePortalEndpoint": "http://example.com" }, - "endpoint": { - "dns": [ - "staging.gw.example.com", - "staging.apicast.example.com" - ] - }, "image": { "tag": "v0.1.0" }, - "marin3r": { - "ports": [ + "publishingStrategies": { + "endpoints": [ { - "name": "gateway-http", - "port": 38080 + "name": "Gateway", + "simple": { + "serviceName": "apicast-staging", + "serviceType": "NLB" + }, + "strategy": "Simple" }, { - "name": "gateway-https", - "port": 38443 + "marin3rSidecar": { + "dynamicConfigs": { + "gateway_cluster": { + "cluster": { + "host": "127.0.0.1", + "port": 8080 + } + }, + "http": { + "listenerHttp": { + "port": 38080, + "rateLimitOptions": { + "domain": "apicast_staging", + "rateLimitCluster": "limitador_cluster", + "timeout": "10ms" + }, + "routeConfigName": "router" + } + }, + "https": { + "listenerHttp": { + "certificateSecretName": "stg-saas-wildcard-apicast-staging", + "port": 38443, + "rateLimitOptions": { + "domain": "apicast_staging", + "rateLimitCluster": "limitador_cluster", + "timeout": "10ms" + }, + "routeConfigName": "router" + } + }, + "limitador_cluster": { + "cluster": { + "host": "limitador-cluster.limitador.svc.cluster.local", + "isHttp2": true, + "port": 8081 + } + }, + "router": { + "routeConfiguration": { + "virtualHosts": [ + { + "domains": [ + "*" + ], + "name": "gateway", + "rate_limits": [ + { + "actions": [ + { + "request_headers": { + "descriptor_key": "per_hostname_per_second_burst", + "header_name": ":authority" + } + } + ] + }, + { + "actions": [ + { + "request_headers": { + "descriptor_key": "per_hostname_daily_total", + "header_name": ":authority" + } + } + ] + } + ], + "routes": [ + { + "match": { + "prefix": "/" + }, + "route": { + "cluster": "gateway_cluster", + "timeout": "30s" + } + } + ] + } + ] + } + }, + "runtime": { + "runtime": { + "listenerNames": [ + "http", + "https" + ] + } + } + }, + "externalDnsHostnames": [ + "staging.gw.example.com", + "staging.apicast.example.com" + ], + "ports": [ + { + "name": "gateway-http", + "port": 38080 + }, + { + "name": "gateway-https", + "port": 38443 + }, + { + "name": "envoy-metrics", + "port": 9901 + } + ], + "servicePorts": [ + { + "name": "gateway-http", + "port": 80, + "targetPort": "gateway-http" + }, + { + "name": "gateway-https", + "port": 443, + "targetPort": "gateway-https" + } + ], + "serviceType": "ELB", + "shtdnmgrExtraLifecycleHooks": [ + "apicast" + ], + "shtdnmgrPort": 8091 + }, + "name": "Gateway", + "strategy": "Marin3rSidecar" }, { - "name": "envoy-metrics", - "port": 9901 + "name": "Management", + "simple": { + "serviceType": "ClusterIP" + }, + "strategy": "Simple" } - ] + ], + "mode": "Replace" } } } @@ -598,7 +849,7 @@ metadata: capabilities: Basic Install categories: Integration & Delivery containerImage: quay.io/3scale/saas-operator - createdAt: "2024-05-27T10:04:35Z" + createdAt: "2024-07-17T09:39:42Z" description: |- The 3scale SaaS Operator creates and maintains a SaaS-ready deployment of the Red Hat 3scale API Management on OpenShift. @@ -606,7 +857,7 @@ metadata: operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 repository: https://github.com/3scale-ops/saas-operator support: Red Hat - name: saas-operator.v0.24.0 + name: saas-operator.v0.25.0-alpha.6 namespace: placeholder spec: apiservicedefinitions: {} @@ -664,7 +915,7 @@ spec: - description: Endpoint to request proxy configurations to displayName: Threescale Portal Endpoint path: production.config.threescalePortalEndpoint - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: production.endpoint - description: The list of dns records that will point to the component @@ -728,7 +979,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: production.livenessProbe.timeoutSeconds - - description: Configures the AWS load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: production.loadBalancer - description: Enables/disables connection draining @@ -755,7 +1006,7 @@ spec: - description: Enables/disbles use of proxy protocol in the load balancer displayName: Proxy Protocol path: production.loadBalancer.proxyProtocol - - description: Marin3r configures the Marin3r sidecars for the component + - description: Marin3r configures the Marin3r sidecars for the component DEPRECATED displayName: Marin3r path: production.marin3r - description: Envoy dynamic configuration. Populating this field causes the @@ -763,6 +1014,33 @@ spec: in the cluster. displayName: Envoy Dynamic Config path: production.marin3r.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: production.marin3r.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: production.marin3r.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: production.marin3r.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.marin3r.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: production.marin3r.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: production.marin3r.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: production.marin3r.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: production.marin3r.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.marin3r.elasticLoadBalancerConfig.proxyProtocol - description: The Envoy API version to use displayName: Envoy APIVersion path: production.marin3r.envoyAPIVersion @@ -773,6 +1051,24 @@ spec: container. displayName: Extra Pod Annotations path: production.marin3r.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: production.marin3r.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.marin3r.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: production.marin3r.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: production.marin3r.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: production.marin3r.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.marin3r.networkLoadBalancerConfig.proxyProtocol - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService displayName: Node ID path: production.marin3r.nodeID @@ -785,7 +1081,7 @@ spec: - description: Port value displayName: Port path: production.marin3r.ports[0].port - - description: Compute Resources required by this container. + - description: Compute Resources required by the sidecar container. displayName: Resources path: production.marin3r.resources - description: 'Limits describes the maximum amount of compute resources allowed. @@ -798,6 +1094,18 @@ spec: info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' displayName: Requests path: production.marin3r.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: production.marin3r.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: production.marin3r.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: production.marin3r.serviceType - description: Extra containers to sync with the shutdown manager upon pod termination displayName: Shutdown Manager Extra Lifecycle Hooks path: production.marin3r.shtdnmgrExtraLifecycleHooks @@ -819,6 +1127,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: production.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: production.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: production.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: production.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: production.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: production.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: production.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: production.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: production.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: production.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: production.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: production.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: production.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: production.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: production.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: production.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: production.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: production.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: production.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: production.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: production.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: production.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: production.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: production.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: production.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: production.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: production.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: production.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: production.readinessProbe @@ -894,7 +1395,7 @@ spec: - description: Endpoint to request proxy configurations to displayName: Threescale Portal Endpoint path: staging.config.threescalePortalEndpoint - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: staging.endpoint - description: The list of dns records that will point to the component @@ -958,7 +1459,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: staging.livenessProbe.timeoutSeconds - - description: Configures the AWS load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: staging.loadBalancer - description: Enables/disables connection draining @@ -985,7 +1486,7 @@ spec: - description: Enables/disbles use of proxy protocol in the load balancer displayName: Proxy Protocol path: staging.loadBalancer.proxyProtocol - - description: Marin3r configures the Marin3r sidecars for the component + - description: Marin3r configures the Marin3r sidecars for the component DEPRECATED displayName: Marin3r path: staging.marin3r - description: Envoy dynamic configuration. Populating this field causes the @@ -993,6 +1494,33 @@ spec: in the cluster. displayName: Envoy Dynamic Config path: staging.marin3r.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: staging.marin3r.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: staging.marin3r.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: staging.marin3r.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.marin3r.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: staging.marin3r.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: staging.marin3r.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: staging.marin3r.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: staging.marin3r.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.marin3r.elasticLoadBalancerConfig.proxyProtocol - description: The Envoy API version to use displayName: Envoy APIVersion path: staging.marin3r.envoyAPIVersion @@ -1003,6 +1531,24 @@ spec: container. displayName: Extra Pod Annotations path: staging.marin3r.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: staging.marin3r.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.marin3r.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: staging.marin3r.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: staging.marin3r.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: staging.marin3r.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.marin3r.networkLoadBalancerConfig.proxyProtocol - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService displayName: Node ID path: staging.marin3r.nodeID @@ -1015,7 +1561,7 @@ spec: - description: Port value displayName: Port path: staging.marin3r.ports[0].port - - description: Compute Resources required by this container. + - description: Compute Resources required by the sidecar container. displayName: Resources path: staging.marin3r.resources - description: 'Limits describes the maximum amount of compute resources allowed. @@ -1028,6 +1574,18 @@ spec: info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' displayName: Requests path: staging.marin3r.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: staging.marin3r.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: staging.marin3r.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: staging.marin3r.serviceType - description: Extra containers to sync with the shutdown manager upon pod termination displayName: Shutdown Manager Extra Lifecycle Hooks path: staging.marin3r.shtdnmgrExtraLifecycleHooks @@ -1049,6 +1607,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: staging.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: staging.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: staging.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: staging.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: staging.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: staging.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: staging.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: staging.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: staging.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: staging.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: staging.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: staging.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: staging.readinessProbe @@ -1143,7 +1894,7 @@ spec: for the domain displayName: Verification Endpoint path: config.verificationEndpoint - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: endpoint - description: The list of dns records that will point to the component @@ -1216,7 +1967,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: livenessProbe.timeoutSeconds - - description: Configures the AWS load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: loadBalancer - description: Enables/disables connection draining @@ -1258,18 +2009,211 @@ spec: evictions by specifying "100%". displayName: Min Available path: pdb.minAvailable - - description: Readiness probe for the component - displayName: Readiness Probe - path: readinessProbe - - description: Minimum consecutive failures for the probe to be considered failed - after having succeeded - displayName: Failure Threshold - path: readinessProbe.failureThreshold - - description: Number of seconds after the container has started before liveness - probes are initiated - displayName: Initial Delay Seconds - path: readinessProbe.initialDelaySeconds - - description: How often (in seconds) to perform the probe + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: publishingStrategies.mode + - description: Readiness probe for the component + displayName: Readiness Probe + path: readinessProbe + - description: Minimum consecutive failures for the probe to be considered failed + after having succeeded + displayName: Failure Threshold + path: readinessProbe.failureThreshold + - description: Number of seconds after the container has started before liveness + probes are initiated + displayName: Initial Delay Seconds + path: readinessProbe.initialDelaySeconds + - description: How often (in seconds) to perform the probe displayName: Period Seconds path: readinessProbe.periodSeconds - description: Minimum consecutive successes for the probe to be considered @@ -1545,7 +2489,7 @@ spec: - description: Enable (true) or disable (false) listener redis async mode displayName: Redis Async path: listener.config.redisAsync - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: listener.endpoint - description: The list of dns records that will point to the component @@ -1593,7 +2537,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: listener.livenessProbe.timeoutSeconds - - description: Configures the AWS Network load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: listener.loadBalancer - description: Enables/disables cross zone load balancing @@ -1611,7 +2555,7 @@ spec: - description: Enables/disbles use of proxy protocol in the load balancer displayName: Proxy Protocol path: listener.loadBalancer.proxyProtocol - - description: Marin3r configures the Marin3r sidecars for the component + - description: Marin3r configures the Marin3r sidecars for the component DEPRECATED displayName: Marin3r path: listener.marin3r - description: Envoy dynamic configuration. Populating this field causes the @@ -1619,6 +2563,33 @@ spec: in the cluster. displayName: Envoy Dynamic Config path: listener.marin3r.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: listener.marin3r.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: listener.marin3r.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: listener.marin3r.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.marin3r.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: listener.marin3r.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: listener.marin3r.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: listener.marin3r.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: listener.marin3r.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.marin3r.elasticLoadBalancerConfig.proxyProtocol - description: The Envoy API version to use displayName: Envoy APIVersion path: listener.marin3r.envoyAPIVersion @@ -1629,6 +2600,24 @@ spec: container. displayName: Extra Pod Annotations path: listener.marin3r.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: listener.marin3r.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.marin3r.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: listener.marin3r.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: listener.marin3r.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: listener.marin3r.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.marin3r.networkLoadBalancerConfig.proxyProtocol - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService displayName: Node ID path: listener.marin3r.nodeID @@ -1641,7 +2630,7 @@ spec: - description: Port value displayName: Port path: listener.marin3r.ports[0].port - - description: Compute Resources required by this container. + - description: Compute Resources required by the sidecar container. displayName: Resources path: listener.marin3r.resources - description: 'Limits describes the maximum amount of compute resources allowed. @@ -1654,6 +2643,18 @@ spec: info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' displayName: Requests path: listener.marin3r.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: listener.marin3r.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: listener.marin3r.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: listener.marin3r.serviceType - description: Extra containers to sync with the shutdown manager upon pod termination displayName: Shutdown Manager Extra Lifecycle Hooks path: listener.marin3r.shtdnmgrExtraLifecycleHooks @@ -1678,6 +2679,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: listener.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: listener.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: listener.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: listener.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: listener.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: listener.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: listener.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: listener.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: listener.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: listener.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: listener.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: listener.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: listener.readinessProbe @@ -2069,6 +3263,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: readinessProbe @@ -2112,7 +3499,7 @@ spec: kind: EchoAPI name: echoapis.saas.3scale.net specDescriptors: - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: endpoint - description: The list of dns records that will point to the component @@ -2176,7 +3563,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: livenessProbe.timeoutSeconds - - description: Configures the AWS Network load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: loadBalancer - description: Enables/disables cross zone load balancing @@ -2194,7 +3581,7 @@ spec: - description: Enables/disbles use of proxy protocol in the load balancer displayName: Proxy Protocol path: loadBalancer.proxyProtocol - - description: Marin3r configures the Marin3r sidecars for the component + - description: Marin3r configures the Marin3r sidecars for the component DEPRECATED displayName: Marin3r path: marin3r - description: Envoy dynamic configuration. Populating this field causes the @@ -2202,6 +3589,33 @@ spec: in the cluster. displayName: Envoy Dynamic Config path: marin3r.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: marin3r.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: marin3r.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: marin3r.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: marin3r.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: marin3r.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: marin3r.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: marin3r.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: marin3r.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: marin3r.elasticLoadBalancerConfig.proxyProtocol - description: The Envoy API version to use displayName: Envoy APIVersion path: marin3r.envoyAPIVersion @@ -2212,6 +3626,24 @@ spec: container. displayName: Extra Pod Annotations path: marin3r.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: marin3r.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: marin3r.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: marin3r.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: marin3r.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: marin3r.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: marin3r.networkLoadBalancerConfig.proxyProtocol - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService displayName: Node ID path: marin3r.nodeID @@ -2224,7 +3656,7 @@ spec: - description: Port value displayName: Port path: marin3r.ports[0].port - - description: Compute Resources required by this container. + - description: Compute Resources required by the sidecar container. displayName: Resources path: marin3r.resources - description: 'Limits describes the maximum amount of compute resources allowed. @@ -2237,6 +3669,18 @@ spec: info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' displayName: Requests path: marin3r.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: marin3r.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: marin3r.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: marin3r.serviceType - description: Extra containers to sync with the shutdown manager upon pod termination displayName: Shutdown Manager Extra Lifecycle Hooks path: marin3r.shtdnmgrExtraLifecycleHooks @@ -2258,6 +3702,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: readinessProbe @@ -2432,6 +4069,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: readinessProbe @@ -2792,6 +4622,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: app.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: app.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: app.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: app.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: app.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: app.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: app.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: app.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: app.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: app.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: app.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: app.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: app.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: app.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: app.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: app.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: app.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: app.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: app.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: app.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: app.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: app.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: app.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: app.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: app.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: app.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: app.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: app.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: app.readinessProbe @@ -2855,6 +4878,12 @@ spec: - description: Override allows to directly specify a string value. displayName: Override path: config.accessCode.override + - description: Apicast can be used to pass down apicast endpoints configuration + displayName: Apicast + path: config.apicast + - description: Assets has configuration to access assets in AWS s3 + displayName: Assets + path: config.assets - description: AWS access key displayName: Access Key path: config.assets.accessKey @@ -4247,6 +6276,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: api.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: api.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: api.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: api.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: api.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: api.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: api.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: api.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: api.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: api.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: api.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: api.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: api.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: api.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: api.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: api.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: api.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: api.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: api.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: api.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: api.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: api.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: api.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: api.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: api.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: api.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: api.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: api.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: api.readinessProbe @@ -4622,7 +6844,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.annotations['olm.targetNamespaces'] - image: quay.io/3scale/saas-operator:v0.24.0 + image: quay.io/3scale/saas-operator:v0.25.0-alpha.6 livenessProbe: httpGet: path: /healthz @@ -5186,4 +7408,4 @@ spec: provider: name: Red Hat url: https://www.3scale.net/ - version: 0.24.0 + version: 0.25.0-alpha.6 diff --git a/bundle/manifests/saas.3scale.net_apicasts.yaml b/bundle/manifests/saas.3scale.net_apicasts.yaml index 798b9b8f..54d10b8b 100644 --- a/bundle/manifests/saas.3scale.net_apicasts.yaml +++ b/bundle/manifests/saas.3scale.net_apicasts.yaml @@ -116,7 +116,7 @@ spec: - threescalePortalEndpoint type: object endpoint: - description: The external endpoint/s for the component + description: The external endpoint/s for the component DEPRECATED properties: dns: description: The list of dns records that will point to the @@ -325,6 +325,7 @@ spec: type: object loadBalancer: description: Configures the AWS load balancer for the component + DEPRECATED properties: connectionDrainingEnabled: description: Enables/disables connection draining @@ -359,6 +360,7 @@ spec: type: object marin3r: description: Marin3r configures the Marin3r sidecars for the component + DEPRECATED properties: dynamicConfigs: additionalProperties: @@ -519,6 +521,41 @@ spec: field causes the operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed in the cluster. type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the load + balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol in + the load balancer + type: boolean + type: object envoyAPIVersion: description: The Envoy API version to use enum: @@ -527,12 +564,41 @@ spec: envoyImage: description: The Envoy iamge to use type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames that + ExternalDNS should configure records for external consumners + to reach the service Only works with Services of type NLB/ELB + items: + type: string + type: array extraPodAnnotations: additionalProperties: type: string description: Extra annotations to pass the Pod to further configure the sidecar container. type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol in + the load balancer + type: boolean + type: object nodeID: description: The NodeID that identifies the Envoy sidecar to the DiscoveryService @@ -556,7 +622,7 @@ spec: type: object type: array resources: - description: Compute Resources required by this container. + description: Compute Resources required by the sidecar container. properties: claims: description: "Claims lists the names of resources, defined @@ -604,6 +670,88 @@ spec: More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object type: object + serviceName: + description: ServiceNameOverride allows the user to override + the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to override + the ports of a Service. It's a replace operation, so specify + all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this port. + This is used as a hint for implementations to offer + richer behavior for protocols that they understand. + This field follows standard Kubernetes label syntax. + Valid values are either: \n * Un-prefixed protocol + names - reserved for IANA standard service names (as + per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext as + described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as described + in https://www.rfc-editor.org/rfc/rfc6455 \n * Other + protocols should use implementation-defined prefixed + names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the service. + This must be a DNS_LABEL. All ports within a ServiceSpec + must have unique names. When considering the endpoints + for a Service, this must match the 'name' field in + the EndpointPort. Optional if only one ServicePort + is defined on this service. + type: string + nodePort: + description: 'The port on each node on which this service + is exposed when type is NodePort or LoadBalancer. Usually + assigned by the system. If a value is specified, in-range, + and not in use it will be used, otherwise the operation + will fail. If not specified, a port will be allocated + if this Service requires one. If this field is specified + when creating a Service which does not need it, creation + will fail. This field will be wiped when updating + a Service to no longer need it (e.g. changing type + from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access on + the pods targeted by the service. Number must be in + the range 1 to 65535. Name must be an IANA_SVC_NAME. + If this is a string, it will be looked up as a named + port in the target Pod''s container ports. If this + is not specified, the value of the ''port'' field + is used (an identity map). This field is ignored for + services with clusterIP=None, and should be omitted + or set equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service to + use for exposing the service to its consumers + type: string shtdnmgrExtraLifecycleHooks: description: Extra containers to sync with the shutdown manager upon pod termination @@ -846,6 +994,652 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller + that this is a new endpoint that should be added. + Default is false, causing the controller to error + when seeing an unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for + the Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for + an Envoy cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream + cluster is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the + version of a given template. "v1" is the + default. + type: string + listenerHttp: + description: ListenerHttp contains options + for an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http + 1.0 will be enabled and this will be + the default hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. + If unset no max connection duration + will be applied. + type: string + port: + description: The port where the listener + listens for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the + ratelimit filter of the HTTP connection + manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service + is unavailable + type: boolean + rateLimitCluster: + description: Location of the rate + limit service. Must point to one + of the defined clusters. + type: string + timeout: + description: Max time to wait for + a response from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using + directly the Envoy config API + properties: + type: + description: Type is the type url for + the protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. + WARNING: no validation of this field''s + value is performed before writting the + custom resource to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual + hosts must be specified using directly + Envoy's API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for + an Envoy runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to + apply overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to + further configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy + sidecar to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the + Marin3r sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field + and requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one + entry in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name + of one entry in pod.spec.resourceClaims + of the Pod where this field is used. + It makes that resource available inside + a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple + publishing strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing + strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if + the list of strategies should be merged with the defautls + or replace them entirely. Allowed values are "Merge" or + "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: @@ -969,7 +1763,6 @@ spec: type: array required: - config - - endpoint type: object staging: description: Configures the staging Apicast environment @@ -1041,7 +1834,7 @@ spec: - threescalePortalEndpoint type: object endpoint: - description: The external endpoint/s for the component + description: The external endpoint/s for the component DEPRECATED properties: dns: description: The list of dns records that will point to the @@ -1250,6 +2043,7 @@ spec: type: object loadBalancer: description: Configures the AWS load balancer for the component + DEPRECATED properties: connectionDrainingEnabled: description: Enables/disables connection draining @@ -1284,6 +2078,7 @@ spec: type: object marin3r: description: Marin3r configures the Marin3r sidecars for the component + DEPRECATED properties: dynamicConfigs: additionalProperties: @@ -1444,6 +2239,41 @@ spec: field causes the operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed in the cluster. type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the load + balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol in + the load balancer + type: boolean + type: object envoyAPIVersion: description: The Envoy API version to use enum: @@ -1452,12 +2282,41 @@ spec: envoyImage: description: The Envoy iamge to use type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames that + ExternalDNS should configure records for external consumners + to reach the service Only works with Services of type NLB/ELB + items: + type: string + type: array extraPodAnnotations: additionalProperties: type: string description: Extra annotations to pass the Pod to further configure the sidecar container. type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol in + the load balancer + type: boolean + type: object nodeID: description: The NodeID that identifies the Envoy sidecar to the DiscoveryService @@ -1481,7 +2340,7 @@ spec: type: object type: array resources: - description: Compute Resources required by this container. + description: Compute Resources required by the sidecar container. properties: claims: description: "Claims lists the names of resources, defined @@ -1529,6 +2388,88 @@ spec: More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object type: object + serviceName: + description: ServiceNameOverride allows the user to override + the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to override + the ports of a Service. It's a replace operation, so specify + all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this port. + This is used as a hint for implementations to offer + richer behavior for protocols that they understand. + This field follows standard Kubernetes label syntax. + Valid values are either: \n * Un-prefixed protocol + names - reserved for IANA standard service names (as + per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext as + described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as described + in https://www.rfc-editor.org/rfc/rfc6455 \n * Other + protocols should use implementation-defined prefixed + names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the service. + This must be a DNS_LABEL. All ports within a ServiceSpec + must have unique names. When considering the endpoints + for a Service, this must match the 'name' field in + the EndpointPort. Optional if only one ServicePort + is defined on this service. + type: string + nodePort: + description: 'The port on each node on which this service + is exposed when type is NodePort or LoadBalancer. Usually + assigned by the system. If a value is specified, in-range, + and not in use it will be used, otherwise the operation + will fail. If not specified, a port will be allocated + if this Service requires one. If this field is specified + when creating a Service which does not need it, creation + will fail. This field will be wiped when updating + a Service to no longer need it (e.g. changing type + from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access on + the pods targeted by the service. Number must be in + the range 1 to 65535. Name must be an IANA_SVC_NAME. + If this is a string, it will be looked up as a named + port in the target Pod''s container ports. If this + is not specified, the value of the ''port'' field + is used (an identity map). This field is ignored for + services with clusterIP=None, and should be omitted + or set equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service to + use for exposing the service to its consumers + type: string shtdnmgrExtraLifecycleHooks: description: Extra containers to sync with the shutdown manager upon pod termination @@ -1771,6 +2712,652 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller + that this is a new endpoint that should be added. + Default is false, causing the controller to error + when seeing an unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for + the Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for + an Envoy cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream + cluster is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the + version of a given template. "v1" is the + default. + type: string + listenerHttp: + description: ListenerHttp contains options + for an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http + 1.0 will be enabled and this will be + the default hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. + If unset no max connection duration + will be applied. + type: string + port: + description: The port where the listener + listens for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the + ratelimit filter of the HTTP connection + manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service + is unavailable + type: boolean + rateLimitCluster: + description: Location of the rate + limit service. Must point to one + of the defined clusters. + type: string + timeout: + description: Max time to wait for + a response from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using + directly the Envoy config API + properties: + type: + description: Type is the type url for + the protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. + WARNING: no validation of this field''s + value is performed before writting the + custom resource to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual + hosts must be specified using directly + Envoy's API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for + an Envoy runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to + apply overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to + further configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy + sidecar to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the + Marin3r sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field + and requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one + entry in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name + of one entry in pod.spec.resourceClaims + of the Pod where this field is used. + It makes that resource available inside + a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple + publishing strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing + strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if + the list of strategies should be merged with the defautls + or replace them entirely. Allowed values are "Merge" or + "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: @@ -1894,7 +3481,6 @@ spec: type: array required: - config - - endpoint type: object required: - production diff --git a/bundle/manifests/saas.3scale.net_autossls.yaml b/bundle/manifests/saas.3scale.net_autossls.yaml index 6f31dc05..2bb0a938 100644 --- a/bundle/manifests/saas.3scale.net_autossls.yaml +++ b/bundle/manifests/saas.3scale.net_autossls.yaml @@ -104,7 +104,7 @@ spec: - verificationEndpoint type: object endpoint: - description: The external endpoint/s for the component + description: The external endpoint/s for the component DEPRECATED properties: dns: description: The list of dns records that will point to the component @@ -319,7 +319,7 @@ spec: type: integer type: object loadBalancer: - description: Configures the AWS load balancer for the component + description: Configures the AWS load balancer for the component DEPRECATED properties: connectionDrainingEnabled: description: Enables/disables connection draining @@ -572,6 +572,624 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller that + this is a new endpoint that should be added. Default is + false, causing the controller to error when seeing an + unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for the + Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for an Envoy + cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream cluster + is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the version + of a given template. "v1" is the default. + type: string + listenerHttp: + description: ListenerHttp contains options for + an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http 1.0 + will be enabled and this will be the default + hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. If unset + no max connection duration will be applied. + type: string + port: + description: The port where the listener listens + for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the ratelimit + filter of the HTTP connection manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service is + unavailable + type: boolean + rateLimitCluster: + description: Location of the rate limit + service. Must point to one of the defined + clusters. + type: string + timeout: + description: Max time to wait for a response + from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using directly + the Envoy config API + properties: + type: + description: Type is the type url for the + protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. WARNING: + no validation of this field''s value is + performed before writting the custom resource + to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual hosts + must be specified using directly Envoy's + API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for an Envoy + runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to apply + overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the + load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the + load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for external + consumners to reach the service Only works with Services + of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to further + configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy sidecar + to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the Marin3r + sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field and + requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one entry + in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name of one + entry in pod.spec.resourceClaims of the + Pod where this field is used. It makes that + resource available inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user to + override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to + override the ports of a Service. It's a replace operation, + so specify all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this + port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are either: + \n * Un-prefixed protocol names - reserved for + IANA standard service names (as per RFC-6335 + and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as + described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type is NodePort or + LoadBalancer. Usually assigned by the system. + If a value is specified, in-range, and not in + use it will be used, otherwise the operation + will fail. If not specified, a port will be + allocated if this Service requires one. If + this field is specified when creating a Service + which does not need it, creation will fail. + This field will be wiped when updating a Service + to no longer need it (e.g. changing type from + NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service + to use for exposing the service to its consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple publishing + strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the + load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the + load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for external + consumners to reach the service Only works with Services + of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user to + override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to + override the ports of a Service. It's a replace operation, + so specify all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this + port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are either: + \n * Un-prefixed protocol names - reserved for + IANA standard service names (as per RFC-6335 + and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as + described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type is NodePort or + LoadBalancer. Usually assigned by the system. + If a value is specified, in-range, and not in + use it will be used, otherwise the operation + will fail. If not specified, a port will be + allocated if this Service requires one. If + this field is specified when creating a Service + which does not need it, creation will fail. + This field will be wiped when updating a Service + to no longer need it (e.g. changing type from + NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service + to use for exposing the service to its consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if the + list of strategies should be merged with the defautls or replace + them entirely. Allowed values are "Merge" or "Replace". "Replace" + strategy should be used to enable 2 strategies at the same time + for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: @@ -692,7 +1310,6 @@ spec: type: array required: - config - - endpoint type: object status: description: AutoSSLStatus defines the observed state of AutoSSL diff --git a/bundle/manifests/saas.3scale.net_backends.yaml b/bundle/manifests/saas.3scale.net_backends.yaml index d9cabdb4..baa44644 100644 --- a/bundle/manifests/saas.3scale.net_backends.yaml +++ b/bundle/manifests/saas.3scale.net_backends.yaml @@ -625,7 +625,7 @@ spec: type: boolean type: object endpoint: - description: The external endpoint/s for the component + description: The external endpoint/s for the component DEPRECATED properties: dns: description: The list of dns records that will point to the @@ -816,8 +816,8 @@ spec: type: integer type: object loadBalancer: - description: Configures the AWS Network load balancer for the - component + description: Configures the AWS load balancer for the component + DEPRECATED properties: crossZoneLoadBalancingEnabled: description: Enables/disables cross zone load balancing @@ -840,6 +840,7 @@ spec: type: object marin3r: description: Marin3r configures the Marin3r sidecars for the component + DEPRECATED properties: dynamicConfigs: additionalProperties: @@ -1000,6 +1001,41 @@ spec: field causes the operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed in the cluster. type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the load + balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol in + the load balancer + type: boolean + type: object envoyAPIVersion: description: The Envoy API version to use enum: @@ -1008,12 +1044,41 @@ spec: envoyImage: description: The Envoy iamge to use type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames that + ExternalDNS should configure records for external consumners + to reach the service Only works with Services of type NLB/ELB + items: + type: string + type: array extraPodAnnotations: additionalProperties: type: string description: Extra annotations to pass the Pod to further configure the sidecar container. type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol in + the load balancer + type: boolean + type: object nodeID: description: The NodeID that identifies the Envoy sidecar to the DiscoveryService @@ -1037,7 +1102,7 @@ spec: type: object type: array resources: - description: Compute Resources required by this container. + description: Compute Resources required by the sidecar container. properties: claims: description: "Claims lists the names of resources, defined @@ -1085,6 +1150,88 @@ spec: More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object type: object + serviceName: + description: ServiceNameOverride allows the user to override + the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to override + the ports of a Service. It's a replace operation, so specify + all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this port. + This is used as a hint for implementations to offer + richer behavior for protocols that they understand. + This field follows standard Kubernetes label syntax. + Valid values are either: \n * Un-prefixed protocol + names - reserved for IANA standard service names (as + per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext as + described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as described + in https://www.rfc-editor.org/rfc/rfc6455 \n * Other + protocols should use implementation-defined prefixed + names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the service. + This must be a DNS_LABEL. All ports within a ServiceSpec + must have unique names. When considering the endpoints + for a Service, this must match the 'name' field in + the EndpointPort. Optional if only one ServicePort + is defined on this service. + type: string + nodePort: + description: 'The port on each node on which this service + is exposed when type is NodePort or LoadBalancer. Usually + assigned by the system. If a value is specified, in-range, + and not in use it will be used, otherwise the operation + will fail. If not specified, a port will be allocated + if this Service requires one. If this field is specified + when creating a Service which does not need it, creation + will fail. This field will be wiped when updating + a Service to no longer need it (e.g. changing type + from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access on + the pods targeted by the service. Number must be in + the range 1 to 65535. Name must be an IANA_SVC_NAME. + If this is a string, it will be looked up as a named + port in the target Pod''s container ports. If this + is not specified, the value of the ''port'' field + is used (an identity map). This field is ignored for + services with clusterIP=None, and should be omitted + or set equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service to + use for exposing the service to its consumers + type: string shtdnmgrExtraLifecycleHooks: description: Extra containers to sync with the shutdown manager upon pod termination @@ -1327,6 +1474,652 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller + that this is a new endpoint that should be added. + Default is false, causing the controller to error + when seeing an unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for + the Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for + an Envoy cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream + cluster is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the + version of a given template. "v1" is the + default. + type: string + listenerHttp: + description: ListenerHttp contains options + for an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http + 1.0 will be enabled and this will be + the default hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. + If unset no max connection duration + will be applied. + type: string + port: + description: The port where the listener + listens for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the + ratelimit filter of the HTTP connection + manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service + is unavailable + type: boolean + rateLimitCluster: + description: Location of the rate + limit service. Must point to one + of the defined clusters. + type: string + timeout: + description: Max time to wait for + a response from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using + directly the Envoy config API + properties: + type: + description: Type is the type url for + the protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. + WARNING: no validation of this field''s + value is performed before writting the + custom resource to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual + hosts must be specified using directly + Envoy's API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for + an Envoy runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to + apply overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to + further configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy + sidecar to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the + Marin3r sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field + and requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one + entry in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name + of one entry in pod.spec.resourceClaims + of the Pod where this field is used. + It makes that resource available inside + a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple + publishing strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing + strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if + the list of strategies should be merged with the defautls + or replace them entirely. Allowed values are "Merge" or + "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: @@ -1448,8 +2241,6 @@ spec: type: string type: object type: array - required: - - endpoint type: object twemproxy: description: Configures twemproxy diff --git a/bundle/manifests/saas.3scale.net_corsproxies.yaml b/bundle/manifests/saas.3scale.net_corsproxies.yaml index d6ad032f..adfa2bac 100644 --- a/bundle/manifests/saas.3scale.net_corsproxies.yaml +++ b/bundle/manifests/saas.3scale.net_corsproxies.yaml @@ -509,6 +509,624 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller that + this is a new endpoint that should be added. Default is + false, causing the controller to error when seeing an + unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for the + Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for an Envoy + cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream cluster + is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the version + of a given template. "v1" is the default. + type: string + listenerHttp: + description: ListenerHttp contains options for + an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http 1.0 + will be enabled and this will be the default + hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. If unset + no max connection duration will be applied. + type: string + port: + description: The port where the listener listens + for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the ratelimit + filter of the HTTP connection manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service is + unavailable + type: boolean + rateLimitCluster: + description: Location of the rate limit + service. Must point to one of the defined + clusters. + type: string + timeout: + description: Max time to wait for a response + from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using directly + the Envoy config API + properties: + type: + description: Type is the type url for the + protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. WARNING: + no validation of this field''s value is + performed before writting the custom resource + to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual hosts + must be specified using directly Envoy's + API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for an Envoy + runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to apply + overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the + load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the + load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for external + consumners to reach the service Only works with Services + of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to further + configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy sidecar + to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the Marin3r + sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field and + requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one entry + in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name of one + entry in pod.spec.resourceClaims of the + Pod where this field is used. It makes that + resource available inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user to + override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to + override the ports of a Service. It's a replace operation, + so specify all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this + port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are either: + \n * Un-prefixed protocol names - reserved for + IANA standard service names (as per RFC-6335 + and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as + described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type is NodePort or + LoadBalancer. Usually assigned by the system. + If a value is specified, in-range, and not in + use it will be used, otherwise the operation + will fail. If not specified, a port will be + allocated if this Service requires one. If + this field is specified when creating a Service + which does not need it, creation will fail. + This field will be wiped when updating a Service + to no longer need it (e.g. changing type from + NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service + to use for exposing the service to its consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple publishing + strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the + load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the + load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for external + consumners to reach the service Only works with Services + of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user to + override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to + override the ports of a Service. It's a replace operation, + so specify all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this + port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are either: + \n * Un-prefixed protocol names - reserved for + IANA standard service names (as per RFC-6335 + and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as + described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type is NodePort or + LoadBalancer. Usually assigned by the system. + If a value is specified, in-range, and not in + use it will be used, otherwise the operation + will fail. If not specified, a port will be + allocated if this Service requires one. If + this field is specified when creating a Service + which does not need it, creation will fail. + This field will be wiped when updating a Service + to no longer need it (e.g. changing type from + NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service + to use for exposing the service to its consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if the + list of strategies should be merged with the defautls or replace + them entirely. Allowed values are "Merge" or "Replace". "Replace" + strategy should be used to enable 2 strategies at the same time + for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: diff --git a/bundle/manifests/saas.3scale.net_echoapis.yaml b/bundle/manifests/saas.3scale.net_echoapis.yaml index 06c10e33..bf46f5c2 100644 --- a/bundle/manifests/saas.3scale.net_echoapis.yaml +++ b/bundle/manifests/saas.3scale.net_echoapis.yaml @@ -35,7 +35,7 @@ spec: description: EchoAPISpec defines the desired state of echoapi properties: endpoint: - description: The external endpoint/s for the component + description: The external endpoint/s for the component DEPRECATED properties: dns: description: The list of dns records that will point to the component @@ -238,7 +238,7 @@ spec: type: integer type: object loadBalancer: - description: Configures the AWS Network load balancer for the component + description: Configures the AWS load balancer for the component DEPRECATED properties: crossZoneLoadBalancingEnabled: description: Enables/disables cross zone load balancing @@ -261,6 +261,7 @@ spec: type: object marin3r: description: Marin3r configures the Marin3r sidecars for the component + DEPRECATED properties: dynamicConfigs: additionalProperties: @@ -419,6 +420,40 @@ spec: causes the operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed in the cluster. type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol in the + load balancer + type: boolean + type: object envoyAPIVersion: description: The Envoy API version to use enum: @@ -427,12 +462,41 @@ spec: envoyImage: description: The Envoy iamge to use type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames that ExternalDNS + should configure records for external consumners to reach the + service Only works with Services of type NLB/ELB + items: + type: string + type: array extraPodAnnotations: additionalProperties: type: string description: Extra annotations to pass the Pod to further configure the sidecar container. type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol in the + load balancer + type: boolean + type: object nodeID: description: The NodeID that identifies the Envoy sidecar to the DiscoveryService @@ -456,7 +520,7 @@ spec: type: object type: array resources: - description: Compute Resources required by this container. + description: Compute Resources required by the sidecar container. properties: claims: description: "Claims lists the names of resources, defined @@ -502,6 +566,84 @@ spec: to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' type: object type: object + serviceName: + description: ServiceNameOverride allows the user to override the + generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to override + the ports of a Service. It's a replace operation, so specify + all the required ports. + items: + description: ServicePort contains information on service's port. + properties: + appProtocol: + description: "The application protocol for this port. This + is used as a hint for implementations to offer richer + behavior for protocols that they understand. This field + follows standard Kubernetes label syntax. Valid values + are either: \n * Un-prefixed protocol names - reserved + for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described in + https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext as described + in https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' + - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the service. This + must be a DNS_LABEL. All ports within a ServiceSpec must + have unique names. When considering the endpoints for + a Service, this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which this service + is exposed when type is NodePort or LoadBalancer. Usually + assigned by the system. If a value is specified, in-range, + and not in use it will be used, otherwise the operation + will fail. If not specified, a port will be allocated + if this Service requires one. If this field is specified + when creating a Service which does not need it, creation + will fail. This field will be wiped when updating a Service + to no longer need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports "TCP", + "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access on the + pods targeted by the service. Number must be in the range + 1 to 65535. Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named port in the + target Pod''s container ports. If this is not specified, + the value of the ''port'' field is used (an identity map). + This field is ignored for services with clusterIP=None, + and should be omitted or set equal to the ''port'' field. + More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service to use + for exposing the service to its consumers + type: string shtdnmgrExtraLifecycleHooks: description: Extra containers to sync with the shutdown manager upon pod termination @@ -734,6 +876,624 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller that + this is a new endpoint that should be added. Default is + false, causing the controller to error when seeing an + unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for the + Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for an Envoy + cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream cluster + is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the version + of a given template. "v1" is the default. + type: string + listenerHttp: + description: ListenerHttp contains options for + an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http 1.0 + will be enabled and this will be the default + hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. If unset + no max connection duration will be applied. + type: string + port: + description: The port where the listener listens + for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the ratelimit + filter of the HTTP connection manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service is + unavailable + type: boolean + rateLimitCluster: + description: Location of the rate limit + service. Must point to one of the defined + clusters. + type: string + timeout: + description: Max time to wait for a response + from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using directly + the Envoy config API + properties: + type: + description: Type is the type url for the + protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. WARNING: + no validation of this field''s value is + performed before writting the custom resource + to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual hosts + must be specified using directly Envoy's + API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for an Envoy + runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to apply + overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the + load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the + load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for external + consumners to reach the service Only works with Services + of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to further + configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy sidecar + to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the Marin3r + sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field and + requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one entry + in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name of one + entry in pod.spec.resourceClaims of the + Pod where this field is used. It makes that + resource available inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user to + override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to + override the ports of a Service. It's a replace operation, + so specify all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this + port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are either: + \n * Un-prefixed protocol names - reserved for + IANA standard service names (as per RFC-6335 + and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as + described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type is NodePort or + LoadBalancer. Usually assigned by the system. + If a value is specified, in-range, and not in + use it will be used, otherwise the operation + will fail. If not specified, a port will be + allocated if this Service requires one. If + this field is specified when creating a Service + which does not need it, creation will fail. + This field will be wiped when updating a Service + to no longer need it (e.g. changing type from + NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service + to use for exposing the service to its consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple publishing + strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the + load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the + load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for external + consumners to reach the service Only works with Services + of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user to + override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to + override the ports of a Service. It's a replace operation, + so specify all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this + port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are either: + \n * Un-prefixed protocol names - reserved for + IANA standard service names (as per RFC-6335 + and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as + described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type is NodePort or + LoadBalancer. Usually assigned by the system. + If a value is specified, in-range, and not in + use it will be used, otherwise the operation + will fail. If not specified, a port will be + allocated if this Service requires one. If + this field is specified when creating a Service + which does not need it, creation will fail. + This field will be wiped when updating a Service + to no longer need it (e.g. changing type from + NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service + to use for exposing the service to its consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if the + list of strategies should be merged with the defautls or replace + them entirely. Allowed values are "Merge" or "Replace". "Replace" + strategy should be used to enable 2 strategies at the same time + for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: @@ -851,8 +1611,6 @@ spec: type: string type: object type: array - required: - - endpoint type: object status: description: EchoAPIStatus defines the observed state of EchoAPI diff --git a/bundle/manifests/saas.3scale.net_mappingservices.yaml b/bundle/manifests/saas.3scale.net_mappingservices.yaml index 52710a22..2c8f5982 100644 --- a/bundle/manifests/saas.3scale.net_mappingservices.yaml +++ b/bundle/manifests/saas.3scale.net_mappingservices.yaml @@ -520,6 +520,624 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller that + this is a new endpoint that should be added. Default is + false, causing the controller to error when seeing an + unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for the + Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for an Envoy + cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream cluster + is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the version + of a given template. "v1" is the default. + type: string + listenerHttp: + description: ListenerHttp contains options for + an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http 1.0 + will be enabled and this will be the default + hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. If unset + no max connection duration will be applied. + type: string + port: + description: The port where the listener listens + for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the ratelimit + filter of the HTTP connection manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service is + unavailable + type: boolean + rateLimitCluster: + description: Location of the rate limit + service. Must point to one of the defined + clusters. + type: string + timeout: + description: Max time to wait for a response + from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using directly + the Envoy config API + properties: + type: + description: Type is the type url for the + protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. WARNING: + no validation of this field''s value is + performed before writting the custom resource + to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual hosts + must be specified using directly Envoy's + API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for an Envoy + runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to apply + overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the + load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the + load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for external + consumners to reach the service Only works with Services + of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to further + configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy sidecar + to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the Marin3r + sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field and + requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one entry + in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name of one + entry in pod.spec.resourceClaims of the + Pod where this field is used. It makes that + resource available inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user to + override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to + override the ports of a Service. It's a replace operation, + so specify all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this + port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are either: + \n * Un-prefixed protocol names - reserved for + IANA standard service names (as per RFC-6335 + and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as + described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type is NodePort or + LoadBalancer. Usually assigned by the system. + If a value is specified, in-range, and not in + use it will be used, otherwise the operation + will fail. If not specified, a port will be + allocated if this Service requires one. If + this field is specified when creating a Service + which does not need it, creation will fail. + This field will be wiped when updating a Service + to no longer need it (e.g. changing type from + NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service + to use for exposing the service to its consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple publishing + strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for the + load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for the + load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for external + consumners to reach the service Only works with Services + of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user to + override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user to + override the ports of a Service. It's a replace operation, + so specify all the required ports. + items: + description: ServicePort contains information on service's + port. + properties: + appProtocol: + description: "The application protocol for this + port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are either: + \n * Un-prefixed protocol names - reserved for + IANA standard service names (as per RFC-6335 + and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: * 'kubernetes.io/h2c' + - HTTP/2 prior knowledge over cleartext as described + in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS as + described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type is NodePort or + LoadBalancer. Usually assigned by the system. + If a value is specified, in-range, and not in + use it will be used, otherwise the operation + will fail. If not specified, a port will be + allocated if this Service requires one. If + this field is specified when creating a Service + which does not need it, creation will fail. + This field will be wiped when updating a Service + to no longer need it (e.g. changing type from + NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s Service + to use for exposing the service to its consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if the + list of strategies should be merged with the defautls or replace + them entirely. Allowed values are "Merge" or "Replace". "Replace" + strategy should be used to enable 2 strategies at the same time + for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: diff --git a/bundle/manifests/saas.3scale.net_systems.yaml b/bundle/manifests/saas.3scale.net_systems.yaml index f0595fe1..cd227de5 100644 --- a/bundle/manifests/saas.3scale.net_systems.yaml +++ b/bundle/manifests/saas.3scale.net_systems.yaml @@ -523,6 +523,652 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller + that this is a new endpoint that should be added. + Default is false, causing the controller to error + when seeing an unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for + the Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for + an Envoy cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream + cluster is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the + version of a given template. "v1" is the + default. + type: string + listenerHttp: + description: ListenerHttp contains options + for an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http + 1.0 will be enabled and this will be + the default hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. + If unset no max connection duration + will be applied. + type: string + port: + description: The port where the listener + listens for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the + ratelimit filter of the HTTP connection + manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service + is unavailable + type: boolean + rateLimitCluster: + description: Location of the rate + limit service. Must point to one + of the defined clusters. + type: string + timeout: + description: Max time to wait for + a response from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using + directly the Envoy config API + properties: + type: + description: Type is the type url for + the protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. + WARNING: no validation of this field''s + value is performed before writting the + custom resource to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual + hosts must be specified using directly + Envoy's API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for + an Envoy runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to + apply overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to + further configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy + sidecar to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the + Marin3r sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field + and requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one + entry in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name + of one entry in pod.spec.resourceClaims + of the Pod where this field is used. + It makes that resource available inside + a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple + publishing strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing + strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if + the list of strategies should be merged with the defautls + or replace them entirely. Allowed values are "Merge" or + "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: diff --git a/bundle/manifests/saas.3scale.net_zyncs.yaml b/bundle/manifests/saas.3scale.net_zyncs.yaml index 0132d5b5..205491ca 100644 --- a/bundle/manifests/saas.3scale.net_zyncs.yaml +++ b/bundle/manifests/saas.3scale.net_zyncs.yaml @@ -447,6 +447,652 @@ spec: "100%". x-kubernetes-int-or-string: true type: object + publishingStrategies: + description: Describes how the services provided by this workload + are exposed to its consumers + properties: + endpoints: + description: Endpoints holds the list of publishing strategies + for each workload endpoint. + items: + properties: + create: + description: Create explicitely tells the controller + that this is a new endpoint that should be added. + Default is false, causing the controller to error + when seeing an unknown endpoint. + type: boolean + marin3rSidecar: + description: Marin3rSidecar holds configuration for + the Marin3rSidecar publishing strategy + properties: + dynamicConfigs: + additionalProperties: + maxProperties: 2 + minProperties: 2 + properties: + cluster: + description: Cluster contains options for + an Envoy cluster protobuffer message + properties: + host: + description: The upstream host + type: string + isHttp2: + default: false + description: Specifies if the upstream + cluster is http2 or not (default). + type: boolean + port: + description: The upstream port + format: int32 + type: integer + required: + - host + - port + type: object + generatorVersion: + default: v1 + description: GeneratorVersion specifies the + version of a given template. "v1" is the + default. + type: string + listenerHttp: + description: ListenerHttp contains options + for an HTTP/HTTPS listener + properties: + allowHeadersWithUnderscores: + default: true + description: Allow headers with underscores + type: boolean + certificateSecretName: + description: The name of the Secret containing + a valid certificate. If unset the listener + will be http, if set https + type: string + defaultHostForHttp10: + description: If this filed is set, http + 1.0 will be enabled and this will be + the default hostname to use. + type: string + enableHttp2: + default: false + description: Enable http2 in the listener.Disabled + by default. + type: boolean + maxConnectionDuration: + description: Max connection duration. + If unset no max connection duration + will be applied. + type: string + port: + description: The port where the listener + listens for new connections + format: int32 + type: integer + proxyProtocol: + default: true + description: Whether proxy protocol should + be enabled or not. Defaults to true. + type: boolean + rateLimitOptions: + description: Rate limit options for the + ratelimit filter of the HTTP connection + manager + properties: + domain: + description: The rate limit domain + type: string + failureModeDeny: + default: false + description: Whether to allow requests + or not if the rate limit service + is unavailable + type: boolean + rateLimitCluster: + description: Location of the rate + limit service. Must point to one + of the defined clusters. + type: string + timeout: + description: Max time to wait for + a response from the rate limit service + format: duration + type: string + required: + - domain + - rateLimitCluster + - timeout + type: object + routeConfigName: + description: The name of the RouteConfiguration + to use in the listener + type: string + required: + - port + - routeConfigName + type: object + rawConfig: + description: RawConfig is a struct with methods + to manage a configuration defined using + directly the Envoy config API + properties: + type: + description: Type is the type url for + the protobuf message + enum: + - listener + - routeConfiguration + - cluster + - runtime + type: string + value: + description: 'Allows defining configuration + using directly envoy''s config API. + WARNING: no validation of this field''s + value is performed before writting the + custom resource to etcd.' + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - type + - value + type: object + routeConfiguration: + description: RouteConfiguration contains options + for an Envoy route_configuration protobuffer + message + properties: + virtualHosts: + description: The virtual_hosts definitions + for this route configuration. Virtual + hosts must be specified using directly + Envoy's API + items: + type: object + x-kubernetes-preserve-unknown-fields: true + type: array + required: + - virtualHosts + type: object + runtime: + description: Runtime contains options for + an Envoy runtime protobuffer message + properties: + listenerNames: + description: The list of listeners to + apply overload protection limits to + items: + type: string + type: array + required: + - listenerNames + type: object + type: object + description: Envoy dynamic configuration. Populating + this field causes the operator to create a Marin3r + EnvoyConfig resource, so Marin3r must be installed + in the cluster. + type: object + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + envoyAPIVersion: + description: The Envoy API version to use + enum: + - v3 + type: string + envoyImage: + description: The Envoy iamge to use + type: string + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + extraPodAnnotations: + additionalProperties: + type: string + description: Extra annotations to pass the Pod to + further configure the sidecar container. + type: object + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + nodeID: + description: The NodeID that identifies the Envoy + sidecar to the DiscoveryService + type: string + ports: + description: The ports that the sidecar exposes + items: + description: SidecarPort defines port for the + Marin3r sidecar container + properties: + name: + description: Port name + type: string + port: + description: Port value + format: int32 + type: integer + required: + - name + - port + type: object + type: array + resources: + description: Compute Resources required by the sidecar + container. + properties: + claims: + description: "Claims lists the names of resources, + defined in spec.resourceClaims, that are used + by this container. \n This is an alpha field + and requires enabling the DynamicResourceAllocation + feature gate. \n This field is immutable." + items: + description: ResourceClaim references one + entry in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name + of one entry in pod.spec.resourceClaims + of the Pod where this field is used. + It makes that resource available inside + a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: 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 + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + shtdnmgrExtraLifecycleHooks: + description: Extra containers to sync with the shutdown + manager upon pod termination + items: + type: string + type: array + shtdnmgrPort: + description: The port where Marin3r's shutdown manager + listens + format: int32 + type: integer + type: object + name: + description: EndpointName defines the endpoint affected + by this publishing strategy + type: string + simple: + description: Simple holds configuration for the Simple + publishing strategy + properties: + elasticLoadBalancerConfig: + description: Classic LB configuration + properties: + connectionDrainingEnabled: + description: Enables/disables connection draining + type: boolean + connectionDrainingTimeout: + description: Sets the timeout for connection + draining + format: int32 + type: integer + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + healthcheckHealthyThreshold: + description: Sets the healthy threshold for + the load balancer + format: int32 + type: integer + healthcheckInterval: + description: Sets the interval between health + checks + format: int32 + type: integer + healthcheckTimeout: + description: Sets the timeout for the health + check + format: int32 + type: integer + healthcheckUnhealthyThreshold: + description: Sets the unhealthy threshold for + the load balancer + format: int32 + type: integer + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + externalDnsHostnames: + description: ExternalDnsHostnames defines the hostnames + that ExternalDNS should configure records for + external consumners to reach the service Only + works with Services of type NLB/ELB + items: + type: string + type: array + networkLoadBalancerConfig: + description: NLB configuration + properties: + crossZoneLoadBalancingEnabled: + description: Enables/disables cross zone load + balancing + type: boolean + deletionProtection: + description: Deletion protection setting + type: boolean + eipAllocations: + description: The list of optional Elastic IPs + allocations + items: + type: string + type: array + loadBalancerName: + description: Optionally specify the load balancer + name + type: string + proxyProtocol: + description: Enables/disbles use of proxy protocol + in the load balancer + type: boolean + type: object + serviceName: + description: ServiceNameOverride allows the user + to override the generated Service name + type: string + servicePorts: + description: ServicePortsOverride allows the user + to override the ports of a Service. It's a replace + operation, so specify all the required ports. + items: + description: ServicePort contains information + on service's port. + properties: + appProtocol: + description: "The application protocol for + this port. This is used as a hint for implementations + to offer richer behavior for protocols that + they understand. This field follows standard + Kubernetes label syntax. Valid values are + either: \n * Un-prefixed protocol names + - reserved for IANA standard service names + (as per RFC-6335 and https://www.iana.org/assignments/service-names). + \n * Kubernetes-defined prefixed names: + * 'kubernetes.io/h2c' - HTTP/2 prior knowledge + over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- + * 'kubernetes.io/ws' - WebSocket over cleartext + as described in https://www.rfc-editor.org/rfc/rfc6455 + * 'kubernetes.io/wss' - WebSocket over TLS + as described in https://www.rfc-editor.org/rfc/rfc6455 + \n * Other protocols should use implementation-defined + prefixed names such as mycompany.com/my-custom-protocol." + type: string + name: + description: The name of this port within + the service. This must be a DNS_LABEL. All + ports within a ServiceSpec must have unique + names. When considering the endpoints for + a Service, this must match the 'name' field + in the EndpointPort. Optional if only one + ServicePort is defined on this service. + type: string + nodePort: + description: 'The port on each node on which + this service is exposed when type is NodePort + or LoadBalancer. Usually assigned by the + system. If a value is specified, in-range, + and not in use it will be used, otherwise + the operation will fail. If not specified, + a port will be allocated if this Service + requires one. If this field is specified + when creating a Service which does not need + it, creation will fail. This field will + be wiped when updating a Service to no longer + need it (e.g. changing type from NodePort + to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed + by this service. + format: int32 + type: integer + protocol: + default: TCP + description: The IP protocol for this port. + Supports "TCP", "UDP", and "SCTP". Default + is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to + access on the pods targeted by the service. + Number must be in the range 1 to 65535. + Name must be an IANA_SVC_NAME. If this is + a string, it will be looked up as a named + port in the target Pod''s container ports. + If this is not specified, the value of the + ''port'' field is used (an identity map). + This field is ignored for services with + clusterIP=None, and should be omitted or + set equal to the ''port'' field. More info: + https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + serviceType: + description: ServiceType defines the type of k8s + Service to use for exposing the service to its + consumers + type: string + type: object + strategy: + description: Strategy defines the type of publishing + strategy + type: string + required: + - name + - strategy + type: object + type: array + mode: + description: PublishingStrategiesReconcileMode specifies if + the list of strategies should be merged with the defautls + or replace them entirely. Allowed values are "Merge" or + "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + type: string + type: object readinessProbe: description: Readiness probe for the component properties: diff --git a/bundle/metadata/annotations.yaml b/bundle/metadata/annotations.yaml index 5d8597be..77fadbff 100644 --- a/bundle/metadata/annotations.yaml +++ b/bundle/metadata/annotations.yaml @@ -4,8 +4,7 @@ annotations: operators.operatorframework.io.bundle.manifests.v1: manifests/ operators.operatorframework.io.bundle.metadata.v1: metadata/ operators.operatorframework.io.bundle.package.v1: saas-operator - operators.operatorframework.io.bundle.channels.v1: alpha,stable - operators.operatorframework.io.bundle.channel.default.v1: alpha + operators.operatorframework.io.bundle.channels.v1: alpha operators.operatorframework.io.metrics.builder: operator-sdk-v1.27.0 operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index 20d7283e..2b806382 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -13,4 +13,4 @@ kind: Kustomization images: - name: controller newName: quay.io/3scale/saas-operator - newTag: v0.24.0 + newTag: v0.25.0-alpha.6 diff --git a/config/manifests/bases/saas-operator.clusterserviceversion.yaml b/config/manifests/bases/saas-operator.clusterserviceversion.yaml index de571f7d..c042fa20 100644 --- a/config/manifests/bases/saas-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/saas-operator.clusterserviceversion.yaml @@ -205,7 +205,7 @@ spec: - description: Endpoint to request proxy configurations to displayName: Threescale Portal Endpoint path: production.config.threescalePortalEndpoint - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: production.endpoint - description: The list of dns records that will point to the component @@ -269,7 +269,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: production.livenessProbe.timeoutSeconds - - description: Configures the AWS load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: production.loadBalancer - description: Enables/disables connection draining @@ -296,7 +296,7 @@ spec: - description: Enables/disbles use of proxy protocol in the load balancer displayName: Proxy Protocol path: production.loadBalancer.proxyProtocol - - description: Marin3r configures the Marin3r sidecars for the component + - description: Marin3r configures the Marin3r sidecars for the component DEPRECATED displayName: Marin3r path: production.marin3r - description: Envoy dynamic configuration. Populating this field causes the @@ -304,6 +304,33 @@ spec: in the cluster. displayName: Envoy Dynamic Config path: production.marin3r.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: production.marin3r.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: production.marin3r.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: production.marin3r.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.marin3r.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: production.marin3r.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: production.marin3r.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: production.marin3r.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: production.marin3r.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.marin3r.elasticLoadBalancerConfig.proxyProtocol - description: The Envoy API version to use displayName: Envoy APIVersion path: production.marin3r.envoyAPIVersion @@ -314,6 +341,24 @@ spec: container. displayName: Extra Pod Annotations path: production.marin3r.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: production.marin3r.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.marin3r.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: production.marin3r.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: production.marin3r.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: production.marin3r.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.marin3r.networkLoadBalancerConfig.proxyProtocol - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService displayName: Node ID path: production.marin3r.nodeID @@ -326,7 +371,7 @@ spec: - description: Port value displayName: Port path: production.marin3r.ports[0].port - - description: Compute Resources required by this container. + - description: Compute Resources required by the sidecar container. displayName: Resources path: production.marin3r.resources - description: 'Limits describes the maximum amount of compute resources allowed. @@ -339,6 +384,18 @@ spec: info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' displayName: Requests path: production.marin3r.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: production.marin3r.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: production.marin3r.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: production.marin3r.serviceType - description: Extra containers to sync with the shutdown manager upon pod termination displayName: Shutdown Manager Extra Lifecycle Hooks path: production.marin3r.shtdnmgrExtraLifecycleHooks @@ -360,6 +417,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: production.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: production.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: production.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: production.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: production.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: production.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: production.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: production.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: production.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: production.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: production.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: production.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: production.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: production.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: production.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: production.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: production.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: production.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: production.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: production.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: production.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: production.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: production.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: production.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: production.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: production.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: production.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: production.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: production.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: production.readinessProbe @@ -435,7 +685,7 @@ spec: - description: Endpoint to request proxy configurations to displayName: Threescale Portal Endpoint path: staging.config.threescalePortalEndpoint - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: staging.endpoint - description: The list of dns records that will point to the component @@ -499,7 +749,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: staging.livenessProbe.timeoutSeconds - - description: Configures the AWS load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: staging.loadBalancer - description: Enables/disables connection draining @@ -526,7 +776,7 @@ spec: - description: Enables/disbles use of proxy protocol in the load balancer displayName: Proxy Protocol path: staging.loadBalancer.proxyProtocol - - description: Marin3r configures the Marin3r sidecars for the component + - description: Marin3r configures the Marin3r sidecars for the component DEPRECATED displayName: Marin3r path: staging.marin3r - description: Envoy dynamic configuration. Populating this field causes the @@ -534,6 +784,33 @@ spec: in the cluster. displayName: Envoy Dynamic Config path: staging.marin3r.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: staging.marin3r.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: staging.marin3r.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: staging.marin3r.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.marin3r.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: staging.marin3r.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: staging.marin3r.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: staging.marin3r.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: staging.marin3r.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.marin3r.elasticLoadBalancerConfig.proxyProtocol - description: The Envoy API version to use displayName: Envoy APIVersion path: staging.marin3r.envoyAPIVersion @@ -544,6 +821,24 @@ spec: container. displayName: Extra Pod Annotations path: staging.marin3r.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: staging.marin3r.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.marin3r.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: staging.marin3r.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: staging.marin3r.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: staging.marin3r.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.marin3r.networkLoadBalancerConfig.proxyProtocol - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService displayName: Node ID path: staging.marin3r.nodeID @@ -556,7 +851,7 @@ spec: - description: Port value displayName: Port path: staging.marin3r.ports[0].port - - description: Compute Resources required by this container. + - description: Compute Resources required by the sidecar container. displayName: Resources path: staging.marin3r.resources - description: 'Limits describes the maximum amount of compute resources allowed. @@ -569,6 +864,18 @@ spec: info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' displayName: Requests path: staging.marin3r.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: staging.marin3r.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: staging.marin3r.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: staging.marin3r.serviceType - description: Extra containers to sync with the shutdown manager upon pod termination displayName: Shutdown Manager Extra Lifecycle Hooks path: staging.marin3r.shtdnmgrExtraLifecycleHooks @@ -590,6 +897,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: staging.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: staging.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: staging.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: staging.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: staging.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: staging.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: staging.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: staging.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: staging.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: staging.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: staging.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: staging.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: staging.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: staging.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: staging.readinessProbe @@ -684,7 +1184,7 @@ spec: for the domain displayName: Verification Endpoint path: config.verificationEndpoint - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: endpoint - description: The list of dns records that will point to the component @@ -757,7 +1257,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: livenessProbe.timeoutSeconds - - description: Configures the AWS load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: loadBalancer - description: Enables/disables connection draining @@ -799,6 +1299,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: readinessProbe @@ -1086,7 +1779,7 @@ spec: - description: Enable (true) or disable (false) listener redis async mode displayName: Redis Async path: listener.config.redisAsync - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: listener.endpoint - description: The list of dns records that will point to the component @@ -1134,7 +1827,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: listener.livenessProbe.timeoutSeconds - - description: Configures the AWS Network load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: listener.loadBalancer - description: Enables/disables cross zone load balancing @@ -1152,7 +1845,7 @@ spec: - description: Enables/disbles use of proxy protocol in the load balancer displayName: Proxy Protocol path: listener.loadBalancer.proxyProtocol - - description: Marin3r configures the Marin3r sidecars for the component + - description: Marin3r configures the Marin3r sidecars for the component DEPRECATED displayName: Marin3r path: listener.marin3r - description: Envoy dynamic configuration. Populating this field causes the @@ -1160,6 +1853,33 @@ spec: in the cluster. displayName: Envoy Dynamic Config path: listener.marin3r.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: listener.marin3r.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: listener.marin3r.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: listener.marin3r.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.marin3r.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: listener.marin3r.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: listener.marin3r.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: listener.marin3r.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: listener.marin3r.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.marin3r.elasticLoadBalancerConfig.proxyProtocol - description: The Envoy API version to use displayName: Envoy APIVersion path: listener.marin3r.envoyAPIVersion @@ -1170,55 +1890,278 @@ spec: container. displayName: Extra Pod Annotations path: listener.marin3r.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: listener.marin3r.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.marin3r.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: listener.marin3r.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: listener.marin3r.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: listener.marin3r.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.marin3r.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: listener.marin3r.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: listener.marin3r.ports + - description: Port name + displayName: Name + path: listener.marin3r.ports[0].name + - description: Port value + displayName: Port + path: listener.marin3r.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: listener.marin3r.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: listener.marin3r.resources.limits + - 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/' + displayName: Requests + path: listener.marin3r.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: listener.marin3r.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: listener.marin3r.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: listener.marin3r.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: listener.marin3r.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: listener.marin3r.shtdnmgrPort + - description: Describes node affinity scheduling rules for the pod. + displayName: Node Affinity + path: listener.nodeAffinity + - description: Pod Disruption Budget for the component + displayName: PDB + path: listener.pdb + - description: An eviction is allowed if at most "maxUnavailable" pods selected + by "selector" are unavailable after the eviction, i.e. even in absence of + the evicted pod. For example, one can prevent all voluntary evictions by + specifying 0. This is a mutually exclusive setting with "minAvailable". + displayName: Max Unavailable + path: listener.pdb.maxUnavailable + - description: An eviction is allowed if at least "minAvailable" pods selected + by "selector" will still be available after the eviction, i.e. even in the + absence of the evicted pod. So for example you can prevent all voluntary + evictions by specifying "100%". + displayName: Min Available + path: listener.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: listener.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: listener.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: listener.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: listener.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService displayName: Node ID - path: listener.marin3r.nodeID + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.nodeID - description: The ports that the sidecar exposes displayName: Ports - path: listener.marin3r.ports + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.ports - description: Port name displayName: Name - path: listener.marin3r.ports[0].name + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name - description: Port value displayName: Port - path: listener.marin3r.ports[0].port - - description: Compute Resources required by this container. + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. displayName: Resources - path: listener.marin3r.resources + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.resources - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' displayName: Limits - path: listener.marin3r.resources.limits + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits - 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/' displayName: Requests - path: listener.marin3r.resources.requests + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.serviceType - description: Extra containers to sync with the shutdown manager upon pod termination displayName: Shutdown Manager Extra Lifecycle Hooks - path: listener.marin3r.shtdnmgrExtraLifecycleHooks + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks - description: The port where Marin3r's shutdown manager listens displayName: Shutdown Manager Port - path: listener.marin3r.shtdnmgrPort - - description: Describes node affinity scheduling rules for the pod. - displayName: Node Affinity - path: listener.nodeAffinity - - description: Pod Disruption Budget for the component - displayName: PDB - path: listener.pdb - - description: An eviction is allowed if at most "maxUnavailable" pods selected - by "selector" are unavailable after the eviction, i.e. even in absence of - the evicted pod. For example, one can prevent all voluntary evictions by - specifying 0. This is a mutually exclusive setting with "minAvailable". - displayName: Max Unavailable - path: listener.pdb.maxUnavailable - - description: An eviction is allowed if at least "minAvailable" pods selected - by "selector" will still be available after the eviction, i.e. even in the - absence of the evicted pod. So for example you can prevent all voluntary - evictions by specifying "100%". - displayName: Min Available - path: listener.pdb.minAvailable + path: listener.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: listener.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: listener.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: listener.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: listener.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: listener.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: listener.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: listener.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: listener.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: listener.readinessProbe @@ -1610,6 +2553,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: readinessProbe @@ -1653,7 +2789,7 @@ spec: kind: EchoAPI name: echoapis.saas.3scale.net specDescriptors: - - description: The external endpoint/s for the component + - description: The external endpoint/s for the component DEPRECATED displayName: Endpoint path: endpoint - description: The list of dns records that will point to the component @@ -1717,7 +2853,7 @@ spec: - description: Number of seconds after which the probe times out displayName: Timeout Seconds path: livenessProbe.timeoutSeconds - - description: Configures the AWS Network load balancer for the component + - description: Configures the AWS load balancer for the component DEPRECATED displayName: Load Balancer path: loadBalancer - description: Enables/disables cross zone load balancing @@ -1735,7 +2871,7 @@ spec: - description: Enables/disbles use of proxy protocol in the load balancer displayName: Proxy Protocol path: loadBalancer.proxyProtocol - - description: Marin3r configures the Marin3r sidecars for the component + - description: Marin3r configures the Marin3r sidecars for the component DEPRECATED displayName: Marin3r path: marin3r - description: Envoy dynamic configuration. Populating this field causes the @@ -1743,6 +2879,33 @@ spec: in the cluster. displayName: Envoy Dynamic Config path: marin3r.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: marin3r.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: marin3r.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: marin3r.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: marin3r.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: marin3r.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: marin3r.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: marin3r.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: marin3r.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: marin3r.elasticLoadBalancerConfig.proxyProtocol - description: The Envoy API version to use displayName: Envoy APIVersion path: marin3r.envoyAPIVersion @@ -1753,6 +2916,24 @@ spec: container. displayName: Extra Pod Annotations path: marin3r.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: marin3r.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: marin3r.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: marin3r.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: marin3r.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: marin3r.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: marin3r.networkLoadBalancerConfig.proxyProtocol - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService displayName: Node ID path: marin3r.nodeID @@ -1765,7 +2946,7 @@ spec: - description: Port value displayName: Port path: marin3r.ports[0].port - - description: Compute Resources required by this container. + - description: Compute Resources required by the sidecar container. displayName: Resources path: marin3r.resources - description: 'Limits describes the maximum amount of compute resources allowed. @@ -1778,6 +2959,18 @@ spec: info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' displayName: Requests path: marin3r.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: marin3r.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: marin3r.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: marin3r.serviceType - description: Extra containers to sync with the shutdown manager upon pod termination displayName: Shutdown Manager Extra Lifecycle Hooks path: marin3r.shtdnmgrExtraLifecycleHooks @@ -1799,6 +2992,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: readinessProbe @@ -1973,6 +3359,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: readinessProbe @@ -2333,6 +3912,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: app.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: app.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: app.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: app.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: app.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: app.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: app.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: app.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: app.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: app.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: app.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: app.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: app.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: app.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: app.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: app.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: app.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: app.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: app.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: app.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: app.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: app.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: app.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: app.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: app.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: app.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: app.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: app.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: app.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: app.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: app.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: app.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: app.readinessProbe @@ -2396,6 +4168,12 @@ spec: - description: Override allows to directly specify a string value. displayName: Override path: config.accessCode.override + - description: Apicast can be used to pass down apicast endpoints configuration + displayName: Apicast + path: config.apicast + - description: Assets has configuration to access assets in AWS s3 + displayName: Assets + path: config.assets - description: AWS access key displayName: Access Key path: config.assets.accessKey @@ -3788,6 +5566,199 @@ spec: evictions by specifying "100%". displayName: Min Available path: api.pdb.minAvailable + - description: Describes how the services provided by this workload are exposed + to its consumers + displayName: Publishing Strategies + path: api.publishingStrategies + - description: Endpoints holds the list of publishing strategies for each workload + endpoint. + displayName: Endpoints + path: api.publishingStrategies.endpoints + - description: Create explicitely tells the controller that this is a new endpoint + that should be added. Default is false, causing the controller to error + when seeing an unknown endpoint. + displayName: Create + path: api.publishingStrategies.endpoints[0].create + - description: Marin3rSidecar holds configuration for the Marin3rSidecar publishing + strategy + displayName: Marin3r Sidecar + path: api.publishingStrategies.endpoints[0].marin3rSidecar + - description: Envoy dynamic configuration. Populating this field causes the + operator to create a Marin3r EnvoyConfig resource, so Marin3r must be installed + in the cluster. + displayName: Envoy Dynamic Config + path: api.publishingStrategies.endpoints[0].marin3rSidecar.dynamicConfigs + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: api.publishingStrategies.endpoints[0].marin3rSidecar.elasticLoadBalancerConfig.proxyProtocol + - description: The Envoy API version to use + displayName: Envoy APIVersion + path: api.publishingStrategies.endpoints[0].marin3rSidecar.envoyAPIVersion + - description: The Envoy iamge to use + displayName: Envoy Image + path: api.publishingStrategies.endpoints[0].marin3rSidecar.envoyImage + - description: Extra annotations to pass the Pod to further configure the sidecar + container. + displayName: Extra Pod Annotations + path: api.publishingStrategies.endpoints[0].marin3rSidecar.extraPodAnnotations + - description: NLB configuration + displayName: Network Load Balancer Config + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: api.publishingStrategies.endpoints[0].marin3rSidecar.networkLoadBalancerConfig.proxyProtocol + - description: The NodeID that identifies the Envoy sidecar to the DiscoveryService + displayName: Node ID + path: api.publishingStrategies.endpoints[0].marin3rSidecar.nodeID + - description: The ports that the sidecar exposes + displayName: Ports + path: api.publishingStrategies.endpoints[0].marin3rSidecar.ports + - description: Port name + displayName: Name + path: api.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].name + - description: Port value + displayName: Port + path: api.publishingStrategies.endpoints[0].marin3rSidecar.ports[0].port + - description: Compute Resources required by the sidecar container. + displayName: Resources + path: api.publishingStrategies.endpoints[0].marin3rSidecar.resources + - description: 'Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + displayName: Limits + path: api.publishingStrategies.endpoints[0].marin3rSidecar.resources.limits + - 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/' + displayName: Requests + path: api.publishingStrategies.endpoints[0].marin3rSidecar.resources.requests + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: api.publishingStrategies.endpoints[0].marin3rSidecar.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: api.publishingStrategies.endpoints[0].marin3rSidecar.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: api.publishingStrategies.endpoints[0].marin3rSidecar.serviceType + - description: Extra containers to sync with the shutdown manager upon pod termination + displayName: Shutdown Manager Extra Lifecycle Hooks + path: api.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrExtraLifecycleHooks + - description: The port where Marin3r's shutdown manager listens + displayName: Shutdown Manager Port + path: api.publishingStrategies.endpoints[0].marin3rSidecar.shtdnmgrPort + - description: EndpointName defines the endpoint affected by this publishing + strategy + displayName: Endpoint Name + path: api.publishingStrategies.endpoints[0].name + - description: Simple holds configuration for the Simple publishing strategy + displayName: Simple + path: api.publishingStrategies.endpoints[0].simple + - description: Classic LB configuration + displayName: Elastic Load Balancer Config + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig + - description: Enables/disables connection draining + displayName: Connection Draining Enabled + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingEnabled + - description: Sets the timeout for connection draining + displayName: Connection Draining Timeout + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.connectionDrainingTimeout + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Sets the healthy threshold for the load balancer + displayName: Healthcheck Healthy Threshold + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckHealthyThreshold + - description: Sets the interval between health checks + displayName: Healthcheck Interval + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckInterval + - description: Sets the timeout for the health check + displayName: Healthcheck Timeout + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckTimeout + - description: Sets the unhealthy threshold for the load balancer + displayName: Healthcheck Unhealthy Threshold + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.healthcheckUnhealthyThreshold + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: api.publishingStrategies.endpoints[0].simple.elasticLoadBalancerConfig.proxyProtocol + - description: NLB configuration + displayName: Network Load Balancer Config + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig + - description: Enables/disables cross zone load balancing + displayName: Cross Zone Load Balancing Enabled + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.crossZoneLoadBalancingEnabled + - description: Deletion protection setting + displayName: Deletion Protection + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.deletionProtection + - description: The list of optional Elastic IPs allocations + displayName: EIPAllocations + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.eipAllocations + - description: Optionally specify the load balancer name + displayName: Load Balancer Name + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.loadBalancerName + - description: Enables/disbles use of proxy protocol in the load balancer + displayName: Proxy Protocol + path: api.publishingStrategies.endpoints[0].simple.networkLoadBalancerConfig.proxyProtocol + - description: ServiceNameOverride allows the user to override the generated + Service name + displayName: Service Name Override + path: api.publishingStrategies.endpoints[0].simple.serviceName + - description: ServicePortsOverride allows the user to override the ports of + a Service. It's a replace operation, so specify all the required ports. + displayName: Service Ports Override + path: api.publishingStrategies.endpoints[0].simple.servicePorts + - description: ServiceType defines the type of k8s Service to use for exposing + the service to its consumers + displayName: Service Type + path: api.publishingStrategies.endpoints[0].simple.serviceType + - description: Strategy defines the type of publishing strategy + displayName: Strategy + path: api.publishingStrategies.endpoints[0].strategy + - description: PublishingStrategiesReconcileMode specifies if the list of strategies + should be merged with the defautls or replace them entirely. Allowed values + are "Merge" or "Replace". "Replace" strategy should be used to enable 2 + strategies at the same time for a single endpoint. + displayName: Mode + path: api.publishingStrategies.mode - description: Readiness probe for the component displayName: Readiness Probe path: api.readinessProbe diff --git a/pkg/version/version.go b/pkg/version/version.go index 1cbe2705..6ec5f2ac 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -1,7 +1,7 @@ package version const ( - version string = "v0.24.0" + version string = "v0.25.0-alpha.6" ) // Current returns the current marin3r operator version