Build the PorterLB Project

This document describes how to build the PorterLB project for testing.

Prerequisites

Procedure

  1. Visit https://github.com/kubesphere/porterlb and click Fork to fork the PorterLB repository to your own GitHub account.

  2. Log in to your environment, and run the following commands to clone the PorterLB repository and go to the porter directory:

    git clone <Address of your own PorterLB repository>
    
    cd porter
    
  3. Run the following command to install Kustomize and Kubebuilder:

    ./hack/install_tools.sh
    
  4. Run the following command to install controller-gen:

    go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.4.0
    
  5. Run the following command to configure the environment variable for controller-gen:

    export PATH=/root/go/bin/:$PATH
    

    NOTE

    You need to change /root/go/bin/ to the actual path of controller-gen.
  6. Run the following command to generate CRDs and webhooks:

    make generate
    
  7. Customize the values of IMG_MANAGER and IMG_AGENT in Makefile and run the following command to generate a YAML release file in the deploy directory:

    make release
    

    NOTE

    • IMG_MANAGER specifies the repository and tag of the porter-manager image.

    • IMG_AGENT specifies the repository and tag of the porter-agent image.

    • Currently, PorterLB uses only the porter-manager image. The porter-agent image will be used in future versions.

  8. Run the following command to deploy PorterLB as a plugin:

    kubectl apply -f deploy/release.yaml