High level CDK construct to provision GitLab integrations with AWS
import { Provider, FargateJobExecutor, FargateRunner, JobExecutorImage } from 'cdk-gitlab';
const provider = new Provider(stack, 'GitlabProvider', { vpc });
// create a Amazon EKS cluster
provider.createFargateEksCluster(stack, 'GitlabEksCluster', {
clusterOptions: {
vpc,
version: eks.KubernetesVersion.V1_19,
},
});
// create a default fargate runner with its job executor
provider.createFargateRunner();
// alternatively, create the runner and the executor indivicually.
// first, create the executor
const executor = new FargateJobExecutor(stack, 'JobExecutor', {
image: JobExecutorImage.DEBIAN,
});
// second, create the runner with the task definition of the executor
new FargateRunner(stack, 'FargateRunner', {
vpc,
executor,
});
// TBD - create Amazon EC2 runner for the GitLab
provider.createEc2Runner(...);
});On deployment with createFargateRunner(), the Fargate Runner will be provisioned in Amazon ECS with AWS Fargate and Amazon ECS Capacity Providers. By default, the FARGATE and FARGATE_SPOT capacity providers are available for the Amazon ECS cluster and the runner and job executor will run on FARGATE_SPOT. You can specify your custom clusterDefaultCapacityProviderStrategy and serviceDefaultCapacityProviderStrategy properties from the FargateRunner construct for different capacity provider strategies.
cdk deploy -c GITLAB_REGISTRATION_TOKEN=<TOKEN>