Skip to content
GitLab
Next
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 52,764
    • Issues 52,764
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,552
    • Merge requests 1,552
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #30151
Closed
Open
Issue created Jul 16, 2019 by Grzegorz Bizon@grzesiek💡Maintainer

Automatic domain for serverless functions

Description

Currently, whenever someone installs Knative to make use of our Serverless offering, they need to assign a custom domain before hitting "Install" button to start Knative app installation process.

This is not optimal because one needs to leave GitLab to configure DNS zone A record once ingress gateway gets a public IP assigned.

Problems:

  1. One needs to have a domain / subdomain that they control.
  2. It is required to configure the domain manually after the public IP address gets assigned.

Proposal

Follow the same pattern as base domain:

Screen_Shot_2019-09-30_at_3.09.21_PM

  • Add setting to admin area and allow user to set a domain. For example: *.serverless.gitlab.io
  • Auto populate the Knative field on the cluster detail view (instance, group, or project level). For example: root-example-project.serverless.gitlab.io
  • Allow the user to change the domain prior to installing Knative.

There is no need for an additional settings or checkbox to toggle between the default or custom domain.

previous proposal Make it possible to define a default domain in the instance and group settings.

Example:

  1. On gitlab.com we go to Admin -> Serverless Settings.
  2. We enter default domain "serverless.gitlab.io"
  3. A user wants to create a new Knative app, sees checkbox "use default domain *.serverless.gitlab.io"
  4. If they check this checkbox it is not necessary to provide a custom domain.
  5. Once Knative gets installed and a public IP address gets assigned `*.namespace.serverless.gitlab.io" works out-of-the-box.

image

Technical details

We can resolve this technical problem using two different directions.

  1. After the cluster ingress gateway gets the IP address assigned we configure the subdomain using domain provider's API.
  2. We create a serverless access daemon that would behave in a similar way Workhorse / GitLab Pages do. It would be a proxy and all the serverless traffic would go through this app. This allows us to support more features like enforcing SSL and perhaps terminating SSL too, but requires more work.

/cc @danielgruesso @DylanGriffith

Edited Oct 11, 2019 by Taurie Davis
Assignee
Assign to
Time tracking