Create Connector
Generate Harness Connector YAML and create/test via MCP.
Instructions
- Identify connector type - Determine what service to connect (Git provider, cloud provider, container registry, Kubernetes cluster)
- Generate YAML using the templates below, filling in credentials and endpoint details
- Create via MCP using
harness_createwith resource_typeconnector - Test connection using
harness_executewith actiontest_connectionto verify
Git Connectors
GitHub
connector:
name: GitHub
identifier: github_connector
type: Github
spec:
url: https://github.com/myorg
type: Account # Account or Repo
authentication:
type: Http
spec:
type: UsernameToken
spec:
username: myuser
tokenRef: github_pat # Secret reference
apiAccess:
type: Token
spec:
tokenRef: github_pat
executeOnDelegate: false
GitLab
connector:
name: GitLab
identifier: gitlab_connector
type: Gitlab
spec:
url: https://gitlab.com/myorg
type: Account
authentication:
type: Http
spec:
type: UsernameToken
spec:
username: myuser
tokenRef: gitlab_token
Bitbucket
connector:
name: Bitbucket
identifier: bitbucket_connector
type: Bitbucket
spec:
url: https://bitbucket.org/myorg
type: Account
authentication:
type: Http
spec:
type: UsernameToken
spec:
username: myuser
tokenRef: bitbucket_app_password
Cloud Connectors
AWS
connector:
name: AWS
identifier: aws_connector
type: Aws
spec:
credential:
type: ManualConfig # ManualConfig, InheritFromDelegate, Irsa, OidcAuthentication
spec:
accessKeyRef: aws_access_key
secretKeyRef: aws_secret_key
delegateSelectors: [] # Optional: target specific delegates
executeOnDelegate: false
GCP
connector:
name: GCP
identifier: gcp_connector
type: Gcp
spec:
credential:
type: ManualConfig # ManualConfig, InheritFromDelegate, OidcAuthentication
spec:
secretKeyRef: gcp_service_account_key
executeOnDelegate: false
Azure
connector:
name: Azure
identifier: azure_connector
type: Azure
spec:
credential:
type: ManualConfig
spec:
auth:
type: Secret
spec:
secretRef: azure_client_secret
applicationId: <app_id>
tenantId: <tenant_id>
azureEnvironmentType: AZURE # AZURE, AZURE_US_GOVERNMENT
executeOnDelegate: false
Registry Connectors
Docker Hub
connector:
name: Docker Hub
identifier: dockerhub
type: DockerRegistry
spec:
dockerRegistryUrl: https://index.docker.io/v2/
providerType: DockerHub
auth:
type: UsernamePassword
spec:
username: myuser
passwordRef: dockerhub_password
AWS ECR
connector:
name: ECR
identifier: ecr_connector
type: Aws
spec:
credential:
type: ManualConfig
spec:
accessKeyRef: aws_access_key
secretKeyRef: aws_secret_key
Kubernetes Connector
connector:
name: K8s Cluster
identifier: k8s_connector
type: K8sCluster
spec:
credential:
type: ManualConfig # ManualConfig, InheritFromDelegate
spec:
masterUrl: https://k8s-api.example.com
auth:
type: ServiceAccount
spec:
serviceAccountTokenRef: k8s_sa_token
caCertRef: k8s_ca_cert
Helm Repository Connector
HTTP Helm Repo
connector:
name: Helm Repo
identifier: helm_repo
type: HttpHelmRepo
spec:
helmRepoUrl: https://charts.example.com
auth:
type: UsernamePassword # UsernamePassword or Anonymous
spec:
username: myuser
passwordRef: helm_password
delegateSelectors: []
OCI Helm Repo
connector:
name: OCI Helm
identifier: oci_helm
type: OciHelmRepo
spec:
helmRepoUrl: oci://registry.example.com/charts
auth:
type: UsernamePassword
spec:
username: myuser
passwordRef: oci_password
Artifact Repository Connectors
Nexus
connector:
name: Nexus
identifier: nexus_connector
type: Nexus
spec:
nexusServerUrl: https://nexus.example.com
version: "3.x" # "2.x" or "3.x"
auth:
type: UsernamePassword
spec:
username: admin
passwordRef: nexus_password
Artifactory
connector:
name: Artifactory
identifier: artifactory_connector
type: Artifactory
spec:
artifactoryServerUrl: https://artifactory.example.com
auth:
type: UsernamePassword
spec:
username: admin
passwordRef: artifactory_password
Ticketing Connectors
Jira
connector:
name: Jira
identifier: jira_connector
type: Jira
spec:
jiraUrl: https://mycompany.atlassian.net
auth:
type: UsernamePassword
spec:
username: user@company.com
passwordRef: jira_api_token
ServiceNow
connector:
name: ServiceNow
identifier: servicenow_connector
type: ServiceNow
spec:
serviceNowUrl: https://mycompany.service-now.com
auth:
type: UsernamePassword
spec:
username: admin
usernameRef: snow_username
passwordRef: snow_password
Creating and Testing via MCP
Create connector:
Call MCP tool: harness_create
Parameters:
resource_type: "connector"
org_id: "<organization>"
project_id: "<project>"
body: <connector YAML>
Test connection:
Call MCP tool: harness_execute
Parameters:
resource_type: "connector"
action: "test_connection"
resource_id: "<connector_identifier>"
org_id: "<organization>"
project_id: "<project>"
Browse available connector types:
Call MCP tool: harness_list
Parameters:
resource_type: "connector_catalogue"
Examples
- "Create a GitHub connector with PAT" - Github type with token auth
- "Set up AWS connector" - Aws type with access key credentials
- "Create Docker Hub connector" - DockerRegistry type
- "Connect to my K8s cluster" - K8sCluster with service account
- "Create a Helm repo connector" - HttpHelmRepo type for chart repositories
- "Set up Jira connector" - Jira type for approval and ticketing integration
- "Create Nexus connector" - Nexus type for artifact repository
Performance Notes
- Always test the connection after creation using
harness_executewith actiontest_connection. - Verify that referenced secrets exist before creating the connector.
- For cloud connectors, confirm IAM permissions match the intended usage (read-only vs. read-write).
Troubleshooting
Connection Test Fails
- Verify credentials/tokens are valid and not expired
- Check network connectivity (delegate may need access)
- Ensure proper IAM permissions for cloud connectors
Secret References
- Secrets must exist before creating the connector
- Use format:
account.secret_namefor account-level secrets - Use just
secret_namefor project-level secrets
Delegate Selectors
- Use
delegateSelectorsto target connectors at specific delegates - Required when the service is only reachable from specific network locations
- Match delegate tags exactly (case-sensitive)