Skip to content

Latest commit

 

History

History
96 lines (63 loc) · 4.29 KB

how-to-contribute.md

File metadata and controls

96 lines (63 loc) · 4.29 KB

How to contribute

Welcome contributors,
Please free feel to contribute and help us in efforts to make the aicoe-ci application more effective.

Pre-requisite:

  • Basic understanding of Tekton pipeline and tasks.
    Some useful link to get started with learning:

  • OpenShift cluster v4.x or equivalent Kubernetes clusters.
    Openshift v3.11 and equivalent can also be used, however based on that some task steps and version of pipeline, triggers are be changed.

AICoE-CI Components:

  • Tasks:

    • All new tasks are to be added in the tasks directory.
    • Use the example-pr-checks.yaml for any new tests to be added for pull request checks
    • Any other tasks are welcome too.
    • Make sure to add new resource required for the tasks in the resource.yaml
  • Pipeline:

    • New pipeline are to be added in the pipeline directory.
  • Events:

    • Please create new events for eventlistener, along with the triggertemplate and triggerbindings.

Want to step up an instance

AICoE-CI requires both Tekton Pipeline and Trigger to be available in the cluster, which can be installed either manually or via OpenShift-Pipeline-Operator .
Choose based upon your requirements and cluster support. Pipeline and Trigger version is already pinned in the setup instruction.

  • Setup Manually Tekton Pipeline and Tekton Trigger in cluster:
    script available for manual setup: tekton-setup
oc new-project tekton-pipelines
oc adm policy add-scc-to-user anyuid -z tekton-pipelines-controller
oc apply --filename https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.11.3/release.notags.yaml
oc apply --filename https://storage.googleapis.com/tekton-releases/triggers/previous/v0.4.0/release.yaml
oc apply --filename https://github.com/tektoncd/dashboard/releases/download/v0.6.1.5/tekton-dashboard-release.yaml
oc expose svc/tekton-dashboard

Setup AICoE-CI instance

Kustomize can be used for deployment of the whole project:
instance-kustomization can be used for setting up the application.
kustomize build --enable_alpha_plugins ../setup-instance/ | oc apply -f - -n <namespace>

Pre-requisite before application deployment:

  • Setting up secrets required by aicoe-ci:
    update the secret manifest file instance-secrets.yaml with relevant secret keys and deploy all required secrets to the namespace.

NOTE: components can be searched/deleted by label app.
--selector 'app=aicoe-ci'

Behind VPN Setup:

Ultrahook

ultrahook passes the public internet request to services behind VPN

  • ultrahook Deployment instance serves the redirect request to configured endpoint.
    Deployment manifest is available, use the manifest, update the relevant field.
    ULTRAHOOK_DESTINATION: service endpoint where ultrahook will redirect.

  • Ultrahook secret is a requirement for the ultrahook deployment. secret manifest is available, use the manifest, update the relevant field.
    ULTRAHOOK_API_KEY: Ultrahook api key which will refer to namespace. More Details on creating a ultrahook api key is instructed below.

Ultrahook Webhook Configuration

Register at http://www.ultrahook.com.
you will choose webhook namespace and you will get API key. you need to provide your API key to the deployment. Then you need to choose a subdomain - so that you can use your namespace for multiple destinations. The generated webhook URL will then look like

http://<some_subdomain>.<namespace>.ultrahook.com

More Details: AICoE/ultrahook