# Overview

We welcome new contributors. Please read the [code of conduct](https://github.com/SeldonIO/seldon-core/blob/master/CODE_OF_CONDUCT.md) and the [contributing guidelines](https://github.com/SeldonIO/seldon-core/blob/master/docs-gb/developer/contributing.rst).

## Operator Development

The Operator which manages the SeldonDeployment CRD is contained within the `/operator` folder. It is created using [kubebuilder](https://book.kubebuilder.io/)

For local development we use [kind](https://kind.sigs.k8s.io/), create a kind cluster

```console
kind create cluster
```

Install cert-manager

```console
make install-cert-manager
```

To build and load the current controller image into the Kind cluster:

```console
make kind-image-install
```

To install the Operator run:

```console
make deploy
```

If you wish to install the Operator and prepare the controller to be run outside the cluster, for example inside an IDE (we use GoLand) then run the following. This has only been tested on a local Kind cluster:

```console
make deploy-local
```

When the everything is running delete the seldon-controller-manager deployment from the seldon-system namespace as we will run locally.

Next, download the webhook certificate (created by cert-manager) locally:

```console
make tls-extract
```

You can now run the manager locally. You will need to set the webhook-port on startup e.g.,

```console
go run ./main.go --webhook-port=9000
```

If running inside an IDE and you are using Kind then make sure you set the KUBECONFIG env as well.

## Tools we use

* [github-changelog-generator](https://github.com/skywinder/github-changelog-generator)
* [Grip - Local Markdown viewer](https://github.com/joeyespo/grip)

## Building Seldon Core

* [Build using private repository](https://github.com/SeldonIO/seldon-core/blob/master/docs-gb/developer/build-using-private-repo.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.seldon.ai/seldon-core-1/contributing/developer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
