sigs.k8s.io/cluster-api-provider-aws@v1.5.5/pkg/cloud/scope/elb.go (about) 1 /* 2 Copyright 2018 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package scope 18 19 import ( 20 infrav1 "sigs.k8s.io/cluster-api-provider-aws/api/v1beta1" 21 "sigs.k8s.io/cluster-api-provider-aws/pkg/cloud" 22 clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" 23 ) 24 25 // ELBScope is a scope for use with the ELB reconciling service. 26 type ELBScope interface { 27 cloud.ClusterScoper 28 29 // Network returns the cluster network object. 30 Network() *infrav1.NetworkStatus 31 32 // Subnets returns the cluster subnets. 33 Subnets() infrav1.Subnets 34 35 // SecurityGroups returns the cluster security groups as a map, it creates the map if empty. 36 SecurityGroups() map[infrav1.SecurityGroupRole]infrav1.SecurityGroup 37 38 // VPC returns the cluster VPC. 39 VPC() *infrav1.VPCSpec 40 41 // ControlPlaneLoadBalancer returns the AWSLoadBalancerSpec 42 ControlPlaneLoadBalancer() *infrav1.AWSLoadBalancerSpec 43 44 // ControlPlaneLoadBalancerScheme returns the Classic ELB scheme (public or internal facing) 45 ControlPlaneLoadBalancerScheme() infrav1.ClassicELBScheme 46 47 // ControlPlaneLoadBalancerName returns the Classic ELB name 48 ControlPlaneLoadBalancerName() *string 49 50 // ControlPlaneEndpoint returns AWSCluster control plane endpoint 51 ControlPlaneEndpoint() clusterv1.APIEndpoint 52 }