// 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 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. k8s.io.api.core.v1.ResourceRequirements resources = 4; }