From 0cae4c5c72f8737004021075659281e974f73570 Mon Sep 17 00:00:00 2001 From: danielgruesso Date: Fri, 9 Nov 2018 15:35:22 -0500 Subject: [PATCH] Initial draft for serverless page --- doc/user/project/clusters/index.md | 11 ++- .../serverless/img/install-knative.png | Bin 0 -> 102861 bytes doc/user/project/clusters/serverless/index.md | 72 ++++++++++++++++++ .../serverless/serverless_ci_yml_template.yml | 25 ++++++ 4 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 doc/user/project/clusters/serverless/img/install-knative.png create mode 100644 doc/user/project/clusters/serverless/index.md create mode 100644 doc/user/project/clusters/serverless/serverless_ci_yml_template.yml diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md index 233ed205790..9b9864abe3a 100644 --- a/doc/user/project/clusters/index.md +++ b/doc/user/project/clusters/index.md @@ -271,7 +271,8 @@ kubectl get svc --namespace=gitlab-managed-apps ingress-nginx-ingress-controller ``` NOTE: **Note:** -For Istio/Knative, the command will be different: +For Istio/Knative, use the following command: + ```bash kubectl get svc --namespace=istio-system knative-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} ' ``` @@ -485,7 +486,13 @@ the deployment variables above, ensuring any pods you create are labelled with ## Read more -- [Connecting and deploying to an Amazon EKS cluster](eks_and_gitlab/index.md) +### Integrating Amazon EKS cluster with GitLab + +- Learn how to [connect and deploy to an Amazon EKS cluster.](eks_and_gitlab/index.md) + +### Serverless + +- [Run serverless workloads on Kubernetes with Knative.](serverless/index.md) [permissions]: ../../permissions.md [ee]: https://about.gitlab.com/pricing/ diff --git a/doc/user/project/clusters/serverless/img/install-knative.png b/doc/user/project/clusters/serverless/img/install-knative.png new file mode 100644 index 0000000000000000000000000000000000000000..dd576a9df3562600457c7382ad51c14bcdb770d4 GIT binary patch literal 102861 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 @Lk{s_a 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 Introduced in GitLab 11.5. + +Run serverless workloads on Kubernetes using [Knative](https://cloud.google.com/knative/). + +## Overview + +Knative extends Kubernetes to provide a set of middleware components that are useful to build modern, source-centric, and container-based applications. Knative brings some significant benefits out of the box through its main components: + +- [Build:](https://github.com/knative/build) Source-to-container build orchestration +- [Eventing:](https://github.com/knative/eventing) Management and delivery of events +- [Serving:](https://github.com/knative/serving) Request-driven compute that can scale to zero + +For more information on Knative, visit the [Knative docs repo](https://github.com/knative/docs). + +## Requirements + +To run Knative on Gitlab, you will need: + +1. **Kubernetes:** An RBAC-enabled Kubernetes cluster is required to deploy Knative. + The simplest way to get started is to add a cluster using [GitLab's GKE integration](https://docs.gitlab.com/ee/user/project/clusters/#adding-and-creating-a-new-gke-cluster-via-gitlab). + GitLab recommends +1. **Helm Tiller:** Helm is a package manager for Kubernetes and is required to install + all the other applications. It is installed in its own pod inside the cluster which + can run the helm CLI in a safe environment. +1. **Domain Name:** Knative will provide its own load balancer using Istio. It will provide an + external IP address for all the applications served by Knative. You will be prompted to enter a + wildcard domain where your applications will be served. Configure your DNS server to use the + external IP address for that domain. +1. **Serverless `gitlab-ci.yml` Template:** GitLab uses the [TriggerMesh CLI](https://github.com/triggermesh/tm), + a serverless resource management utilty to work with knative objects. The `gitlab-ci.yml` template uses it + to build and deploy knative services and functions. [Access the template here](serverless_ci_yml_template.yml). +1. **Docker File:** Knative requires a docker file in order to build your application. It should be included + at the root of your project's repo. + +## Installing Knative via GitLab's Kubernetes integration + +NOTE: **Note:** +Minimum recommended cluster size to run Knative is 3-nodes, 6 vCPUs, and 22.50 GB memory. RBAC must be enabled. + +You may download the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) to get started. + +1. [Add a Kubernetes cluster](https://docs.gitlab.com/ce/user/project/clusters/) and install Helm. + +1. Once Helm has been successfully installed, on the Knative app section, enter the domain to be used with + your application and click "Install". + + ![install-knative](img/install-knative.png) + +1. After the Knative installation has finished, retrieve the Istio Ingress IP address by running the following command: + + ```bash + kubectl get svc --namespace=istio-system knative-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} ' + ``` + +1. The ingress is now available at this address and will route incoming requests to the proper service based on the DNS + name in the request. To support this, a wildcard DNS A record should be created for the desired domain name. + + ![dns entry](img/dns-entry) + +## Deploying the GitLab Runner (optional) + +If the project is on GitLab.com, free shared runners are available and you do not have to deploy one. If a project specific runner is desired, or there are no shared runners, it is easy to deploy one. + +Simply click on the "**Install**" button for the GitLab Runner. It is important to note that the runner deployed is set as privileged, which means it essentially has root access to the underlying machine. This is required to build docker images, and so is on by default. + +## Deploy the application with Knative + +With all the pieces in place, you can simply create a new CI pipeline to deploy the Knative application. Navigate to +**CI/CD >> Pipelines** and click on the "**Run Pipeline"** button on the upper right hand side of the screen. On the +Pipelines page now click "**Create pipeline**". \ No newline at end of file diff --git a/doc/user/project/clusters/serverless/serverless_ci_yml_template.yml b/doc/user/project/clusters/serverless/serverless_ci_yml_template.yml new file mode 100644 index 00000000000..31f68f223ca --- /dev/null +++ b/doc/user/project/clusters/serverless/serverless_ci_yml_template.yml @@ -0,0 +1,25 @@ +stages: + - build + - deploy + +variables: + DOCKER_DRIVER: overlay2 + +build: + stage: build + image: docker:stable-git + services: + - docker:stable-dind + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE" . + - docker push "$CI_REGISTRY_IMAGE" + +deploy: + stage: deploy + image: gcr.io/triggermesh/tm@sha256:e3ee74db94d215bd297738d93577481f3e4db38013326c90d57f873df7ab41d5 + environment: production + script: + - echo "$CI_REGISTRY_IMAGE" + - tm -n "$KUBE_NAMESPACE" --config "$KUBECONFIG" deploy service "$CI_PROJECT_NAME" --from-image "$CI_REGISTRY_IMAGE" --wait