-
Notifications
You must be signed in to change notification settings - Fork 742
/
rds.yaml
127 lines (127 loc) · 3.73 KB
/
rds.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
AWSTemplateFormatVersion: '2010-09-09'
Description: 'AWS CloudFormation Sample Template showing how to create an RDS DBInstance
in an existing Virtual Private Cloud (VPC).
**WARNING** This template creates an Amazon Relational Database Service database
instance. You will be billed for the AWS resources used if you create a stack from
this template.'
Parameters:
VpcId:
Type: AWS::EC2::VPC::Id
Description: VpcId of your existing Virtual Private Cloud (VPC)
ConstraintDescription: must be the VPC Id of an existing Virtual Private Cloud.
Subnets:
Type: 'List<AWS::EC2::Subnet::Id>'
Description: The list of SubnetIds, for at least two Availability Zones in the
region in your Virtual Private Cloud (VPC)
ConstraintDescription: Select at least two SubnetIds that are Private
SecurityGroupId:
Type: 'List<AWS::EC2::SecurityGroup::Id>'
Description: SecurityGroup Id of your EKS Worker Node
ConstraintDescription: must be SecurityGroupId of an existing Instance
DBName:
Default: kubeflow
Description: Database name for Kubeflow
Type: String
MinLength: '1'
MaxLength: '64'
AllowedPattern: "[a-zA-Z][a-zA-Z0-9]*"
ConstraintDescription: must begin with a letter and contain only alphanumeric characters.
DBUsername:
Default: admin
NoEcho: 'true'
Description: The database admin account username
Type: String
MinLength: '1'
MaxLength: '16'
AllowedPattern: "[a-zA-Z][a-zA-Z0-9]*"
ConstraintDescription: must begin with a letter and contain only alphanumeric characters.
DBPassword:
Default: Kubefl0w
NoEcho: 'true'
Description: The database admin account password
Type: String
MinLength: '8'
MaxLength: '41'
AllowedPattern: ".*"
ConstraintDescription: must contain only alphanumeric characters.
DBClass:
Default: db.m5.large
Description: Database instance class
Type: String
AllowedValues:
- db.m5.large
- db.m5.xlarge
- db.m5.2xlarge
- db.m5.4xlarge
- db.m5.12xlarge
ConstraintDescription: must select a valid database instance type.
DBAllocatedStorage:
Default: '20'
Description: The size of the database (Gb)
Type: Number
MinValue: '20'
MaxValue: '65536'
ConstraintDescription: must be between 20 and 65536Gb.
MultiAZ:
Description: Multi-AZ master database
Type: String
Default: 'false'
AllowedValues: ['true', 'false']
ConstraintDescription: must be true or false.
Resources:
MyDBSubnetGroup:
Type: AWS::RDS::DBSubnetGroup
Properties:
DBSubnetGroupDescription: Subnets available for the RDS DB Instance
SubnetIds:
Ref: Subnets
myVPCSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Security group for RDS DB Instance.
VpcId:
Ref: VpcId
MyDB:
Type: AWS::RDS::DBInstance
Properties:
DBName:
Ref: DBName
AllocatedStorage:
Ref: DBAllocatedStorage
DBInstanceClass:
Ref: DBClass
Engine: MySQL
EngineVersion: '8.0.17'
MultiAZ:
Ref: MultiAZ
MasterUsername:
Ref: DBUsername
MasterUserPassword:
Ref: DBPassword
DBSubnetGroupName:
Ref: MyDBSubnetGroup
VPCSecurityGroups:
Ref: SecurityGroupId
DeletionPolicy: Snapshot
Outputs:
RDSEndpoint:
Description: RDS Endpoint
Value:
Fn::GetAtt:
- MyDB
- Endpoint.Address
JDBCConnectionString:
Description: JDBC connection string for database
Value:
Fn::Join:
- ''
- - jdbc:mysql://
- Fn::GetAtt:
- MyDB
- Endpoint.Address
- ":"
- Fn::GetAtt:
- MyDB
- Endpoint.Port
- "/"
- Ref: DBName