Skip to content

Latest commit

 

History

History
406 lines (275 loc) · 26.3 KB

API.md

File metadata and controls

406 lines (275 loc) · 26.3 KB

API Reference

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

class ContainerService

Implements: IConstruct, IDependable Extends: Construct

Initializer

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

Properties

Name Type Description
applicationLoadBalancer aws_elasticloadbalancingv2.ApplicationLoadBalancer
service aws_ecs.FargateService

class Database

Represents the database instance or database cluster.

Implements: IConstruct, IDependable Extends: Construct

Initializer

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

Properties

Name Type Description
clusterEndpointHostname string
clusterIdentifier string
connections aws_ec2.Connections
secret aws_secretsmanager.ISecret
vpc aws_ec2.IVpc

class KeyCloak

Implements: IConstruct, IDependable Extends: Construct

Initializer

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

Properties

Name Type Description
applicationLoadBalancer aws_elasticloadbalancingv2.ApplicationLoadBalancer
keycloakSecret aws_secretsmanager.ISecret
vpc aws_ec2.IVpc
db? Database Optional

Methods

addDatabase(props)

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

Returns:

addKeyCloakContainerService(props)

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

Returns:

class KeycloakVersion

Keycloak version.

Properties

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.

Methods

static of(version)

Custom cluster version.

static of(version: string): KeycloakVersion
  • version (string) custom version number.

Returns:

struct AutoScaleTask

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

struct ContainerServiceProps

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

struct DatabaseConfig

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.

struct DatabaseProps

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

struct KeyCloakProps

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