Use CDK fo Terraform to create gitlab runner, and use gitlab runner to help you execute your Gitlab Pipeline Job.
GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab. (source repo)
- Instance Manager Group
- Auto Register Gitlab Runner
- Auto Unregister Gitlab Runner (when destroy and shutdown)
- Support preemptible
mkdir demo
cd demo
cdktf init --template typescript --local
yarn add cdktf-gitlab-runner
or
npm i cdktf-gitlab-runner
import * as gcp from '@cdktf/provider-google';
import * as cdktf from 'cdktf';
import { Construct } from 'constructs';
import { GitlabRunnerAutoscaling } from './index';
export class IntegDefaultStack extends cdktf.TerraformStack {
constructor(scope: Construct, id: string) {
super(scope, id);
const local = 'asia-east1';
const projectId = `${process.env.PROJECT_ID}`;
const provider = new gcp.GoogleProvider(this, 'GoogleAuth', {
region: local,
zone: local+'-c',
project: projectId,
});
new GitlabRunnerAutoscaling(this, 'GitlabRunnerAutoscaling', {
gitlabToken: `${process.env.GITLAB_TOKEN}`,
provider,
});
}
}
const app = new cdktf.App();
new IntegDefaultStack(app, 'gitlab-runner');
app.synth();