Skip to main content
Version: 2.0

Pipelines

The Pipelines page (/pipelines) gives you one place to follow CI activity for your repositories — whether it runs in GitHub Actions, GitLab CI or any other CI system. Your CI reports into KubeOpera; KubeOpera shows each run, stage by stage, next to the apps it deploys.

Pipelines are private to your tenant. KubeOpera identifies your tenant from your session, so no one else can see or write to your pipelines.

How pipelines get created​

  • Automatically — when you deploy an app from a GitHub repository with the Deploy Application wizard, KubeOpera registers a pipeline and build configuration for it, and the build reports its progress there.
  • Manually — with Create Pipeline, for any repository whose CI you want to track.

Create a pipeline​

  1. Open Pipelines → Create Pipeline.
  2. Choose the provider (GitHub or GitLab) and enter the repository exactly as the provider names it — owner/repo for GitHub, group/project for GitLab. KubeOpera uses this to match incoming webhooks to your pipeline.
  3. Select Create.

The confirmation panel shows two things once:

  • the webhook URL to add to your repository (https://cicd.kubeopera.io/webhook/github or /webhook/gitlab), with its webhook secret; and
  • a reporting token your CI uses to report runs and stages.
warning

Copy the webhook secret and reporting token now — they can't be displayed again. If you lose them, rotate them from the pipeline's settings.

Connect your CI​

Option 1: Webhooks​

Add the webhook URL and secret to your repository, triggered on push. Each push creates a run in KubeOpera. Every webhook is verified with its signature (GitHub X-Hub-Signature-256, GitLab X-Gitlab-Token), so only your repository can create runs.

Option 2: Report from your CI job​

Use the reporting token to create and update runs directly. The confirmation panel shows these snippets with your pipeline ID and token filled in.

Your CI creates the run:

RUN_ID=$(curl -s -X POST https://cicd.kubeopera.io/api/v1/pipelines/<id>/runs \
-H "X-Pipeline-Token: <token>" -H "Content-Type: application/json" \
-d '{"commit":"'"$GIT_SHA"'","branch":"'"$GIT_BRANCH"'","trigger_type":"manual"}' | jq -r .id)

curl -s -X PATCH https://cicd.kubeopera.io/api/v1/runs/$RUN_ID \
-H "X-Pipeline-Token: <token>" -H "Content-Type: application/json" \
-d '{"status":"success","stages":[{"name":"build","status":"success"}]}'

Or attach to the run a webhook already created:

RUN_ID=$(curl -s "https://cicd.kubeopera.io/api/v1/pipelines/<id>/runs/find?commit=$GIT_SHA" \
-H "X-Pipeline-Token: <token>" | jq -r .id)

Reporting useful failure detail​

Each stage you report can include:

FieldUse it for
error_messageA one-line summary of what failed.
log_excerptThe last ~20 lines or the failing assertion — not the whole log.
exit_codeThe step's exit code.
log_urlA link to the full log. In GitHub Actions: ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}.

Reporting the same stage name again updates that stage, so you can send running when a stage starts and success or failed when it ends.

Read the dashboard​

Summary cards​

Total Runs, Success Rate, Failed Runs and Avg Duration — for all your pipelines over the last 7 days, or for one pipeline using the selector above the cards.

Runs and run detail​

Select a run on the left to see its detail on the right. The detail view includes a timeline: one bar per stage, placed and sized by when it started and finished, colored by status. Failed stages show their error message, log excerpt and a link to the full log.

Builds keep reporting when you close the browser​

For apps deployed from source, build-service reports the build's progress server-side. You can close the wizard — or your browser — mid-build; the run still completes in the Pipelines dashboard with full stage detail.

Next steps​

  • App Creation Flow — deploy from a repository and get a pipeline automatically.
  • CI/CD gateway — the service behind this page, its API and events.
  • Webhooks — webhook payloads and verification in detail.