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  ```