Keyboard Time: 20 mins, Automation Wait Time: 20 mins
Scenarios: Instructor-Led, Self-Paced
Create an group for the classroom level (even if self-paced).
Create an inexpensive, but scalable runner fleet for the class to avoid delays due to shared runner capacity or access.
Do so very quickly by leveraging the GitLab HA Scaling Runner Vending Machine for AWS EC2 ASG.
Not a Target: Learning the detailed ins and outs of deploying GitLab Runners.
Scenarios: Instructor-Led, Self-Paced
IMPORTANT
- If you are operating on gitlab.com SaaS and have a paid subscription, do this within the licensed group structure.
- If you are operating on gitlab.com SaaS and have a free user, do this at the root of the site where an Ultimate trial can be enabled with a credit card.
- Perform this step even if you are doing this self-paced for just yourself.
- While a runner is not needed just to deploy a GitOps mode application to a cluster, a runner is needed to build the application container in the application project.
While in an appropriate top level group, near the top right of the page, Click New subgroup (button)
Name the group with your gitlab classroom name so that it will be unique, easy to remember and easy for others to identify.
From here on in the exericses this will be referred to as ‘classgroup’
Click Public.
Click Create Group.
Record: ‘classgroup’ = ___________________________________________________________
classgroup
with this actual group name.If this group is a new namespace on GitLab.com SaaS (group at the root), enable the Ultimate trial by:
Keyboard Time: 5 mins, Automation Wait Time: 20 mins
Scenarios: Instructor-Led, Self-Paced
Guides Through: GitLab HA Scaling Runner Vending Machine for AWS EC2 ASG
In ‘classgroup’, Click CI/CD > Runners
Near the top right, Click Register a group runner (button)
Next to the ‘Registration token’, Click [the Clipboard Icon]
While logged into the AWS Account where your EKS cluster is deployed, Click this link to deploy the runner to us-east-2 (when us-east-1 may be near account quota limits on any resources) or Click this link to deploy the runner to us-east-1 (required for AWS “Event Engine” provisioned accounts)
If you were not logged into an AWS account you will be prompted to do so.
In the upper right of the AWS CloudFormation console, be sure the region selector is set to what you want - Select US East (Ohio) - us-east-2 to match the region of the EKS cluster (if you used a default cluster deployment).
Under ‘GitLab Instance URL’ ensure the correct instance URL is specified It is simply your GitLab Instance URL with no additional pathing. (it must be contactable on port 443 from the AWS account you are deploying the runner to)
Under ‘One or more runner Registration tokens from the target instance’ Paste [the token in your clipboard]
For ‘‘’The number of instances that should be configured. Generally 1 for warm HA and 2 for hot HA’ use a number equivalent to 1 runner for every 5 participants. For example, for 1-5 participants use “1”, for 5-10 participants use “2”
Near the bottom Check both I acknowledge that AWS CloudFormation might create IAM resources with custom names. and I acknowledge that AWS CloudFormation might require the following capability: CAPABILITY_AUTO_EXPAND
Click Create stack (button)
Wait for the stack to complete successfully.
In GitLab, in ‘classgroup’, Click CI/CD > Runners (Or refresh the page if already there) and you should now see a runner listed for the group.
From the left navigation Click Settings > CI/CD (this is a different location than CI/CD > Runners)
To the right of ‘Runners’ Click Expand
Under ‘Enable shared runners for this group’ ensure the toggle button is OFF (default is ON)
Scenarios: Instructor-Led
While in ‘classgroup’, Click Group information > Members
Near the upper right of the page, Click Invite members (button)
For each member start typing their GitLab user name or the email it is registered under and select it.
For ‘Select a role’ Select Maintainer
Click Invite
You can return to this Invite page as many times as needed to get everyone added.