Commit 714c77a6 authored by Grzegorz Bizon's avatar Grzegorz Bizon Committed by Lin Jen-Shin

Add basic documentation about Serverless template

parent d9fb27f4
...@@ -114,28 +114,29 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ ...@@ -114,28 +114,29 @@ Follow these steps to deploy a function using the Node.js runtime to your Knativ
- Public, continue to the next step. - Public, continue to the next step.
- Private, you will need to [create a GitLab deploy token](../../deploy_tokens/index.md#creating-a-deploy-token) with `gitlab-deploy-token` as the name and the `read_registry` scope. - Private, you will need to [create a GitLab deploy token](../../deploy_tokens/index.md#creating-a-deploy-token) with `gitlab-deploy-token` as the name and the `read_registry` scope.
1. `.gitlab-ci.yml`: This template allows to define the stage, environment, and 1. `.gitlab-ci.yml`: this configuration allows to define the environment to be
image to be used for your functions. It must be included at the root of your repository: used to deploy your functions. It must be included at the root of your repository:
```yaml ```yaml
stages: include:
- deploy template: Serverless.gitlab-ci.yml
functions: functions:
stage: deploy extends: .serverless:deploy:functions
environment: test environment: production
image: gcr.io/triggermesh/tm:v0.0.9
script:
- tm -n "$KUBE_NAMESPACE" set registry-auth gitlab-registry --registry "$CI_REGISTRY" --username "$CI_REGISTRY_USER" --password "$CI_JOB_TOKEN" --push
- tm -n "$KUBE_NAMESPACE" set registry-auth gitlab-registry --registry "$CI_REGISTRY" --username "$CI_DEPLOY_USER" --password "$CI_DEPLOY_PASSWORD" --pull
- tm -n "$KUBE_NAMESPACE" deploy --wait
``` ```
The `gitlab-ci.yml` template creates a `Deploy` stage with a `functions` job that invokes the `tm` CLI with the required parameters. This `.gitlab-ci.yml` creates a `Deploy` stage with the `functions` job
that invokes some predefined commands to deploy your functions to Knative.
2. `serverless.yml`: this file contains the metadata for your functions,
such as name, runtime, and environment.
2. `serverless.yml`: This file contains the metadata for your functions, It must be included at the root of your repository.
such as name, runtime, and environment. It must be included at the root of your repository. The following is a sample `echo` function which shows the required structure for the file. You can find the relevant files for this project in the [functions example project](https://gitlab.com/knative-examples/functions). The following is a sample `echo` function which shows the required structure
for the file.
You can find the relevant files for this project in the [functions example project](https://gitlab.com/knative-examples/functions).
```yaml ```yaml
service: my-functions service: my-functions
...@@ -234,32 +235,21 @@ Add the following `.gitlab-ci.yml` to the root of your repository ...@@ -234,32 +235,21 @@ Add the following `.gitlab-ci.yml` to the root of your repository
(you may skip this step if you've previously cloned the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) mentioned above): (you may skip this step if you've previously cloned the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) mentioned above):
```yaml ```yaml
stages: include:
- build template: Serverless.gitlab-ci.yml
- deploy
build: build:
stage: build extends: .serverless:build:image
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
only:
- master
script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE
deploy: deploy:
stage: deploy extends: .serverless:deploy:image
image: gcr.io/triggermesh/tm@sha256:e3ee74db94d215bd297738d93577481f3e4db38013326c90d57f873df7ab41d5
only:
- master
environment: production
script:
- echo "$CI_REGISTRY_IMAGE"
- tm -n "$KUBE_NAMESPACE" --config "$KUBECONFIG" deploy service "$CI_PROJECT_NAME" --from-image "$CI_REGISTRY_IMAGE" --wait
``` ```
`Serverless.gitlab-ci.yml` is a template that allows customization.
You can either import it with `include:` directive and use `extends` to
customize your jobs, or you can inline entire template by choosing it
from "Templates" dropdown. (TODO: link to docs about templates).
### Deploy the application with Knative ### Deploy the application with Knative
With all the pieces in place, the next time a CI pipeline runs, the Knative application will be deployed. Navigate to With all the pieces in place, the next time a CI pipeline runs, the Knative application will be deployed. Navigate to
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment