Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds script to create a release using Tekton #202

Merged
merged 1 commit into from
May 17, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion config/00-init/01-db-secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ apiVersion: v1
kind: Secret
metadata:
name: db
namespace: tekton-hub
labels:
app: db
type: Opaque
Expand Down
1 change: 0 additions & 1 deletion config/00-init/02-db-pvc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: db
namespace: tekton-hub
labels:
app: db
spec:
Expand Down
1 change: 0 additions & 1 deletion config/00-init/03-db-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: db
namespace: tekton-hub
labels:
app: db
spec:
Expand Down
1 change: 0 additions & 1 deletion config/00-init/04-db-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ apiVersion: v1
kind: Service
metadata:
name: db
namespace: tekton-hub
labels:
app: db
spec:
Expand Down
1 change: 0 additions & 1 deletion config/01-db/10-db-migration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ apiVersion: batch/v1
kind: Job
metadata:
name: db-migration
namespace: tekton-hub
labels:
app: db
spec:
Expand Down
1 change: 0 additions & 1 deletion config/02-api/20-api-secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ apiVersion: v1
kind: Secret
metadata:
name: api
namespace: tekton-hub
type: Opaque
stringData:
GH_CLIENT_ID: ''
Expand Down
1 change: 0 additions & 1 deletion config/02-api/21-api-configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ apiVersion: v1
kind: ConfigMap
metadata:
name: api
namespace: tekton-hub
labels:
app: api
data:
Expand Down
1 change: 0 additions & 1 deletion config/02-api/22-api-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: api
namespace: tekton-hub
labels:
app: api
spec:
Expand Down
1 change: 0 additions & 1 deletion config/02-api/23-api-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ apiVersion: v1
kind: Service
metadata:
name: api
namespace: tekton-hub
labels:
app: api
spec:
Expand Down
1 change: 0 additions & 1 deletion config/03-ui/30-ui-configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ apiVersion: v1
kind: ConfigMap
metadata:
name: ui
namespace: tekton-hub
data:
API_URL: 'https://api.hub.tekton.dev'
GH_CLIENT_ID: ''
Expand Down
1 change: 0 additions & 1 deletion config/03-ui/31-ui-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: ui
namespace: tekton-hub
labels:
app: ui
spec:
Expand Down
1 change: 0 additions & 1 deletion config/03-ui/32-ui-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ apiVersion: v1
kind: Service
metadata:
name: ui
namespace: tekton-hub
labels:
app: ui
spec:
Expand Down
1 change: 0 additions & 1 deletion config/04-kubernetes/40-api-ingress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ metadata:
acme.cert-manager.io/http01-edit-in-place: 'true'
cert-manager.io/cluster-issuer: letsencrypt-prod
name: api
namespace: tekton-hub
spec:
rules:
- http:
Expand Down
1 change: 0 additions & 1 deletion config/04-kubernetes/41-ui-ingress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ui
namespace: tekton-hub
annotations:
acme.cert-manager.io/http01-edit-in-place: 'true'
cert-manager.io/cluster-issuer: letsencrypt-prod
Expand Down
1 change: 0 additions & 1 deletion config/04-openshift/40-api-route.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: api
namespace: tekton-hub
labels:
app: api
spec:
Expand Down
1 change: 0 additions & 1 deletion config/04-openshift/41-ui-route.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: ui
namespace: tekton-hub
spec:
to:
kind: Service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ apiVersion: v1
kind: Secret
metadata:
name: catalog-refresh
namespace: tekton-hub
type: Opaque
stringData:
HUB_TOKEN: ""
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: catalog-refresh
namespace: tekton-hub
labels:
app: api
spec:
Expand Down
45 changes: 45 additions & 0 deletions tekton/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Release Script

The Release script does the following tasks:
- fetch the latest main branch
- create and push a git tag by version provided from the user
- create supporting configuration for hub on the cluster
- create secret and roles for the Tekton Pipelines
- install the pipeline which will deploy the hub on the clusters

## Prerequisites

- Kubernetes or OpenShift cluster with Tekton Pipelines installed
- kubectl CLI
- git CLI

### User Prerequisites

- Access to push images to `quay.io/tekton-hub`
- Access to push git tag to `tektoncd/hub`

## Before Running the Script

- Enable Tekton Bundle in Pipelines
- Check the last hub release version [here](https://github.com/tektoncd/hub/releases) and enter the next in the script to
- If you are deploying hub on a clean cluster
- You will need GitHub OAuth. You can create one using the steps given [here](https://docs.github.com/en/developers/apps/creating-an-oauth-app). Use any url for creating OAuth, later you can change it once hub is deployed.


## Running the Script

This will deploy the hub in `tekton-hub` namespace and run the Tekton pipelines for it in the `tekton-hub-ci` namespace.

Input asked by the script:
- Target Release Version: This is the tag to be created and pushed to the repository. Check the last tag created and enter the next verion.
- Deploying on Openshift? Enter (Y or n) depending on your cluster. If OpenShift is selected, it will configure adm policy for the service account.
- If there are not existing hub configuration in `tekton-hub` namespace, the script will ask for
- Database Configuration: Enter Database name, user and password for the db to be created
- GitHub OAuth Configuration: Enter the OAuth Configuration you have created.
- JWT Signing key: Enter any random key which will be used to sign User JWTs.
- Access and Refresh Expire Time: Enter the time the token should be expired in. Refresh Expire time must be greater than Access Expire time. You can input time as `1d` = 1 day, `15h` = 15 hours, `30m` = 30 minutes.
- Hub Config Raw URL: No need to change it unless you are not deploying hub from tektoncd/hub.
NOTE: If you have already hub instance in tekton-hub namespace and the above configuration are already created using secrets and config maps, then the above step will be skipped.
- Quay registry credentials: Enter your credentials to push images to the registry

Once, that is done,the script will create all configuration and then install the pipeline and resources requires by it. And start the Pipeline.
95 changes: 95 additions & 0 deletions tekton/api/golang-db-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# Copyright © 2021 The Tekton Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: golang-db-test
sm43 marked this conversation as resolved.
Show resolved Hide resolved
labels:
app.kubernetes.io/version: "0.1"
annotations:
tekton.dev/pipelines.minVersion: "0.12.1"
tekton.dev/tags: test
tekton.dev/displayName: "golang test"
spec:
description: >-
This Task is Golang task to test Go projects.

params:
- name: package
description: package (and its children) under test
- name: packages
description: "packages to test (default: ./...)"
default: "./..."
- name: path_context
description: path to the directory to use as context.
default: "."
- name: version
description: golang version to use for tests
default: "latest"
- name: flags
description: flags to use for the test command
default: -race -cover -v
- name: GOOS
description: "running program's operating system target"
default: linux
- name: GOARCH
description: "running program's architecture target"
default: amd64
- name: GO111MODULE
description: "value of module support"
default: auto
workspaces:
- name: source
steps:
- name: unit-test
image: docker.io/library/golang:$(params.version)
script: |
SRC_PATH="$GOPATH/src/$(params.package)/$(params.path_context)"
mkdir -p $SRC_PATH
cp -R "$(workspaces.source.path)"/"$(params.path_context)"/* $SRC_PATH
cd $SRC_PATH
go test $(params.flags) $(params.packages)
env:
- name: GOOS
value: "$(params.GOOS)"
- name: GOARCH
value: "$(params.GOARCH)"
- name: GO111MODULE
value: "$(params.GO111MODULE)"
- name: POSTGRES_HOST
value: localhost
- name: POSTGRES_DB
value: hub_test
- name: POSTGRES_USER
value: postgres
- name: POSTGRES_PASSWORD
value: postgres
- name: POSTGRES_PORT
value: "5432"
sidecars:
- image: postgres:12@sha256:8f10c40e5e687b2cbf2f28acb5192049cdb89ef1a8db44d2f21e6bdd1a36e4be
name: db
ports:
- containerPort: 5432
protocol: TCP
env:
- name: POSTGRES_DB
value: hub_test
- name: POSTGRES_USER
value: postgres
- name: POSTGRES_PASSWORD
value: postgres
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
Loading