cluster-config.yml¶
This is the current template that is used to place cluster-config.yml into each cluster directory by k9 create project
. Some values will be pre-filed, but users are free to edit any value in cluster-config.yml before running k9 create cluster
.
clusterName: '{{clusterName}}'
baseDomain: '{{clusterName}}.{{rootDomain}}'
validationDomain: '{{rootDomain}}'
cidrPrefix: '10.10'
isCicd: {{isCicd}}
eksVersion: 1.21
workerGroups:
- workerGroupName: 'workerGroup1'
instanceType: 't3.large'
amiType: 'AL2_x86_64'
desiredCount: 2
minCount: 1
maxCount: 4
databases:
- dBClusterId: '{{clusterName}}-rds-db'
engineType: 'postgres'
engineVersion: '11.12'
isProduction: {{isPrd}}
default: true
General¶
All values are to be given as strings unless otherwise stated.
clusterName
: the name of the cluster. Must only contain alphanumeric characters and hyphens (‘-‘). Suggested names:
prd
np
cicd
test
baseDomain
: baseDomain for the standard logging and monitoring apps to use. Must begin with clusterName.
This will be used for the following urls:
kibana.baseDomain
grafana.baseDomain
prometheus.baseDomain
If you run k9 create cicd
then these urls will be used:
jenkins.baseDomain
sonar.baseDomain
validationDomain
: the domain used to send the certificate approval email. Must be a super-domain of baseDomain
.
cidrPrefix
: The cidr prefix to use in the cluster’s vpc. Must be two numbers separated by a period. Ex:
10.10
10.0
100.68
isCicd
: Boolean. If true, the cluster worker nodes are given the CloudFrontFullAccess and AmazonEC2ContainerRegistryFullAccess policies.
eksVersion
: Optional. The version to use for the EKS cluster. If not specified defaults to 1.21
.
workerGroups¶
List of worker groups to create for the cluster. See the AWS nodegroup documentation on AWS::EKS::Nodegroup
for more information if needed.
workerGroupName
: name of this EKS Nodegroup. Must be unique.
instanceType
: AWS instanceType for the workers.
amiType
: AWS AMI type. Allowed values:
AL2_ARM_64
AL2_x86_64
AL2_x86_64_GPU
BOTTLEROCKET_ARM_64
BOTTLEROCKET_x86_64
desiredCount
: (Integer) The current number of nodes that the managed node group should maintain.
minCount
: (Integer) The minimum number of nodes that the managed node group can scale in to.
maxSize
: (Integer. Minimum: 1) The maximum number of nodes that the managed node group can scale out to.
databases¶
List of database instances to create for the cluster. See the AWS documentation on AWS::RDS::DBInstance
for more information if needed.
dBClusterId
- the DBInstanceIdentifier. Must be unique.
template
- unused
engineType
- The database engine. See AWS engine docs for all options
engineVersion
- The version for your selected engineType. See AWS docs for all options
isProduction
- (Boolean) Use the production grade DBInstance values, or a cheaper one for testing.
Production
DBInstanceClass: db.m5.large
AllocatedStorage: 128
MultiAZ: true
Non-Production
DBInstanceClass: db.t3.micro
AllocatedStorage: 16
default
- (Boolean) Should only be included on one database in the list. All databases will be tagged with a TagName: default
and a boolean value True
or False
. The database instance with the default
tag set to True
will be used by k9’s create_app_database() function when deploying applications.
Examples¶
Simple example
clusterName: 'np'
baseDomain: 'np.k9-app.example.com'
validationDomain: 'example.com'
cidrPrefix: '10.10'
workerGroups:
- workerGroupName: 'workerGroup1'
instanceType: 't3.medium'
amiType: 'AL2_x86_64'
desiredCount: 2
minCount: 1
maxCount: 4
databases:
- dBClusterId: 'np-rds-db'
engineType: 'postgres'
engineVersion: '11.12'
isProduction: false
default: true
Multiple Worker Groups and Databases
clusterName: 'prd'
baseDomain: 'prd.k9-example.example.com'
validationDomain: 'example.com'
cidrPrefix: '10.10'
workerGroups:
- workerGroupName: 'workerGroup1'
instanceType: 't3.medium'
amiType: 'AL2_x86_64'
desiredCount: 2
minCount: 1
maxCount: 4
- workerGroupName: 'workerGroup2'
instanceType: 't3.small'
amiType: 'AL2_x86_64'
desiredCount: 2
minCount: 1
maxCount: 4
databases:
- dBClusterId: 'prd-test-rds-db'
engineType: 'postgres'
engineVersion: '11.12'
isProduction: false
- dBClusterId: 'prd-test-rds-db2'
engineType: 'postgres'
engineVersion: '11.12'
isProduction: true
default: true