Classes
Name | Description |
---|---|
ContainerService | No description |
Database | Represents the database instance or database cluster. |
KeyCloak | No description |
KeycloakVersion | Keycloak version. |
Structs
Name | Description |
---|---|
AutoScaleTask | The ECS task autoscaling definition. |
ContainerServiceProps | No description |
DatabaseConfig | Database configuration. |
DatabaseProps | No description |
KeyCloakProps | No description |
Implements: IConstruct, IDependable Extends: Construct
new ContainerService(scope: Construct, id: string, props: ContainerServiceProps)
- scope (
Construct
) No description - id (
string
) No description - props (
ContainerServiceProps
) No description- certificate (
aws_certificatemanager.ICertificate
) The ACM certificate. - database (
Database
) The RDS database for the service. - keycloakSecret (
aws_secretsmanager.ISecret
) The secrets manager secret for the keycloak. - keycloakVersion (
KeycloakVersion
) Keycloak version for the container image. - vpc (
aws_ec2.IVpc
) The VPC for the service. - autoScaleTask (
AutoScaleTask
) Autoscaling for the ECS Service. Default: no ecs service autoscaling - bastion (
boolean
) Whether to create the bastion host. Default: false - circuitBreaker (
boolean
) Whether to enable the ECS service deployment circuit breaker. Default: false - containerImage (
aws_ecs.ContainerImage
) Overrides the default image. Default: quay.io/keycloak/keycloak:${KEYCLOAK_VERSION} - env (
Map<string, string>
) The environment variables to pass to the keycloak container. Optional - hostname (
string
) The hostname to use for the keycloak server. Optional - internetFacing (
boolean
) Whether to put the put the load balancer in the public or private subnets. Default: true - nodeCount (
number
) Number of keycloak node in the cluster. Default: 1 - privateSubnets (
aws_ec2.SubnetSelection
) VPC subnets for keycloak service. Optional - publicSubnets (
aws_ec2.SubnetSelection
) VPC public subnets for ALB. Optional - stickinessCookieDuration (
Duration
) The sticky session duration for the keycloak workload with ALB. Default: one day - taskCpu (
number
) The number of cpu units used by the keycloak task. Default: 4096 - taskMemory (
number
) The amount (in MiB) of memory used by the keycloak task. Default: 8192
- certificate (
Name | Type | Description |
---|---|---|
applicationLoadBalancer | aws_elasticloadbalancingv2.ApplicationLoadBalancer |
|
service | aws_ecs.FargateService |
Represents the database instance or database cluster.
Implements: IConstruct, IDependable Extends: Construct
new Database(scope: Construct, id: string, props: DatabaseProps)
- scope (
Construct
) No description - id (
string
) No description - props (
DatabaseProps
) No description- vpc (
aws_ec2.IVpc
) The VPC for the database. - auroraServerless (
boolean
) enable aurora serverless. Default: false - auroraServerlessV2 (
boolean
) enable aurora serverless v2. Default: false - backupRetention (
Duration
) database backup retension. Default: 7 days - clusterEngine (
aws_rds.IClusterEngine
) The database cluster engine. Default: rds.AuroraMysqlEngineVersion.VER_3_04_0 - databaseSubnets (
aws_ec2.SubnetSelection
) VPC subnets for database. Optional - instanceEngine (
aws_rds.IInstanceEngine
) The database instance engine. Default: MySQL 8.0.34 - instanceType (
aws_ec2.InstanceType
) The database instance type. Default: r5.large - maxCapacity (
number
) The maximum number of Aurora Serverless V2 capacity units. Default: 10 - minCapacity (
number
) The minimum number of Aurora Serverless V2 capacity units. Default: 0.5 - removalPolicy (
RemovalPolicy
) Controls what happens to the database if it stops being managed by CloudFormation. Default: RemovalPolicy.RETAIN - singleDbInstance (
boolean
) Whether to use single RDS instance rather than RDS cluster. Default: false
- vpc (
Name | Type | Description |
---|---|---|
clusterEndpointHostname | string |
|
clusterIdentifier | string |
|
connections | aws_ec2.Connections |
|
secret | aws_secretsmanager.ISecret |
|
vpc | aws_ec2.IVpc |
Implements: IConstruct, IDependable Extends: Construct
new KeyCloak(scope: Construct, id: string, props: KeyCloakProps)
- scope (
Construct
) No description - id (
string
) No description - props (
KeyCloakProps
) No description- certificateArn (
string
) ACM certificate ARN to import. - keycloakVersion (
KeycloakVersion
) The Keycloak version for the cluster. - auroraServerless (
boolean
) Whether to use aurora serverless. Default: false - auroraServerlessV2 (
boolean
) Whether to use aurora serverless v2. Default: false - autoScaleTask (
AutoScaleTask
) Autoscaling for the ECS Service. Default: no ecs service autoscaling - backupRetention (
Duration
) database backup retension. Default: 7 days - bastion (
boolean
) Create a bastion host for debugging or trouble-shooting. Default: false - clusterEngine (
aws_rds.IClusterEngine
) The database cluster engine. Default: rds.AuroraMysqlEngineVersion.VER_3_04_0 - containerImage (
aws_ecs.ContainerImage
) Overrides the default image. Default: quay.io/keycloak/keycloak:${KEYCLOAK_VERSION} - databaseInstanceType (
aws_ec2.InstanceType
) Database instance type. Default: r5.large - databaseMaxCapacity (
number
) The maximum number of Aurora Serverless V2 capacity units. Default: 10 - databaseMinCapacity (
number
) The minimum number of Aurora Serverless V2 capacity units. Default: 0.5 - databaseRemovalPolicy (
RemovalPolicy
) Controls what happens to the database if it stops being managed by CloudFormation. Default: RemovalPolicy.RETAIN - databaseSubnets (
aws_ec2.SubnetSelection
) VPC subnets for database. Default: VPC isolated subnets - env (
Map<string, string>
) The environment variables to pass to the keycloak container. Optional - hostname (
string
) The hostname to use for the keycloak server. Optional - instanceEngine (
aws_rds.IInstanceEngine
) The database instance engine. Default: MySQL 8.0.34 - internetFacing (
boolean
) Whether to put the load balancer in the public or private subnets. Default: true - nodeCount (
number
) Number of keycloak node in the cluster. Default: 2 - privateSubnets (
aws_ec2.SubnetSelection
) VPC private subnets for keycloak service. Default: VPC private subnets - publicSubnets (
aws_ec2.SubnetSelection
) VPC public subnets for ALB. Default: VPC public subnets - singleDbInstance (
boolean
) Whether to use single RDS instance rather than RDS cluster. Default: false - stickinessCookieDuration (
Duration
) The sticky session duration for the keycloak workload with ALB. Default: one day - taskCpu (
number
) The number of cpu units used by the keycloak task. Default: 4096 - taskMemory (
number
) The amount (in MiB) of memory used by the keycloak task. Default: 8192 - vpc (
aws_ec2.IVpc
) VPC for the workload. Optional
- certificateArn (
Name | Type | Description |
---|---|---|
applicationLoadBalancer | aws_elasticloadbalancingv2.ApplicationLoadBalancer |
|
keycloakSecret | aws_secretsmanager.ISecret |
|
vpc | aws_ec2.IVpc |
|
db? | Database |
Optional |
addDatabase(props: DatabaseProps): Database
- props (
DatabaseProps
) No description- vpc (
aws_ec2.IVpc
) The VPC for the database. - auroraServerless (
boolean
) enable aurora serverless. Default: false - auroraServerlessV2 (
boolean
) enable aurora serverless v2. Default: false - backupRetention (
Duration
) database backup retension. Default: 7 days - clusterEngine (
aws_rds.IClusterEngine
) The database cluster engine. Default: rds.AuroraMysqlEngineVersion.VER_3_04_0 - databaseSubnets (
aws_ec2.SubnetSelection
) VPC subnets for database. Optional - instanceEngine (
aws_rds.IInstanceEngine
) The database instance engine. Default: MySQL 8.0.34 - instanceType (
aws_ec2.InstanceType
) The database instance type. Default: r5.large - maxCapacity (
number
) The maximum number of Aurora Serverless V2 capacity units. Default: 10 - minCapacity (
number
) The minimum number of Aurora Serverless V2 capacity units. Default: 0.5 - removalPolicy (
RemovalPolicy
) Controls what happens to the database if it stops being managed by CloudFormation. Default: RemovalPolicy.RETAIN - singleDbInstance (
boolean
) Whether to use single RDS instance rather than RDS cluster. Default: false
- vpc (
Returns:
addKeyCloakContainerService(props: ContainerServiceProps): ContainerService
- props (
ContainerServiceProps
) No description- certificate (
aws_certificatemanager.ICertificate
) The ACM certificate. - database (
Database
) The RDS database for the service. - keycloakSecret (
aws_secretsmanager.ISecret
) The secrets manager secret for the keycloak. - keycloakVersion (
KeycloakVersion
) Keycloak version for the container image. - vpc (
aws_ec2.IVpc
) The VPC for the service. - autoScaleTask (
AutoScaleTask
) Autoscaling for the ECS Service. Default: no ecs service autoscaling - bastion (
boolean
) Whether to create the bastion host. Default: false - circuitBreaker (
boolean
) Whether to enable the ECS service deployment circuit breaker. Default: false - containerImage (
aws_ecs.ContainerImage
) Overrides the default image. Default: quay.io/keycloak/keycloak:${KEYCLOAK_VERSION} - env (
Map<string, string>
) The environment variables to pass to the keycloak container. Optional - hostname (
string
) The hostname to use for the keycloak server. Optional - internetFacing (
boolean
) Whether to put the put the load balancer in the public or private subnets. Default: true - nodeCount (
number
) Number of keycloak node in the cluster. Default: 1 - privateSubnets (
aws_ec2.SubnetSelection
) VPC subnets for keycloak service. Optional - publicSubnets (
aws_ec2.SubnetSelection
) VPC public subnets for ALB. Optional - stickinessCookieDuration (
Duration
) The sticky session duration for the keycloak workload with ALB. Default: one day - taskCpu (
number
) The number of cpu units used by the keycloak task. Default: 4096 - taskMemory (
number
) The amount (in MiB) of memory used by the keycloak task. Default: 8192
- certificate (
Returns:
Keycloak version.
Name | Type | Description |
---|---|---|
version | string |
cluster version number. |
static V12_0_4 | KeycloakVersion |
Keycloak version 12.0.4. |
static V15_0_0 | KeycloakVersion |
Keycloak version 15.0.0. |
static V15_0_1 | KeycloakVersion |
Keycloak version 15.0.1. |
static V15_0_2 | KeycloakVersion |
Keycloak version 15.0.2. |
static V16_1_1 | KeycloakVersion |
Keycloak version 16.1.1. |
static V17_0_1 | KeycloakVersion |
Keycloak version 17.0.1. |
static V18_0_2 | KeycloakVersion |
Keycloak version 18.0.2. |
static V19_0_3 | KeycloakVersion |
Keycloak version 19.0.3. |
static V20_0_5 | KeycloakVersion |
Keycloak version 20.0.5. |
static V21_0_0 | KeycloakVersion |
Keycloak version 21.0.0. |
static V21_0_1 | KeycloakVersion |
Keycloak version 21.0.1. |
static V22_0_4 | KeycloakVersion |
Keycloak version 22.0.4. |
Custom cluster version.
static of(version: string): KeycloakVersion
- version (
string
) custom version number.
Returns:
The ECS task autoscaling definition.
Name | Type | Description |
---|---|---|
max? | number |
The maximal count of the task number. Default: min + 5 |
min? | number |
The minimal count of the task number. Default: nodeCount |
targetCpuUtilization? | number |
The target cpu utilization for the service autoscaling. Default: 75 |
Name | Type | Description |
---|---|---|
certificate | aws_certificatemanager.ICertificate |
The ACM certificate. |
database | Database |
The RDS database for the service. |
keycloakSecret | aws_secretsmanager.ISecret |
The secrets manager secret for the keycloak. |
keycloakVersion | KeycloakVersion |
Keycloak version for the container image. |
vpc | aws_ec2.IVpc |
The VPC for the service. |
autoScaleTask? | AutoScaleTask |
Autoscaling for the ECS Service. Default: no ecs service autoscaling |
bastion? | boolean |
Whether to create the bastion host. Default: false |
circuitBreaker? | boolean |
Whether to enable the ECS service deployment circuit breaker. Default: false |
containerImage? | aws_ecs.ContainerImage |
Overrides the default image. Default: quay.io/keycloak/keycloak:${KEYCLOAK_VERSION} |
env? | Map<string, string> |
The environment variables to pass to the keycloak container. Optional |
hostname? | string |
The hostname to use for the keycloak server. Optional |
internetFacing? | boolean |
Whether to put the put the load balancer in the public or private subnets. Default: true |
nodeCount? | number |
Number of keycloak node in the cluster. Default: 1 |
privateSubnets? | aws_ec2.SubnetSelection |
VPC subnets for keycloak service. Optional |
publicSubnets? | aws_ec2.SubnetSelection |
VPC public subnets for ALB. Optional |
stickinessCookieDuration? | Duration |
The sticky session duration for the keycloak workload with ALB. Default: one day |
taskCpu? | number |
The number of cpu units used by the keycloak task. Default: 4096 |
taskMemory? | number |
The amount (in MiB) of memory used by the keycloak task. Default: 8192 |
Database configuration.
Name | Type | Description |
---|---|---|
connections | aws_ec2.Connections |
The database connnections. |
endpoint | string |
The endpoint address for the database. |
identifier | string |
The databasae identifier. |
secret | aws_secretsmanager.ISecret |
The database secret. |
Name | Type | Description |
---|---|---|
vpc | aws_ec2.IVpc |
The VPC for the database. |
auroraServerless? | boolean |
enable aurora serverless. Default: false |
auroraServerlessV2? | boolean |
enable aurora serverless v2. Default: false |
backupRetention? | Duration |
database backup retension. Default: 7 days |
clusterEngine? | aws_rds.IClusterEngine |
The database cluster engine. Default: rds.AuroraMysqlEngineVersion.VER_3_04_0 |
databaseSubnets? | aws_ec2.SubnetSelection |
VPC subnets for database. Optional |
instanceEngine? | aws_rds.IInstanceEngine |
The database instance engine. Default: MySQL 8.0.34 |
instanceType? | aws_ec2.InstanceType |
The database instance type. Default: r5.large |
maxCapacity? | number |
The maximum number of Aurora Serverless V2 capacity units. Default: 10 |
minCapacity? | number |
The minimum number of Aurora Serverless V2 capacity units. Default: 0.5 |
removalPolicy? | RemovalPolicy |
Controls what happens to the database if it stops being managed by CloudFormation. Default: RemovalPolicy.RETAIN |
singleDbInstance? | boolean |
Whether to use single RDS instance rather than RDS cluster. Default: false |
Name | Type | Description |
---|---|---|
certificateArn | string |
ACM certificate ARN to import. |
keycloakVersion | KeycloakVersion |
The Keycloak version for the cluster. |
auroraServerless? | boolean |
Whether to use aurora serverless. Default: false |
auroraServerlessV2? | boolean |
Whether to use aurora serverless v2. Default: false |
autoScaleTask? | AutoScaleTask |
Autoscaling for the ECS Service. Default: no ecs service autoscaling |
backupRetention? | Duration |
database backup retension. Default: 7 days |
bastion? | boolean |
Create a bastion host for debugging or trouble-shooting. Default: false |
clusterEngine? | aws_rds.IClusterEngine |
The database cluster engine. Default: rds.AuroraMysqlEngineVersion.VER_3_04_0 |
containerImage? | aws_ecs.ContainerImage |
Overrides the default image. Default: quay.io/keycloak/keycloak:${KEYCLOAK_VERSION} |
databaseInstanceType? | aws_ec2.InstanceType |
Database instance type. Default: r5.large |
databaseMaxCapacity? | number |
The maximum number of Aurora Serverless V2 capacity units. Default: 10 |
databaseMinCapacity? | number |
The minimum number of Aurora Serverless V2 capacity units. Default: 0.5 |
databaseRemovalPolicy? | RemovalPolicy |
Controls what happens to the database if it stops being managed by CloudFormation. Default: RemovalPolicy.RETAIN |
databaseSubnets? | aws_ec2.SubnetSelection |
VPC subnets for database. Default: VPC isolated subnets |
env? | Map<string, string> |
The environment variables to pass to the keycloak container. Optional |
hostname? | string |
The hostname to use for the keycloak server. Optional |
instanceEngine? | aws_rds.IInstanceEngine |
The database instance engine. Default: MySQL 8.0.34 |
internetFacing? | boolean |
Whether to put the load balancer in the public or private subnets. Default: true |
nodeCount? | number |
Number of keycloak node in the cluster. Default: 2 |
privateSubnets? | aws_ec2.SubnetSelection |
VPC private subnets for keycloak service. Default: VPC private subnets |
publicSubnets? | aws_ec2.SubnetSelection |
VPC public subnets for ALB. Default: VPC public subnets |
singleDbInstance? | boolean |
Whether to use single RDS instance rather than RDS cluster. Default: false |
stickinessCookieDuration? | Duration |
The sticky session duration for the keycloak workload with ALB. Default: one day |
taskCpu? | number |
The number of cpu units used by the keycloak task. Default: 4096 |
taskMemory? | number |
The amount (in MiB) of memory used by the keycloak task. Default: 8192 |
vpc? | aws_ec2.IVpc |
VPC for the workload. Optional |