operator-manager

command
v0.0.0-...-8c0602f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2019 License: Apache-2.0 Imports: 38 Imported by: 0

README

==================
Operator Manager 
==================

This is a Kubernetes Operator for managing other Operators.

The goal of this Operator is to support deployment of Operators from their Helm Charts.

This Operator is implemented as Kubernetes Custom Resource Definition (CRD). 


How does it work?
=================

A new 'kind' named 'Operator' is defined (see artifacts/deployment/deployment.yaml).

The Custom Resource Controller (controller.go) listens for the creation of resources
of the 'Operator' kind (e.g.: artifacts/examples/test-operator.yaml).
In the spec of a Operator resource you can define:

- Name that you want to give to this Operator

- CharURL: URL of the Helm Chart for the Operator that you want to install

The controller handles Operator resource creation event by triggering Helm deployment.

How to test?
============

Pre-requisite step:
-------------------
1) Install Go's dep dependency management tool:
   https://github.com/golang/dep


Conceptual Steps:
------------------

One time steps:

- Run the Operator Manager

Steps that will be run multiple times for multiple customers:

- Create Operator custom resources


Actual steps:
--------------
0) If using Minikube, enable using local docker images:
 
   - eval $(minikube docker-env)

1) Clone this repository and put it inside 'src' directory of your GOPATH
   at following location:

   $GOPATH/src/github.com/cloud-ark/kubeplus

2) Install dependencies:

   - cd $GOPATH/src/github.com/cloud-ark/kubeplus/operator-manager

   - dep ensure

3) Build local deploy artifacts:

   - ./build-local-deploy-artifacts.sh

4) Deploy Operator Manager

   - kubectl apply -f artifacts/deployment/deployment-minikube.yaml

5) Deploy an Operator

   - kubectl apply -f artifacts/examples/test-operator.yaml

6) Verify
 
   - kubectl get pods

   - Select the name of the Pod corresponding to operator-manager

   - kubectl logs <pod-name-from-above-step>


Suggestions/Issues:
====================

Suggestions to improve this CRD are welcome. Please submit a Pull request, or
give your suggestions here:

https://github.com/cloud-ark/kubeplus/issues

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
client-gen
client-gen makes the individual typed clients using gengo.
client-gen makes the individual typed clients using gengo.
client-gen/generators
Package generators has the generators for the client-gen utility.
Package generators has the generators for the client-gen utility.
conversion-gen
conversion-gen is a tool for auto-generating Conversion functions.
conversion-gen is a tool for auto-generating Conversion functions.
deepcopy-gen
deepcopy-gen is a tool for auto-generating DeepCopy functions.
deepcopy-gen is a tool for auto-generating DeepCopy functions.
defaulter-gen
defaulter-gen is a tool for auto-generating Defaulter functions.
defaulter-gen is a tool for auto-generating Defaulter functions.
go-to-protobuf
go-to-protobuf generates a Protobuf IDL from a Go struct, respecting any existing IDL tags on the Go struct.
go-to-protobuf generates a Protobuf IDL from a Go struct, respecting any existing IDL tags on the Go struct.
go-to-protobuf/protobuf
go-to-protobuf generates a Protobuf IDL from a Go struct, respecting any existing IDL tags on the Go struct.
go-to-protobuf generates a Protobuf IDL from a Go struct, respecting any existing IDL tags on the Go struct.
go-to-protobuf/protoc-gen-gogo
Package main defines the protoc-gen-gogo binary we use to generate our proto go files, as well as takes dependencies on the correct gogo/protobuf packages for godeps.
Package main defines the protoc-gen-gogo binary we use to generate our proto go files, as well as takes dependencies on the correct gogo/protobuf packages for godeps.
import-boss
import-boss enforces import restrictions in a given repository.
import-boss enforces import restrictions in a given repository.
openapi-gen
This package generates openAPI definition file to be used in open API spec generation on API servers.
This package generates openAPI definition file to be used in open API spec generation on API servers.
set-gen
set-gen is an example usage of gengo.
set-gen is an example usage of gengo.
pkg
apis/operatorcontroller/v1
Package v1 is the v1 version of the API.
Package v1 is the v1 version of the API.
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/operatorcontroller/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/operatorcontroller/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL