• Guy Margalit's avatar
    Refactor operator context init and allow to run local · 2ce23826
    Guy Margalit authored
    
    Signed-off-by: default avatarGuy Margalit <guymguym@gmail.com>
    Co-Authored-By: default avatarSébastien Han <seb@redhat.com>
    Co-Authored-By: default avatarTravis Nielsen <tnielsen@redhat.com>
    
    This change is meant to allow running operators locally on a developer machine.
    The idea is to allow faster development cycles by reducing the time and complexity of building -> deploying -> debugging on cluster.
    
    For operators that rely only on kubernetes API this works easily - see cockroachdb and minio examples in development-flow doc.
    
    The change includes:
    
    - rook.NewContext() - Refactored to remove repeating initialization code that was copy-pasted in most of the operators in order to create the clusterd.Context and the Clientsets. Also it detects the mode of working in-cluster vs external and sets up the external mode with standard user config (~/.kube/config) and a job executor.
    - rook.GetOperatorImage() - Refactor this repeating code in many operators to detect the operator pod image. Also added ...
    2ce23826