Continuous Integration (CI) FAQs

Updated 4 weeks ago by Manish Jaiswal

This article addresses some frequently asked questions about Harness Continuous Integration (CI).

In this topic:

Before You Begin

General

How can a Step call Service Dependency?

A step can call a service dependency on localhost or 127.0.0.1along with the port on which the service dependency is running. See Configure Service Dependency.

What is the maximum Timeout for a CIE Step, or Stage?

We have a maximum time limit of 24 hours for pod uptime. Hence, the CI stage can run for a maximum of 24 hours, and post that the pod dies.

The default Timeout for a CIE step is 10h.

What are the default values for Memory and CPU for CIE steps?

Memory

CPU

500Mi

400m

How to replicate a list of Drone Plugin settings in CIE?

For Lists, merge them separated by a comma.

For example:

Drone

CIE

 Settings:
tags:
- latest
- '1.0.1'
- '1.0'
Settings:
tags: latest,1.0.1,1.0

Permissions required for GitHub Personal Access Token in NextGen and GitX.

GitHub permission for Personal Access Token (PAT) in NextGen:

Permissions required to run CIE builds in an OpenShift cluster.

You need the following permissions on Secret, Pod, and Event to run the CIE builds in an OpenShift cluster:

create

get

list

watch

update

delete

List of minimum permissions required for Service Account role for Kubernetes Connector.

You need the following permissions for a Service Account role for Kubernetes Connector:

Pods and Secrets

create

get

list

watch

update

delete

Events

list

watch

How can you share the Codebase Configuration between stages in the CIE pipeline?

You can use the Save Cache and Restore Cache steps to share data between stages. Each CIE stage runs in a different pod. The workspace allows you to share data between different steps in the same stage.

Does CIE support running Docker-in-Docker images?

To run Docker-in-Docker (For example, for 20.10-dind-rootless), you need to run the dind as-a-service dependency on the pod. Here's the sample YAML snippet:

serviceDependencies:
- identifier: dind
name: dind
type: Service
description: Docker in Docker
spec:
connectorRef: account.dockerhub
image: docker:dind
privileged: true
entrypoint:
- dockerd-entrypoint.sh
resources:
limits:
memory: 2Gi
cpu: 2000m

Once the container is started, the software inside the container (e.g. Redis) takes time to initialize and start accepting connections. Be sure to give the service adequate time to initialize before trying to connect. A naive solution is to use the sleep command.


Please Provide Feedback