Skip to main content
Pipeline Projects connect your Git repositories to CI/CD pipelines. Configure automated triggers, deployment environments, and run pipelines manually or automatically via webhooks.

Key Concepts

Project

A connection between a Git repository and pipeline configuration with deployment settings.

Environment

A deployment target (dev, staging, prod) with ArgoCD clusters and namespaces.

Webhook

Automatic pipeline triggering on Git events (push, tag, merge request).

Pipeline

A CI/CD execution instance with stages, logs, and deployment artifacts.

Required Permissions

Project Permissions

ActionPermission
View projectsiam:project:cicd:pipeline:read
Create projectsiam:project:cicd:pipeline:write
Edit projectsiam:project:cicd:pipeline:write
Delete projectsiam:project:cicd:pipeline:delete
Run pipelinesiam:project:cicd:pipeline:execute
View pipeline logsiam:project:cicd:pipeline:logs

Webhook Permissions

ActionPermission
View webhookiam:project:cicd:webhook:read
Create/Edit webhookiam:project:cicd:webhook:write
Delete webhookiam:project:cicd:webhook:delete

How to Create a Project

1

Click Add Project

Click the Add Project button in the header.
2

Select Template

Choose a pipeline template. Templates define deployment type and required configurations.
3

Enter Project Name

Provide a unique name for the project.
4

Select Git Provider

Choose GitHub, GitLab, or Bitbucket from configured providers.
5

Configure Repository

Choose Create new repository or Use existing repository.
  • For new repos: Select organization/group and enter repository name
  • For existing repos: Select from available repositories
6

Set Visibility

Choose Public or Private for repository visibility (new repos only).
7

Select Namespace (Optional)

If the template requires a namespace, select one to inherit shared variables.
8

Configure Environments

If the template requires environments, add deployment targets:
  • Environment name (e.g., dev, staging, production)
  • ArgoCD instance
  • Cluster name
  • Namespace
9

Create

Click Create Project to save.
The template determines which fields are required. Some templates don’t require namespaces or environments.

How to Run a Pipeline

1

Open Project

Click on a project to open its detail page.
2

Click Run Pipeline

Click the Run Pipeline button.
3

Select Environment

Choose the target deployment environment.
4

Select Strategy

Choose an image tag strategy:
  • Trunk Based: Branch + commit SHA
  • Tag Based: Git tag release
  • Feature: Branch name only
  • Manual: Custom tag
5

Select Branch

Choose the source branch from the repository.
6

Select Commit

For Trunk Based and Feature strategies, select a specific commit.
7

Select Tag (Optional)

For Tag Based strategy, enter or select a Git tag.
8

Run

Click Run Pipeline to start execution.

Image Tag Strategies

StrategyImage Tag FormatUse Case
Trunk Basedbranch-commitshaContinuous deployment from main branch
Tag Basedv1.0.0Release deployments with semantic versioning
Featurefeature-nameDevelopment/testing feature branches
ManualCustom valueSpecial deployments with custom naming
Use Trunk Based for continuous deployment workflows and Tag Based for release-based deployments.

How to Monitor Pipelines

Pipeline Statuses

StatusDescription
RunningPipeline is currently executing
PendingPipeline is queued for execution
SuccessAll stages completed successfully
Success with WarningsCompleted with non-critical issues
FailedOne or more stages failed
CancelledPipeline was manually cancelled
SkippedPipeline was skipped (duplicate or condition not met)

Pipeline Actions

ActionDescriptionAvailability
CancelStop a running pipelineRunning/Pending pipelines
RetryRe-run a failed pipelineFailed pipelines
Re-runRun the same configuration againCompleted pipelines
Download LogsDownload pipeline execution logsCompleted pipelines

How to Manage Environments

Adding an Environment

1

Open Project Settings

Navigate to the Environments tab in project detail.
2

Click Add Environment

Click the Add Environment button.
3

Enter Environment Name

Provide a name (e.g., development, staging, production).
4

Add Deployment Target

Configure target settings:
  • ArgoCD Instance: Select the ArgoCD server
  • Cluster Name: Select the Kubernetes cluster
  • Namespace: Select the target namespace
  • Active: Enable/disable deployments to this target
5

Add More Targets (Optional)

Click Add Target to deploy to multiple clusters/namespaces.
6

Save

Click Add Environment to save.

Environment Requirements

FieldRequiredDescription
Environment NameYesUnique name within the project
ArgoCD InstanceYesTarget ArgoCD server
Cluster NameYesKubernetes cluster
NamespaceYesTarget namespace for deployment
At least one active target is required per environment. Environments without active targets cannot be used for deployments.

How to Configure Webhooks

Webhooks enable automatic pipeline triggering from Git events.

Creating a Webhook

1

Open Project Settings

Navigate to the Webhook tab in project detail.
2

Click Create Webhook

Click Create Webhook to generate a new webhook endpoint.
3

Copy Webhook URL

Copy the webhook URL to configure in your Git provider.
4

Save Webhook Secret

Copy and securely store the webhook secret. It is shown only once.
5

Configure Git Provider

Add the webhook URL and secret to your Git repository settings.
The webhook secret is displayed only once after creation. Store it securely before closing the dialog.

Webhook Event Types

EventDescriptionTrigger
PushBranch push eventsPipeline runs on commits to configured branches
TagTag creation eventsPipeline runs when tags are pushed
Merge RequestPR/MR eventsPipeline runs on pull request actions

Managing Webhook Settings

ActionDescription
Enable/DisableToggle webhook active status
Regenerate SecretCreate new secret (invalidates old one)
Update Event TypesChange which events trigger pipelines
DeleteRemove webhook configuration
Regenerating the secret invalidates the previous secret. Update your Git provider settings after regenerating.

How to Manage Project Variables

1

Open Variables Tab

Navigate to the Variables tab in project detail.
2

Add Variable

Click Add Variable and enter key-value pairs.
3

Set Variable Type

Toggle JSON for structured data, or leave off for plain text.
4

Save

Click Save Changes to persist variables.
Project variables override namespace variables with the same key. Use project variables for project-specific configuration.

How to Edit a Project

1

Open Project

Navigate to the project detail page.
2

Go to Settings

Click the Settings tab.
3

Click Edit

Click Edit Project to open the edit form.
4

Modify Settings

Update project name, namespace, or other settings.
5

Save

Click Save Changes to apply updates.

How to Delete a Project

1

Open Project Settings

Navigate to the Settings tab in project detail.
2

Click Delete

Click Delete Project in the danger zone.
3

Choose Repository Action

Select whether to also delete the Git repository:
  • Keep repository: Only delete project configuration
  • Delete repository: Also delete the Git repository
4

Confirm

Confirm the deletion. This action cannot be undone.
Deleting a project removes all pipeline history, environments, and configurations. If you choose to delete the repository, all code will be permanently lost.

Troubleshooting

  • Verify webhook is enabled (active status)
  • Check event type is configured (push, tag, merge_request)
  • Confirm webhook URL is correctly configured in Git provider
  • Verify webhook secret matches
  • Check branch filters match the pushed branch
  • Review webhook delivery logs in Git provider
  • Verify Git provider credentials are valid
  • Check repository access permissions
  • Ensure pipeline configuration files exist in repository
  • Verify template configuration is complete
  • Verify you have execute permission
  • Check that at least one environment is configured
  • Ensure Git provider connection is active
  • Verify branch and commit selection
  • Verify ArgoCD instance is accessible
  • Check cluster and namespace exist
  • Ensure ArgoCD has permissions to deploy
  • Review ArgoCD application logs
  • Verify you have write permission
  • Check Git provider is configured and active
  • Ensure repository name is valid and unique
  • Verify required template fields are filled
  • Click Regenerate to create a new secret
  • Update the secret in your Git provider settings
  • Old webhook deliveries will fail signature verification
  • Verify variables are saved
  • Check variable key spelling (case-sensitive)
  • Namespace variables require project to be in that namespace
  • Project variables override namespace variables

FAQ

No. Each project connects to one Git provider and one repository. Create separate projects for different repositories.
Projects cannot be migrated to different repositories. Create a new project with the new repository and optionally delete the old project.
No. Environment names must be unique within a project. Use descriptive names like “production-us”, “production-eu” for regional deployments.
The pipeline execution stops at the current step. Partially deployed resources may remain. Review deployment state after cancellation.
Run a new pipeline with the previous commit or tag. Alternatively, use ArgoCD directly to sync to a previous revision.
Webhook trigger configuration in the template determines which branches trigger which environments. Configure branch-to-environment mapping in the template trigger configuration.
Pipeline logs are retained according to your organization’s retention policy. Download logs for long-term storage if needed.
Yes. Use the Re-run action on any completed pipeline to run the same configuration again.
Retry attempts to continue from the failed stage. Re-run starts a fresh pipeline execution from the beginning.
Add multiple targets to an environment. Each target can specify a different ArgoCD instance, cluster, or namespace.

Best Practices

Project Organization

  • Use consistent naming conventions (team-service-env)
  • Group related projects in the same namespace
  • Keep one project per microservice/application
  • Document project purpose in description

Pipeline Execution

  • Use Tag Based strategy for production releases
  • Use Trunk Based for continuous deployment
  • Always verify environment selection before running
  • Monitor pipeline progress for failures

Environment Configuration

  • Create separate environments for dev/staging/production
  • Use multiple targets for multi-cluster deployments
  • Disable targets during maintenance
  • Keep production targets with restricted access

Webhook Configuration

  • Always configure webhook secrets for security
  • Enable only required event types
  • Monitor webhook delivery statistics
  • Update secrets periodically

Security

  • Use private repositories for sensitive code
  • Limit execute permission to authorized users
  • Store secrets in variables, not in code
  • Review pipeline logs for sensitive data exposure
  • Rotate webhook secrets regularly

Variables

  • Use UPPER_SNAKE_CASE for environment variables
  • Document variable purposes
  • Use namespace variables for shared configuration
  • Override with project variables for specific needs