us-east-1
us-east-2
us-west-2
ap-northeast-1
ap-southeast-2
eu-west-1
eu-west-2
eu-west-3
eu-central-1
sa-east-1
Service | Name | Value | Reasoning |
---|---|---|---|
Amazon Elastic Compute Cloud (Amazon EC2) | EC2-VPC Elastic IPs | 20 | Gitpod requires 3 IP addresses for each load balancer (Gitpod has 2 load balancers, one for meta and one for the workspace cluster). Additionally, 3 IPs are needed for each NAT gateway (Gitpod has 3 VPCs, so 3x). Therefore, at a minimum, 15 IPs are needed. The additional 5 act as a buffer in case a new load balancer needs to be provisioned and runs in parallel to the old one, ensuring a smooth transition. For more information, please see Architecture. |
Amazon Elastic Compute Cloud (Amazon EC2) | Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) Instances | 256 | This value depends on the number of concurrent developers using the instance. 256 the minimum recommended setting and is suitable for proof-of-value trials. Consult with your engineer on an appropriate setting for your expected usage levels. |
AWS Lambda | Concurrent Executions | 1024 | To ensure Gitpod can install and operate properly, the default concurrent execution quota should be increased to 1024. Increasing the quota to 1024 guarantees that Gitpod will function properly. |
Amazon Virtual Private Cloud (Amazon VPC) | VPCs per Region | 4 | Enterprise requires four VPCs. One is the default VPC that comes pre-installed in new accounts. The Enterprise platform runs in a second VPC. The other two VPCs are reserved for upcoming feature enhancements. |
Click to view screenshot: Elastic IPs
Click to view screenshot: Lambdas
eu-central-1
. For example, this could be restricted by SCPs such as a Region deny SCP. To roll out updates to the application, an AWS Lambda function pulls several configurations from a known S3 bucket owned by Gitpod. This bucket is hosted in the Enterprise control plane located in the eu-central-1
region.
Networking Modes Flowchart
All Private Networking Mode
Subdomain
of your Gitpod installation. The full domain will be <subdomain>.gitpod.cloud
unless a custom domain is used (see below).
Note on compliance and privacy
AWS account ID
of the AWS account to be used for Gitpod.
AWS region
where Gitpod will be installed. See above for available regions.
Relay CIDR range
: The small part of the Enterprise VPC that needs to be routable from your network. This is called the relay subnet and it attaches to your Transit Gateway (see below). See Networking and Data flows for more details and a networking diagram.
Please consider the following points when choosing this range
Relay CIDR range
must be /25
and not in the range 100.70.0.0/10
(the parent
range used by Gitpod).Relay CIDR range
For example, your source code repository, SSO provider, or
package repositories.Relay CIDR range
must be routable from your source code
repository (SCM) server for
Prebuilds to
work. Prebuilds are powered by webhooks, so Gitpod must be able
to get notifications of changes to your code repos to trigger
prebuilds.CIDR range of your network
or the IP address space used by your company network that you want workspaces to be able to route to. At the very least, provide the relevant ranges that you want Gitpod to be able to interact with. This helps Gitpod ensure there are no possible IP conflicts with CIDR ranges used internally in the Gitpod instance (100.70.0.0/16, part of CGNAT range). Note that this internal Gitpod range does not need to be routable from your network.
transitGatewayID
of your Transit Gateway. Network traffic to your internal resources will be routed through a new transit gateway attachment. Enterprise control plane traffic does not route through the transit gateway, it is reserved for your internal traffic. See Networking and Data flows for more information.
Note on auto propagation
Expose public services?
: This optional feature may be enabled to expose webhooks and Identity Provider (IDP) services on public endpoints. The added API gateway does not expose your entire instance to the public Internet. This can be helpful for connecting to OIDC providers such as Okta, Azure AD. This option also makes it easy for developers to connect to your instance without having to route through a VPN or transit gateway.Mixed with Private Ingress Networking Mode
Subdomain
of your Gitpod installation. The full domain will be <subdomain>.gitpod.cloud
unless a custom domain is used (see below).Note on compliance and privacy
AWS account ID
of the AWS account to be used for Gitpod.AWS region
where Gitpod will be installed. See above for available regions.Relay CIDR range
: The small part of the Enterprise VPC that needs to be routable from your network. This is called the relay subnet and it attaches to your Transit Gateway (see below). See Networking and Data flows for more details and a networking diagram.Please consider the following points when choosing this range
Relay CIDR range
must be
/25
and not in the range 100.70.0.0/10
(the parent range used by
Gitpod).Relay CIDR range
For example, your source code repository, SSO provider, or package
repositories.Relay CIDR range
must be routable from your source code
repository (SCM) server for
Prebuilds to work.
Prebuilds are powered by webhooks, so Gitpod must be able to get
notifications of changes to your code repos to trigger prebuilds.CIDR range of your network
or the IP address space used by your company network that you want workspaces to be able to route to. It is essential to provide the relevant ranges that you want Gitpod to be able to interact with. At a minimum, this should include the CIDR range of the VPC where the transit gateway associated with Gitpod is deployed, as this ensures Gitpod can identify the route back to the origin of its connections. Providing these CIDR ranges also helps Gitpod ensure there are no possible IP conflicts with CIDR ranges used internally in the Gitpod instance (100.70.0.0/16, part of CGNAT range). Note that this internal Gitpod range does not need to be routable from your network.
transitGatewayID
of your Transit Gateway. Network traffic to your internal resources will be routed through a new transit gateway attachment. Enterprise control plane traffic does not route through the transit gateway, it is reserved for your internal traffic. See Networking and Data flows for more information.
Note on auto propagation
Expose public services?
: This optional feature may be enabled to expose webhooks and Identity Provider (IDP) services on public endpoints. The added API gateway does not expose your entire instance to the public Internet. This can be helpful for connecting to OIDC providers such as Okta, Azure AD. This option also makes it easy for developers to connect to your instance without having to route through a VPN or transit gateway.Mixed with Public Ingress Networking Mode
Subdomain
of your Gitpod installation. The full domain will be <subdomain>.gitpod.cloud
unless a custom domain is used (see below).Note on compliance and privacy
AWS account ID
of the AWS account to be used for Gitpod.AWS region
where Gitpod will be installed. See above for available regions.Relay CIDR range
: The small part of the Enterprise VPC that needs to be routable from your network. This is called the relay subnet and it attaches to your Transit Gateway (see below). See Networking and Data flows for more details and a networking diagram.Please consider the following points when choosing this range
Relay CIDR range
must be
/25
and not in the range 100.70.0.0/10
(the parent range used by
Gitpod).Relay CIDR range
For example, your source code repository, SSO provider, or package
repositories.Relay CIDR range
must be routable from your source code
repository (SCM) server for
Prebuilds to work.
Prebuilds are powered by webhooks, so Gitpod must be able to get
notifications of changes to your code repos to trigger prebuilds.CIDR range of your network
or the IP address space used by your company network that you want workspaces to be able to route to. At the very least, provide the relevant ranges that you want Gitpod to be able to interact with. This helps Gitpod ensure there are no possible IP conflicts with CIDR ranges used internally in the Gitpod instance (100.70.0.0/16, part of CGNAT range). Note that this internal Gitpod range does not need to be routable from your network.
transitGatewayID
of your Transit Gateway. Network traffic to your internal resources will be routed through a new transit gateway attachment. Enterprise control plane traffic does not route through the transit gateway, it is reserved for your internal traffic. See Networking and Data flows for more information.
Note on auto propagation
All Public Networking Mode
Subdomain
of your Gitpod installation. The full domain will be <subdomain>.gitpod.cloud
unless a custom domain is used (see below).Note on compliance and privacy
AWS account ID
of the AWS account to be used for Gitpod.AWS region
where Gitpod will be installed. See above for available regions.When using an Allowlist
allowlist
of IPs or CIDR ranges that should be allowed to access the instance. Any CIDRs provided in the CIDR range of your network
above are always allowed. Example:
When using a Custom Domain
domainName
that is to be usedARN of the certificate
to be usedWhen using certificates signed by a custom or private Certificate Authority
gitpod-role
Template: This template creates a new IAM role with specific policies attached. These policies grant the minimum permissions necessary to install and run Enterprise in your account.
gitpod-instance
Template: This template installs the infrastructure for Enterprise. The role created by the gitpod-role
template is used to execute this second template.
gitpod-role
template by navigating to the link shared by your Gitpod Account Manager. During the “configure stack options” step, ensure you select the “roll back all the stack resources” option under “Stack failure options”. This will ensure that all resources created by the template are deleted if the template fails to execute.gitpod-instance
template also by navigating to the link shared by your Gitpod Account Manager in the same AWS account. This will create the infrastructure that Enterprise requires.GitpodSetupAndInitialEKSUserAdmin
) as the role used
for permissions. Depending on timing, you may need to manually select the role
using its ARN. Again, select the “roll back all the stack resources” option.Important Message for Transit Gateway Users
Name your organization
Name your organization
Preview in Gitpod Dashboard
Configure Single Sign-On
Configure Single Sign-on
Okta
Create App Integration
Applications - Okta Dashboard
Next
OIDC - Open ID Connect
Web Application
Create App Integration - Okta Dashboard
Gitpod
(or choose your own name)none
none
Specify Okta settings - Okta Dashboard
Client ID
and use it as input in Gitpod setup (see details above under “General instructions”)Client Secret
and use it as input in Gitpod setup (see details above under “General instructions”)Issuer
to your Okta instance, eg: https://amazingco.okta.com/
Configure Client Secrets - Okta Dashboard
Create credentials - Google Cloud Dashboard
OAuth Client Created - Google Cloud Dashboard
https://accounts.google.com
Azure AD
New registration - Azure AD Dashboard
Register Application - Azure AD Dashboard
Create client secret - Azure AD Dashboard
📌 Once the client secret expires, you (nor anyone else in your organization) will be able to log in to Gitpod. You will need to update the SSO configuration (secret) to continue using SSO.
email
, openid
and profile
information
OpenId.email
, OpenId.openid
and Openid.profile
Request API Permissions - Azure AD Dashboard
Configure API Permissions - Azure AD Dashboard
Endpoints - Azure AD Dashboard
OpenID Connect metadata document
.well-known/openid-configuration
segment,
https://login.microsoftonline.com/512571ea-9fc5-494e-a300-625b33c8efa6/v2.0/
AWS Cognito
Congiton User Pool Process
Congito Sing In Requirements
Cognito user pool
as provider typeCongito Security Requirements
Congito Security Requirements
Required Attributes
section, ensure that name is selected:Required Attribute Name
Configure message delivery
Integrate your app
Generate a client secret
in the Client secret section:Required client secret
Required callback url
Cognito
(under Advanced app client
settings) - OAuth 2.0 grant types, select Auth Code Grant
- Under OpenID
Connect Scopes, select OpenID
, Email
, Profile
:Required callback url
Issuer URL
issuer URL
highlighted above into the respective field on the Gitpod SSO setup pageApp Client Data
Client ID
from the Cognito app client page into the respective field on the Gitpod SSO setup pageClient Secret
into the respective field on the Gitpod SSO setup pageAdd an SCM integration for GitHub, GitLab or Bitbucket
GitLab.com
with your Gitpod instance. You will need to enter gitlab.com
as the Provider Host Name
in the New Git Integration Modal if you want to use gitlab.com, contrary to what is described.GitHub.com
with your Gitpod instance. You will need to enter github.com
as the Provider Host Name
in the New Git Integration Modal if you want to use github.com, contrary to what is described.Bitbucket Server
with your Gitpod instance. Select Bitbucket Server
as the Provider Type
in the New Git Integration Modal. For bitbucket.org this requires configuring an “OAuth consumer” on a “workspace”. This is slightly different from the documented Bitbucket Server integration. See gitpod PR #9894 for an example.Git Integrations Preview in Gitpod Dashboard
Click to view FAQ
CIDR range of our network
?CIDR range of our network
is only required when using the mixed or private networking modes.Q. If the Gitpod internal range of 100.70.0.0/16
does not need to be routable from my network, why do we need to specify the CIDR range of our network
? 100.70.0.0/16
range overlaps with my network? gitpod-role
CloudFormation template is used to create a role with the minimum permissions required to install and update Enterprise. This role and its policies are used to install the second Cloudformation template.Q. Can the stack created by gitpod-role
be deleted after executing the <company>-gitpod-template.json
? gitpod-role
should be maintained. The role created is also used when updates are provided to the <company>-gitpod-template.json
template. For more details on infrastructure updates, please see Deployment and Updates.Q. What happens if my Cloudformation stack fails to install?
A. If the stack fails to install, you should delete the stack and try again. There are a few resources that need to be cleaned up manually before you attempt another installation. See Deleting your Gitpod installation for details.Q. What if we want to use a custom domain name?