consul/proto-public/pbmesh/v2beta1/gatewayclassconfig.proto

56 lines
1.9 KiB
Protocol Buffer

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
syntax = "proto3";
package hashicorp.consul.mesh.v2beta1;
import "k8s.io/api/core/v1/generated.proto";
import "pbresource/annotations.proto";
// This is a Resource type.
message GatewayClassConfig {
option (hashicorp.consul.resource.spec) = {scope: SCOPE_CLUSTER};
// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
optional string service_type = 1;
// NodeSelector is a selector which must be true for the pod to fit on a node.
// Selector which must match a node's labels for the pod to be scheduled on that node.
// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
map<string, string> node_selector = 2;
// Tolerations allow the scheduler to schedule nodes with matching taints.
// More Info: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
repeated k8s.io.api.core.v1.Toleration tolerations = 3;
optional Deployment deployment = 4;
optional CopyAnnotations copy_annotations = 5;
optional string pod_security_policy = 6;
optional string openshift_scc_name = 7;
optional bool use_host_ports = 8;
}
message CopyAnnotations {
repeated string service = 1;
}
message Deployment {
// +kubebuilder:default:=1
// +kubebuilder:validation:Maximum=8
// +kubebuilder:validation:Minimum=1
// Number of gateway instances that should be deployed by default
optional uint32 default_instances = 1;
// +kubebuilder:default:=1
// +kubebuilder:validation:Maximum=8
// +kubebuilder:validation:Minimum=1
// Minimum allowed number of gateway instances
optional uint32 min_instances = 2;
// +kubebuilder:default:=8
// +kubebuilder:validation:Maximum=8
// +kubebuilder:validation:Minimum=1
// Max allowed number of gateway instances
optional uint32 max_instances = 3;
// Resources defines the resource requirements for the gateway.
repeated k8s.io.api.core.v1.ResourceRequirements resources = 4;
}