sigs.k8s.io/cluster-api-provider-aws@v1.5.5/pkg/cloud/scope/ec2.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 ) 23 24 // EC2Scope is the interface for the scope to be used with the ec2 service. 25 type EC2Scope interface { 26 cloud.ClusterScoper 27 28 // VPC returns the cluster VPC. 29 VPC() *infrav1.VPCSpec 30 31 // Subnets returns the cluster subnets. 32 Subnets() infrav1.Subnets 33 34 // Network returns the cluster network object. 35 Network() *infrav1.NetworkStatus 36 37 // SecurityGroups returns the cluster security groups as a map, it creates the map if empty. 38 SecurityGroups() map[infrav1.SecurityGroupRole]infrav1.SecurityGroup 39 40 // Bastion returns the bastion details for the cluster. 41 Bastion() *infrav1.Bastion 42 43 // SetBastionInstance sets the bastion instance in the status of the cluster. 44 SetBastionInstance(instance *infrav1.Instance) 45 46 // SSHKeyName returns the SSH key name to use for instances. 47 SSHKeyName() *string 48 49 // ImageLookupFormat returns the format string to use when looking up AMIs 50 ImageLookupFormat() string 51 52 // ImageLookupOrg returns the organization name to use when looking up AMIs 53 ImageLookupOrg() string 54 55 // ImageLookupBaseOS returns the base operating system name to use when looking up AMIs 56 ImageLookupBaseOS() string 57 }