myplatform-operator

command module
v0.0.0-...-61d5f24 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2021 License: MIT Imports: 11 Imported by: 0

README

MyPlatform Operator

Eventual goal is to build the MyPlatform operator in Go which abstracts an internal platform for hosting opnioniated applications.

Get Started

Install the Operator SDK, it has two components:

  • operator-sdk - CLI tool and SDK facilitates development of operators
  • operator lifecycle manager - Facilitates installation, upgrade & RBAC of operators on a cluster

Installation:

Creating a project

Run below to use the operator-skd cli to scaffold a project for developing the operator.

# Create a directory to store the operator
mkdir -p $HOME/projects/myplatform-operator

# switch to the directory created
cd $HOME/projects/myplatform-operator

# Force using Go modules
export GO111MODULE=on

# Run the operator-sdk CLI to scaffold the project structure
operator-sdk init --domain=dexterposh.github.io --repo=github.com/DexterPOSH/myplatform-operator --skip-go-version-check

The operator-sdk init command generates a go.mod file to be used with Go modules. The --repo flag is required when creating a project outside of $GOPATH/src/, because generated files require a valid module path.

PROJECT file

One important file of note is the PROJECT file. All the next commands we run use the information in this file.

Manager

Quick look of the main.go file shows the code that initializes and runs the Manager. The manager is responsible for registering the scheme for all custom resource API definitions along with running controllers and webhooks.

Create an API & Controller
# Use the cli to boostrap the api and controller
operator-sdk create api --group=myplatform --version=v1alpha1 --kind=InhouseApp

Run below to update the generated code whenever the *_types.go files are modified.

Under the hood below command runs the controller-gen utility to implement runtime.Object interface automatically for our type.

make generate

Below would generate the CRDs automatically

make manifests

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the myplatform v1alpha1 API group +kubebuilder:object:generate=true +groupName=myplatform.dexterposh.github.io
Package v1alpha1 contains API Schema definitions for the myplatform v1alpha1 API group +kubebuilder:object:generate=true +groupName=myplatform.dexterposh.github.io

Jump to

Keyboard shortcuts

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