Documentation
¶
Index ¶
- Constants
- func CloudID(id string) string
- func GetSecurityGroupsWithFilters(filters []*ec2.Filter) ([]*ec2.SecurityGroup, error)
- func GetSubnetsWithFilters(filters []*ec2.Filter) ([]*ec2.Subnet, error)
- func GetVpcsWithFilters(filters []*ec2.Filter) ([]*ec2.Vpc, error)
- func IAMSecretName(cloudID string) string
- func RDSSecretName(cloudID string) string
- type AWS
- type Client
- func (c *Client) AddSQLStore(store model.InstallationDatabaseStoreInterface)
- func (a *Client) CreateCNAME(dnsName string, dnsEndpoints []string, logger log.FieldLogger) error
- func (a *Client) DeleteCNAME(dnsName string, logger log.FieldLogger) error
- func (a *Client) GetAndClaimVpcResources(clusterID string, logger log.FieldLogger) (ClusterResources, error)
- func (c *Client) HasSQLStore() bool
- func (a *Client) ReleaseVpc(clusterID string, logger log.FieldLogger) error
- func (a *Client) TagResource(resourceID, key, value string, logger log.FieldLogger) error
- func (a *Client) UntagResource(resourceID, key, value string, logger log.FieldLogger) error
- type ClusterResources
- type IAMAccessKey
- type RDSDatabase
- func (d *RDSDatabase) GenerateDatabaseSpecAndSecret(logger log.FieldLogger) (*mmv1alpha1.Database, *corev1.Secret, error)
- func (d *RDSDatabase) Provision(store model.InstallationDatabaseStoreInterface, logger log.FieldLogger) error
- func (d *RDSDatabase) Teardown(keepData bool, logger log.FieldLogger) error
- type RDSSecret
- type S3Filestore
Constants ¶
const ( // S3URL is the S3 URL for making bucket API calls. S3URL = "s3.amazonaws.com" // DefaultAWSRegion is the default AWS region for AWS resources. DefaultAWSRegion = "us-east-1" // VpcAvailableTagKey is the tag key to determine if a VPC is currently in // use by a cluster or not. VpcAvailableTagKey = "tag:Available" // VpcAvailableTagValueTrue is the tag value for VpcAvailableTagKey when the // VPC is currently not in use by a cluster and can be claimed. VpcAvailableTagValueTrue = "true" // VpcAvailableTagValueFalse is the tag value for VpcAvailableTagKey when the // VPC is currently in use by a cluster and cannot be claimed. VpcAvailableTagValueFalse = "false" // VpcClusterIDTagKey is the tag key used to store the cluster ID of the // cluster running in that VPC. VpcClusterIDTagKey = "tag:CloudClusterID" // VpcClusterIDTagValueNone is the tag value for VpcClusterIDTagKey when // there is no cluster running in the VPC. VpcClusterIDTagValueNone = "none" // DefaultDBSubnetGroupName is the default DB subnet group name used when // creating DB clusters. This group name is defined by the owner of the AWS // accounts and can be the same across all accounts. // Note: This needs to be manually created before RDS databases can be used. DefaultDBSubnetGroupName = "mattermost-databases" // DefaultDBSecurityGroupTagKey is the default DB security group tag key // that is used to find security groups to use in configuration of the RDS // database. // Note: This needs to be manually created before RDS databases can be used. DefaultDBSecurityGroupTagKey = "tag:MattermostCloudInstallationDatabase" // DefaultDBSecurityGroupTagValue is the default DB security group tag value // that is used to find security groups to use in configuration of the RDS // database. // Note: This needs to be manually created before RDS databases can be used. DefaultDBSecurityGroupTagValue = "MYSQL/Aurora" // DefaultDBSubnetGroupTagKey is the default DB subnet group tag key that is // used to find subnet groups to use in configuration of the RDS database. // Note: This needs to be manually created before RDS databases can be used. DefaultDBSubnetGroupTagKey = "tag:MattermostCloudInstallationDatabase" // DefaultDBSubnetGroupTagValue is the default DB subnet group tag value // that is used to find subnet groups to use in configuration of the RDS // database. // Note: This needs to be manually created before RDS databases can be used. DefaultDBSubnetGroupTagValue = "MYSQL/Aurora" )
Variables ¶
This section is empty.
Functions ¶
func CloudID ¶ added in v0.7.0
CloudID returns the standard ID used for AWS resource names. This ID is used to correlate installations to AWS resources.
func GetSecurityGroupsWithFilters ¶ added in v0.9.0
func GetSecurityGroupsWithFilters(filters []*ec2.Filter) ([]*ec2.SecurityGroup, error)
GetSecurityGroupsWithFilters returns SGs matching a given filter.
func GetSubnetsWithFilters ¶ added in v0.9.0
GetSubnetsWithFilters returns subnets matching a given filter.
func GetVpcsWithFilters ¶ added in v0.9.0
GetVpcsWithFilters returns VPCs matching a given filter.
func IAMSecretName ¶ added in v0.8.0
IAMSecretName returns the IAM Access Key secret name for a given Cloud ID.
func RDSSecretName ¶ added in v0.8.0
RDSSecretName returns the RDS secret name for a given Cloud ID.
Types ¶
type AWS ¶
type AWS interface { GetAndClaimVpcResources(clusterID string, logger log.FieldLogger) (ClusterResources, error) ReleaseVpc(clusterID string, logger log.FieldLogger) error CreateCNAME(dnsName string, dnsEndpoints []string, logger log.FieldLogger) error DeleteCNAME(dnsName string, logger log.FieldLogger) error TagResource(resourceID, key, value string, logger log.FieldLogger) error UntagResource(resourceID, key, value string, logger log.FieldLogger) error }
AWS interface for use by other packages.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a client for interacting with AWS resources.
func (*Client) AddSQLStore ¶ added in v0.10.0
func (c *Client) AddSQLStore(store model.InstallationDatabaseStoreInterface)
AddSQLStore adds SQLStore functionality to the AWS client.
func (*Client) CreateCNAME ¶
CreateCNAME creates an AWS route53 CNAME record.
func (*Client) DeleteCNAME ¶
func (a *Client) DeleteCNAME(dnsName string, logger log.FieldLogger) error
DeleteCNAME deletes an AWS route53 CNAME record.
func (*Client) GetAndClaimVpcResources ¶ added in v0.9.0
func (a *Client) GetAndClaimVpcResources(clusterID string, logger log.FieldLogger) (ClusterResources, error)
GetAndClaimVpcResources creates ClusterResources from an available VPC and tags them appropriately.
func (*Client) HasSQLStore ¶ added in v0.10.0
HasSQLStore returns whether the AWS client has a SQL store or not.
func (*Client) ReleaseVpc ¶ added in v0.9.0
func (a *Client) ReleaseVpc(clusterID string, logger log.FieldLogger) error
ReleaseVpc changes the tags on a VPC to mark it as "available" again.
func (*Client) TagResource ¶
func (a *Client) TagResource(resourceID, key, value string, logger log.FieldLogger) error
TagResource tags an AWS EC2 resource.
func (*Client) UntagResource ¶
func (a *Client) UntagResource(resourceID, key, value string, logger log.FieldLogger) error
UntagResource deletes tags from an AWS EC2 resource.
type ClusterResources ¶ added in v0.9.0
type ClusterResources struct { VpcID string PrivateSubnetIDs []string PublicSubnetsIDs []string MasterSecurityGroupIDs []string WorkerSecurityGroupIDs []string }
ClusterResources is a collection of AWS resources that will be used to create a kops cluster.
func (*ClusterResources) IsValid ¶ added in v0.9.0
func (cr *ClusterResources) IsValid() error
IsValid returns whether or not ClusterResources is valid or not.
type IAMAccessKey ¶ added in v0.7.0
IAMAccessKey is the ID and Secret of an AWS IAM user's access key.
func (*IAMAccessKey) Validate ¶ added in v0.8.0
func (s *IAMAccessKey) Validate() error
Validate performs a basic sanity check on the IAM Access Key secret.
type RDSDatabase ¶ added in v0.8.0
type RDSDatabase struct {
// contains filtered or unexported fields
}
RDSDatabase is a database backed by AWS RDS.
func NewRDSDatabase ¶ added in v0.8.0
func NewRDSDatabase(installationID string) *RDSDatabase
NewRDSDatabase returns a new RDSDatabase interface.
func (*RDSDatabase) GenerateDatabaseSpecAndSecret ¶ added in v0.8.0
func (d *RDSDatabase) GenerateDatabaseSpecAndSecret(logger log.FieldLogger) (*mmv1alpha1.Database, *corev1.Secret, error)
GenerateDatabaseSpecAndSecret creates the k8s database spec and secret for accessing the RDS database.
func (*RDSDatabase) Provision ¶ added in v0.8.0
func (d *RDSDatabase) Provision(store model.InstallationDatabaseStoreInterface, logger log.FieldLogger) error
Provision completes all the steps necessary to provision a RDS database.
func (*RDSDatabase) Teardown ¶ added in v0.8.0
func (d *RDSDatabase) Teardown(keepData bool, logger log.FieldLogger) error
Teardown removes all AWS resources related to a RDS database.
type S3Filestore ¶ added in v0.7.0
type S3Filestore struct {
// contains filtered or unexported fields
}
S3Filestore is a filestore backed by AWS S3.
func NewS3Filestore ¶ added in v0.7.0
func NewS3Filestore(installationID string) *S3Filestore
NewS3Filestore returns a new S3Filestore interface.
func (*S3Filestore) GenerateFilestoreSpecAndSecret ¶ added in v0.7.0
func (f *S3Filestore) GenerateFilestoreSpecAndSecret(logger log.FieldLogger) (*mmv1alpha1.Minio, *corev1.Secret, error)
GenerateFilestoreSpecAndSecret creates the k8s filestore spec and secret for accessing the S3 bucket.
func (*S3Filestore) Provision ¶ added in v0.7.0
func (f *S3Filestore) Provision(logger log.FieldLogger) error
Provision completes all the steps necessary to provision an S3 filestore.
func (*S3Filestore) Teardown ¶ added in v0.7.0
func (f *S3Filestore) Teardown(keepData bool, logger log.FieldLogger) error
Teardown removes all AWS resources related to an S3 filestore.