Skip to content

Commit 34fdcdd

Browse files
axilleasbalasankarc
andcommitted
Merge branch 'docs-notes-about-amis' into 'master'
Add doc about AMIs and Marketplace listings See merge request https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7214 Merged-by: Achilleas Pipinellis <[email protected]> Approved-by: João Alexandre Cunha <[email protected]> Reviewed-by: Balasankar 'Balu' C <[email protected]> Co-authored-by: Balasankar "Balu" C <[email protected]>
2 parents 3ff2e66 + 338c0f6 commit 34fdcdd

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
stage: Systems
3+
group: Distribution
4+
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
5+
---
6+
7+
# Amazon Machine Images (AMIs) and Marketplace Listings
8+
9+
GitLab caters to the AWS ecosystem via the following methods
10+
11+
1. Community AMIs
12+
1. [GitLab CE](https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#Images:visibility=public-images;ownerAlias=782774275127;search=GitLab%20CE;sort=desc:name) - amd64 and arm64
13+
1. [GitLab EE](https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#Images:visibility=public-images;ownerAlias=782774275127;search=GitLab%20EE;sort=desc:name) (Unlicensed) - amd64 and arm64
14+
15+
1. [AWS Marketplace listing](https://aws.amazon.com/marketplace/seller-profile?id=9657c703-ca56-4b54-b029-9ded0fadd970)
16+
1. [GitLab CE](https://aws.amazon.com/marketplace/pp/prodview-w6ykryurkesjq?sr=0-3&ref_=beagle&applicationId=AWSMPContessa)
17+
1. [GitLab EE Premium (5 seat pre-licensed)](https://aws.amazon.com/marketplace/pp/prodview-amk6tacbois2k?sr=0-1&ref_=beagle&applicationId=AWSMPContessa)
18+
1. [GitLab EE Ultimate (5 seat pre-licensed)](https://aws.amazon.com/marketplace/pp/prodview-g6ktjmpuc33zk?sr=0-2&ref_=beagle&applicationId=AWSMPContessa)
19+
20+
## Building the AMIs
21+
22+
AMIs are built as part of regular release process in the tag pipelines that run
23+
in the [Build mirror](https://dev.gitlab.org/gitlab/omnibus-gitlab), and use the
24+
Ubuntu 22.04 packages under the hood. They are built using [`packer`](https://www.packer.io/)
25+
with their [`Amazon EBS`](https://developer.hashicorp.com/packer/integrations/hashicorp/amazon/latest/components/builder/ebs)
26+
builder. Each Community AMI listed above has a corresponding packer
27+
configuration file to specify the build and AMI attributes and an update script
28+
to install the GitLab package and configure the AMI's startup behaviors. The
29+
update script downloads the Ubuntu 22.04 package and installs it on the VM. It
30+
also installs a [`cloud-init`](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#amazon-linux-cloud-init)
31+
script which automatically configures (with a `gitlab-ctl reconfigure` run) the
32+
GitLab instance to work with the VM's external IP address on startup.
33+
34+
In addition to these public Community AMIs, two private AMIs are also built -
35+
for GitLab EE Premium and Ultimate tiers, which ships 5-seat licenses of the
36+
respective GitLab tier. This license file gets used as part of the initial
37+
`gitlab-ctl reconfigure` run on VM startup. These AMIs are backing our AWS
38+
Marketplace listings.
39+
40+
## Releasing to AWS Marketplace
41+
42+
In addition to building the AMIs during the release process, Omnibus GitLab
43+
tag pipeline also publishes the new version of the respective AWS Marketplace
44+
listing. The private AMIs mentioned above are used to back these listings. As
45+
part of release pipeline, we submit a changeset to publish the new version.
46+
Unlike AMI creation, this process is not immediate and we need to manually check
47+
the status of the changeset periodically to ensure it got applied to the
48+
listings, preferably after 24 hours.
49+
50+
## Common release blocker events
51+
52+
The following events has happen often in the past, and has caused the release
53+
pipeline to fail, and needs immediate attention:
54+
55+
1. Exhausting quota on Public AMIs - When builds fail due to quota exhaustion,
56+
as an immediate fix, request a quota increase. Then discuss with
57+
Alliances/Product on de-registering or making private AMIs of some of the
58+
older versions.
59+
Also check [issue discussing retention policy of AMIs](https://gitlab.com/gitlab-org/distribution/team-tasks/-/issues/1149).
60+
61+
1. AWS Marketplace version limit - AWS Marketplace has a 100 versions limit for
62+
each product, exhausting which we can't publish newer versions. However, they
63+
usually inform us (via email to a specific email account which is forwarded
64+
to selected Distribution Build team and Alliance team members) which is when
65+
we are nearing that limit, and we work with Alliances/Product to unlist some
66+
of the older versions.
67+
68+
1. AWS Marketplace listing blocked by a pending changeset - When this happens,
69+
the changeset needs to be manually cancelled, and the Marketplace release job
70+
in the release pipeline needs to be retried. This requires someone with
71+
Maintainer level access to the Build mirror of `omnibus-gitlab` project.

doc/development/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
2727
- [Version format of packages, Docker images and other artifacts](package_version_format.md)
2828
- [Handling broken master pipelines](broken_master.md)
2929
- [Handling vulnerabilities](vulnerabilities.md)
30+
31+
## Technical notes
32+
33+
- [AWS AMis and Marketplace Listing](aws_amis_and_marketplace_listings.md)

0 commit comments

Comments
 (0)