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  }