cdk-gitlab-runner


Namecdk-gitlab-runner JSON
Version 1.69.22 PyPI version JSON
download
home_pagehttps://github.com/guan840912/cdk-gitlab-runner.git
SummaryA Gitlab Runner JSII construct lib for AWS CDK
upload_time2020-10-29 06:25:59
maintainer
docs_urlNone
authorNeil Kuan<guan840912@gmail.com>
requires_python>=3.6
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![NPM version](https://badge.fury.io/js/cdk-gitlab-runner.svg)](https://badge.fury.io/js/cdk-gitlab-runner)
[![PyPI version](https://badge.fury.io/py/cdk-gitlab-runner.svg)](https://badge.fury.io/py/cdk-gitlab-runner)
![Release](https://github.com/guan840912/cdk-gitlab-runner/workflows/Release/badge.svg)

![Downloads](https://img.shields.io/badge/-DOWNLOADS:-brightgreen?color=gray)
![npm](https://img.shields.io/npm/dt/cdk-gitlab-runner?label=npm&color=orange)
![PyPI](https://img.shields.io/pypi/dm/cdk-gitlab-runner?label=pypi&color=blue)

![](https://img.shields.io/badge/iam_role_self-enable-green=?style=plastic&logo=appveyor)
![](https://img.shields.io/badge/vpc_self-enable-green=?style=plastic&logo=appveyor)
![](https://img.shields.io/badge/gitlab_url-customize-green=?style=plastic&logo=appveyor)
![](https://img.shields.io/badge/spotfleet-runner-green=?style=plastic&logo=appveyor)

# Welcome to `cdk-gitlab-runner`

This repository template helps you create gitlab runner on your aws account via AWS CDK one line.

## Note

### Default will help you generate below services:

* VPC

  * Public Subnet (2)
* EC2 (1 T3.micro)

## Before start you need gitlab runner token in your `gitlab project` or `gitlab group`

### In Group

Group > Settings > CI/CD
![group](image/group_runner_page.png)

### In Group

Project > Settings > CI/CD > Runners
![project](image/project_runner_page.png)

## Usage

Replace your gitlab runner token in `$GITLABTOKEN`

### Instance Type

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk_gitlab_runner import GitlabContainerRunner

# If want change instance type to t3.large .
GitlabContainerRunner(self, "runner-instance", gitlabtoken="$GITLABTOKEN", ec2type="t3.large")
# OR
# Just create a gitlab runner , by default instance type is t3.micro .
from cdk_gitlab_runner import GitlabContainerRunner

GitlabContainerRunner(self, "runner-instance", gitlabtoken="$GITLABTOKEN")
```

### Gitlab Server Customize Url .

If you want change what you want tag name .

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
# If you want change  what  your self Gitlab Server Url .
from cdk_gitlab_runner import GitlabContainerRunner

GitlabContainerRunner(self, "runner-instance-change-tag",
    gitlabtoken="$GITLABTOKEN",
    gitlaburl="https://gitlab.my.com/"
)
```

### Tags

If you want change what you want tag name .

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
# If you want change  what  you want tag name .
from cdk_gitlab_runner import GitlabContainerRunner

GitlabContainerRunner(self, "runner-instance-change-tag",
    gitlabtoken="$GITLABTOKEN",
    tag1="aa",
    tag2="bb",
    tag3="cc"
)
```

### IAM Policy

If you want add runner other IAM Policy like s3-readonly-access.

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
# If you want add runner other IAM Policy like s3-readonly-access.
from cdk_gitlab_runner import GitlabContainerRunner
from aws_cdk.aws_iam import ManagedPolicy

runner = GitlabContainerRunner(self, "runner-instance-add-policy",
    gitlabtoken="$GITLABTOKEN",
    tag1="aa",
    tag2="bb",
    tag3="cc"
)
runner.runner_role.add_managed_policy(
    ManagedPolicy.from_aws_managed_policy_name("AmazonS3ReadOnlyAccess"))
```

### Security Group

If you want add runner other SG Ingress .

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
# If you want add runner other SG Ingress .
from cdk_gitlab_runner import GitlabContainerRunner
from aws_cdk.aws_ec2 import Port, Peer

runner = GitlabContainerRunner(self, "runner-add-SG-ingress",
    gitlabtoken="GITLABTOKEN",
    tag1="aa",
    tag2="bb",
    tag3="cc"
)

# you can add ingress in your runner SG .
runner.default_runner_sG.connections.allow_from(
    Peer.ipv4("0.0.0.0/0"),
    Port.tcp(80))
```

### Use self VPC

> 2020/06/27 , you can use your self exist VPC or new VPC , but please check your `vpc public Subnet` Auto-assign public IPv4 address must be Yes ,or `vpc private Subnet` route table associated `nat gateway` .

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk_gitlab_runner import GitlabContainerRunner
from aws_cdk.aws_ec2 import Port, Peer, Vpc, SubnetType
from aws_cdk.aws_iam import ManagedPolicy

newvpc = Vpc(stack, "VPC",
    cidr="10.1.0.0/16",
    max_azs=2,
    subnet_configuration=[SubnetConfiguration(
        cidr_mask=26,
        name="RunnerVPC",
        subnet_type=SubnetType.PUBLIC
    )
    ],
    nat_gateways=0
)

runner = GitlabContainerRunner(self, "testing",
    gitlabtoken="$GITLABTOKEN",
    ec2type="t3.small",
    selfvpc=newvpc
)
```

### Use your self exist role

> 2020/06/27 , you can use your self exist role assign to runner

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk_gitlab_runner import GitlabContainerRunner
from aws_cdk.aws_ec2 import Port, Peer
from aws_cdk.aws_iam import ManagedPolicy, Role, ServicePrincipal

role = Role(self, "runner-role",
    assumed_by=ServicePrincipal("ec2.amazonaws.com"),
    description="For Gitlab EC2 Runner Test Role",
    role_name="TestRole"
)

runner = GitlabContainerRunner(stack, "testing",
    gitlabtoken="$GITLAB_TOKEN",
    ec2iamrole=role
)
runner.runner_role.add_managed_policy(
    ManagedPolicy.from_aws_managed_policy_name("AmazonS3ReadOnlyAccess"))
```

### Custom Gitlab Runner EBS szie

> 2020/08/22 , you can change you want ebs size.

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk_gitlab_runner import GitlabContainerRunner

GitlabContainerRunner(stack, "testing",
    gitlabtoken="$GITLAB_TOKEN",
    ebs_size=50
)
```

### Support Spotfleet Gitlab Runner

> 2020/08/27 , you can use spotfleet instance be your gitlab runner,
> after create spotfleet instance will auto output instance id .thank [@pahud](https://github.com/pahud/cdk-spot-one) again ~~~

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk_gitlab_runner import GitlabContainerRunner, BlockDuration

runner = GitlabContainerRunner(stack, "testing",
    gitlabtoken="GITLAB_TOKEN",
    ec2type="t3.large",
    block_duration=BlockDuration.ONE_HOUR,
    spot_fleet=True
)
# configure the expiration after 1 hours
runner.expire_after(Duration.hours(1))
```

# Note

![](https://img.shields.io/badge/version-1.47.1-green=?style=plastic&logo=appveyor) vs ![](https://img.shields.io/badge/version-1.49.1-green=?style=plastic&logo=appveyor)

> About change instance type

This is before ![](https://img.shields.io/badge/version-1.47.1-green=?style) ( included ![](https://img.shields.io/badge/version-1.47.1-green=?style) )

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from aws_cdk.aws_ec2 import InstanceType, InstanceClass, InstanceSize
from cdk_gitlab_runner import GitlabContainerRunner

# If want change instance type to t3.large .
GitlabContainerRunner(self, "runner-instance",
    gitlabtoken="$GITLABTOKEN",
    ec2type=InstanceType.of(InstanceClass.T3, InstanceSize.LARGE)
)
```

This is ![](https://img.shields.io/badge/version-1.49.1-green=?style)

```python
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk_gitlab_runner import GitlabContainerRunner

# If want change instance type to t3.large .
GitlabContainerRunner(self, "runner-instance",
    gitlabtoken="$GITLABTOKEN",
    ec2type="t3.large"
)
```

## Wait about 6 mins , If success you will see your runner in that page .

![runner](image/group_runner2.png)

#### you can use tag `gitlab` , `runner` , `awscdk` ,

## Example *`gitlab-ci.yaml`*

[gitlab docs see more ...](https://docs.gitlab.com/ee/ci/yaml/README.html)

```yaml
dockerjob:
  image: docker:18.09-dind
  variables:
  tags:
    - runner
    - awscdk
    - gitlab
  variables:
    DOCKER_TLS_CERTDIR: ""
  before_script:
    - docker info
  script:
    - docker info;
    - echo 'test 123';
    - echo 'hello world 1228'
```

### If your want to debug you can go to aws console

# `In your runner region !!!`

## AWS Systems Manager > Session Manager > Start a session

![system manager](image/session.png)

#### click your `runner` and click `start session`

#### in the brower console in put `bash`

```bash
# become to root
sudo -i

# list runner container .
root# docker ps -a

# modify gitlab-runner/config.toml

root# cd /home/ec2-user/.gitlab-runner/ && ls
config.toml

```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/guan840912/cdk-gitlab-runner.git",
    "name": "cdk-gitlab-runner",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Neil Kuan<guan840912@gmail.com>",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/60/e7/8de19aafa1662a58380f0fd3d0318d06b8b244c8e543570e8422da862c78/cdk-gitlab-runner-1.69.22.tar.gz",
    "platform": "",
    "description": "[![NPM version](https://badge.fury.io/js/cdk-gitlab-runner.svg)](https://badge.fury.io/js/cdk-gitlab-runner)\n[![PyPI version](https://badge.fury.io/py/cdk-gitlab-runner.svg)](https://badge.fury.io/py/cdk-gitlab-runner)\n![Release](https://github.com/guan840912/cdk-gitlab-runner/workflows/Release/badge.svg)\n\n![Downloads](https://img.shields.io/badge/-DOWNLOADS:-brightgreen?color=gray)\n![npm](https://img.shields.io/npm/dt/cdk-gitlab-runner?label=npm&color=orange)\n![PyPI](https://img.shields.io/pypi/dm/cdk-gitlab-runner?label=pypi&color=blue)\n\n![](https://img.shields.io/badge/iam_role_self-enable-green=?style=plastic&logo=appveyor)\n![](https://img.shields.io/badge/vpc_self-enable-green=?style=plastic&logo=appveyor)\n![](https://img.shields.io/badge/gitlab_url-customize-green=?style=plastic&logo=appveyor)\n![](https://img.shields.io/badge/spotfleet-runner-green=?style=plastic&logo=appveyor)\n\n# Welcome to `cdk-gitlab-runner`\n\nThis repository template helps you create gitlab runner on your aws account via AWS CDK one line.\n\n## Note\n\n### Default will help you generate below services:\n\n* VPC\n\n  * Public Subnet (2)\n* EC2 (1 T3.micro)\n\n## Before start you need gitlab runner token in your `gitlab project` or `gitlab group`\n\n### In Group\n\nGroup > Settings > CI/CD\n![group](image/group_runner_page.png)\n\n### In Group\n\nProject > Settings > CI/CD > Runners\n![project](image/project_runner_page.png)\n\n## Usage\n\nReplace your gitlab runner token in `$GITLABTOKEN`\n\n### Instance Type\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\nfrom cdk_gitlab_runner import GitlabContainerRunner\n\n# If want change instance type to t3.large .\nGitlabContainerRunner(self, \"runner-instance\", gitlabtoken=\"$GITLABTOKEN\", ec2type=\"t3.large\")\n# OR\n# Just create a gitlab runner , by default instance type is t3.micro .\nfrom cdk_gitlab_runner import GitlabContainerRunner\n\nGitlabContainerRunner(self, \"runner-instance\", gitlabtoken=\"$GITLABTOKEN\")\n```\n\n### Gitlab Server Customize Url .\n\nIf you want change what you want tag name .\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\n# If you want change  what  your self Gitlab Server Url .\nfrom cdk_gitlab_runner import GitlabContainerRunner\n\nGitlabContainerRunner(self, \"runner-instance-change-tag\",\n    gitlabtoken=\"$GITLABTOKEN\",\n    gitlaburl=\"https://gitlab.my.com/\"\n)\n```\n\n### Tags\n\nIf you want change what you want tag name .\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\n# If you want change  what  you want tag name .\nfrom cdk_gitlab_runner import GitlabContainerRunner\n\nGitlabContainerRunner(self, \"runner-instance-change-tag\",\n    gitlabtoken=\"$GITLABTOKEN\",\n    tag1=\"aa\",\n    tag2=\"bb\",\n    tag3=\"cc\"\n)\n```\n\n### IAM Policy\n\nIf you want add runner other IAM Policy like s3-readonly-access.\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\n# If you want add runner other IAM Policy like s3-readonly-access.\nfrom cdk_gitlab_runner import GitlabContainerRunner\nfrom aws_cdk.aws_iam import ManagedPolicy\n\nrunner = GitlabContainerRunner(self, \"runner-instance-add-policy\",\n    gitlabtoken=\"$GITLABTOKEN\",\n    tag1=\"aa\",\n    tag2=\"bb\",\n    tag3=\"cc\"\n)\nrunner.runner_role.add_managed_policy(\n    ManagedPolicy.from_aws_managed_policy_name(\"AmazonS3ReadOnlyAccess\"))\n```\n\n### Security Group\n\nIf you want add runner other SG Ingress .\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\n# If you want add runner other SG Ingress .\nfrom cdk_gitlab_runner import GitlabContainerRunner\nfrom aws_cdk.aws_ec2 import Port, Peer\n\nrunner = GitlabContainerRunner(self, \"runner-add-SG-ingress\",\n    gitlabtoken=\"GITLABTOKEN\",\n    tag1=\"aa\",\n    tag2=\"bb\",\n    tag3=\"cc\"\n)\n\n# you can add ingress in your runner SG .\nrunner.default_runner_sG.connections.allow_from(\n    Peer.ipv4(\"0.0.0.0/0\"),\n    Port.tcp(80))\n```\n\n### Use self VPC\n\n> 2020/06/27 , you can use your self exist VPC or new VPC , but please check your `vpc public Subnet` Auto-assign public IPv4 address must be Yes ,or `vpc private Subnet` route table associated `nat gateway` .\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\nfrom cdk_gitlab_runner import GitlabContainerRunner\nfrom aws_cdk.aws_ec2 import Port, Peer, Vpc, SubnetType\nfrom aws_cdk.aws_iam import ManagedPolicy\n\nnewvpc = Vpc(stack, \"VPC\",\n    cidr=\"10.1.0.0/16\",\n    max_azs=2,\n    subnet_configuration=[SubnetConfiguration(\n        cidr_mask=26,\n        name=\"RunnerVPC\",\n        subnet_type=SubnetType.PUBLIC\n    )\n    ],\n    nat_gateways=0\n)\n\nrunner = GitlabContainerRunner(self, \"testing\",\n    gitlabtoken=\"$GITLABTOKEN\",\n    ec2type=\"t3.small\",\n    selfvpc=newvpc\n)\n```\n\n### Use your self exist role\n\n> 2020/06/27 , you can use your self exist role assign to runner\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\nfrom cdk_gitlab_runner import GitlabContainerRunner\nfrom aws_cdk.aws_ec2 import Port, Peer\nfrom aws_cdk.aws_iam import ManagedPolicy, Role, ServicePrincipal\n\nrole = Role(self, \"runner-role\",\n    assumed_by=ServicePrincipal(\"ec2.amazonaws.com\"),\n    description=\"For Gitlab EC2 Runner Test Role\",\n    role_name=\"TestRole\"\n)\n\nrunner = GitlabContainerRunner(stack, \"testing\",\n    gitlabtoken=\"$GITLAB_TOKEN\",\n    ec2iamrole=role\n)\nrunner.runner_role.add_managed_policy(\n    ManagedPolicy.from_aws_managed_policy_name(\"AmazonS3ReadOnlyAccess\"))\n```\n\n### Custom Gitlab Runner EBS szie\n\n> 2020/08/22 , you can change you want ebs size.\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\nfrom cdk_gitlab_runner import GitlabContainerRunner\n\nGitlabContainerRunner(stack, \"testing\",\n    gitlabtoken=\"$GITLAB_TOKEN\",\n    ebs_size=50\n)\n```\n\n### Support Spotfleet Gitlab Runner\n\n> 2020/08/27 , you can use spotfleet instance be your gitlab runner,\n> after create spotfleet instance will auto output instance id .thank [@pahud](https://github.com/pahud/cdk-spot-one) again ~~~\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\nfrom cdk_gitlab_runner import GitlabContainerRunner, BlockDuration\n\nrunner = GitlabContainerRunner(stack, \"testing\",\n    gitlabtoken=\"GITLAB_TOKEN\",\n    ec2type=\"t3.large\",\n    block_duration=BlockDuration.ONE_HOUR,\n    spot_fleet=True\n)\n# configure the expiration after 1 hours\nrunner.expire_after(Duration.hours(1))\n```\n\n# Note\n\n![](https://img.shields.io/badge/version-1.47.1-green=?style=plastic&logo=appveyor) vs ![](https://img.shields.io/badge/version-1.49.1-green=?style=plastic&logo=appveyor)\n\n> About change instance type\n\nThis is before ![](https://img.shields.io/badge/version-1.47.1-green=?style) ( included ![](https://img.shields.io/badge/version-1.47.1-green=?style) )\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\nfrom aws_cdk.aws_ec2 import InstanceType, InstanceClass, InstanceSize\nfrom cdk_gitlab_runner import GitlabContainerRunner\n\n# If want change instance type to t3.large .\nGitlabContainerRunner(self, \"runner-instance\",\n    gitlabtoken=\"$GITLABTOKEN\",\n    ec2type=InstanceType.of(InstanceClass.T3, InstanceSize.LARGE)\n)\n```\n\nThis is ![](https://img.shields.io/badge/version-1.49.1-green=?style)\n\n```python\n# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826\nfrom cdk_gitlab_runner import GitlabContainerRunner\n\n# If want change instance type to t3.large .\nGitlabContainerRunner(self, \"runner-instance\",\n    gitlabtoken=\"$GITLABTOKEN\",\n    ec2type=\"t3.large\"\n)\n```\n\n## Wait about 6 mins , If success you will see your runner in that page .\n\n![runner](image/group_runner2.png)\n\n#### you can use tag `gitlab` , `runner` , `awscdk` ,\n\n## Example *`gitlab-ci.yaml`*\n\n[gitlab docs see more ...](https://docs.gitlab.com/ee/ci/yaml/README.html)\n\n```yaml\ndockerjob:\n  image: docker:18.09-dind\n  variables:\n  tags:\n    - runner\n    - awscdk\n    - gitlab\n  variables:\n    DOCKER_TLS_CERTDIR: \"\"\n  before_script:\n    - docker info\n  script:\n    - docker info;\n    - echo 'test 123';\n    - echo 'hello world 1228'\n```\n\n### If your want to debug you can go to aws console\n\n# `In your runner region !!!`\n\n## AWS Systems Manager > Session Manager > Start a session\n\n![system manager](image/session.png)\n\n#### click your `runner` and click `start session`\n\n#### in the brower console in put `bash`\n\n```bash\n# become to root\nsudo -i\n\n# list runner container .\nroot# docker ps -a\n\n# modify gitlab-runner/config.toml\n\nroot# cd /home/ec2-user/.gitlab-runner/ && ls\nconfig.toml\n\n```\n\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A Gitlab Runner JSII construct lib for AWS CDK",
    "version": "1.69.22",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "b83b4cacde15c6b709ec81d8d7e85b07",
                "sha256": "a4e16eab2d09972ba0dbacb22009aa6850075174f9208a08a48fba02cabb9ebb"
            },
            "downloads": -1,
            "filename": "cdk_gitlab_runner-1.69.22-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b83b4cacde15c6b709ec81d8d7e85b07",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 42124,
            "upload_time": "2020-10-29T06:25:57",
            "upload_time_iso_8601": "2020-10-29T06:25:57.894176Z",
            "url": "https://files.pythonhosted.org/packages/b3/fa/7aebabdfb079bda98203c096c34a626a302538c0167a6d6d2295e41e5a70/cdk_gitlab_runner-1.69.22-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "2d9d83e0bf6d588e36aaffadbf3d7b85",
                "sha256": "a2198f96b746db0798b3e9e6fe9d80970a69e88054b99807856f911d698f5530"
            },
            "downloads": -1,
            "filename": "cdk-gitlab-runner-1.69.22.tar.gz",
            "has_sig": false,
            "md5_digest": "2d9d83e0bf6d588e36aaffadbf3d7b85",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 44354,
            "upload_time": "2020-10-29T06:25:59",
            "upload_time_iso_8601": "2020-10-29T06:25:59.163862Z",
            "url": "https://files.pythonhosted.org/packages/60/e7/8de19aafa1662a58380f0fd3d0318d06b8b244c8e543570e8422da862c78/cdk-gitlab-runner-1.69.22.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2020-10-29 06:25:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": null,
    "github_project": "guan840912",
    "error": "Could not fetch GitHub repository",
    "lcname": "cdk-gitlab-runner"
}
        
Elapsed time: 0.16877s