github.com/shipa-corp/ketch@v0.6.0/CONTRIBUTING.md (about) 1 ## Contributing to Ketch 2 We welcome contributions to Ketch in the form of pull requests or submitting issues. If you encounter a problem or want 3 to suggest an improvement please submit an issue. If you find a bug please tell us about it by submitting an issue or 4 pull request. Please make sure you are testing against the latest version of Ketch when you are submitting a bug. Provide 5 as much detail as you can. Examples of detail would be the operating system you are using, the version of Kubernetes, 6 stack traces, the command(s) that caused the bug and so on. 7 8 ## Developer Guide 9 ### Prerequisites 10 [Docker](https://docs.docker.com/get-docker/) 11 12 [Go version 1.14 or better](https://golang.org/dl/) 13 14 [Kubectl and Kubernetes version 1.17.1 or better](https://kubernetes.io/docs/tasks/tools/install-kubectl/) 15 16 [Minikube](https://minikube.sigs.k8s.io/docs/start/) (optional) 17 18 [Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) Install with `make install-kubebuilder`. 19 20 [Kustomize](https://github.com/kubernetes-sigs/kustomize) Install with `make install-kustomize`. 21 22 23 ### Developer Setup 24 In this example we build and install Ketch. Clone the project. From the project directory run `make install-kubebuilder` and `make install-kustomize`. After doing that you should be able to run the unit tests `make test` successfully. 25 26 ### Developer Install with Minikube 27 Create Ketch controller image. The example assumes you have an minikube instance running (`minikube start`). 28 29 ```bash 30 export IMG=my-repo/imagename:v0.1 31 make docker-build 32 make docker-push 33 ``` 34 Install Ketch controller. 35 36 ```bash 37 make deploy 38 ``` 39 Build the Ketch CLI. 40 41 ```bash 42 make ketch 43 export PATH=$(pwd)/bin:$PATH 44 ``` 45 46 Set up a route so the Minikube network is accessible. 47 48 ```bash 49 sudo route add -host $(kubectl get svc traefik -o jsonpath='{.spec.clusterIP}') gw $(minikube ip) 50 ``` 51 52 Use the cluster IP address when you create frameworks. 53 54 ```bash 55 ketch framework add myframework --ingress-service-endpoint $(kubectl get svc traefik -o jsonpath='{.spec.clusterIP}') 56 ```