java-operator-plugins

module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2021 License: Apache-2.0

README

Java Operator Plugin

Overview

This project is a component of the Operator Framework, an open source toolkit to manage Kubernetes native applications, called Operators, in an effective, automated, and scalable way. Read more in the introduction blog post.

Operators make it easy to manage complex stateful applications on top of Kubernetes. However writing an operator today can be difficult because of challenges such as using low level APIs, writing boilerplate, and a lack of modularity which leads to duplication.

License

Operator SDK is under Apache 2.0 license. See the LICENSE file for details.

Enable java-operator-plugins for operator-sdk

To use java-operator-plugins for java operators we need to clone the operator-sdk repo.

Updates in Operator-SDK go.mod
  • Add the kubebuilder plugin to go.mod
github.com/operator-framework/java-operator-plugins v0.0.0-20210225171707-e42ea87455e3
  • Replace the java-operator-plugins path in go-mod pointing to the local dir of your kube-builder repo. Example.
github.com/operator-framework/java-operator-plugins => /Users/sushah/go/src/github.com/sujil02/java-operator-plugins
Updates in Operator-SDK internal/cmd/operator-sdk/cli/cli.go
  • Add the java-operator-sdk import
quarkusv1 "github.com/operator-framework/java-operator-plugins/pkg/quarkus/v1alpha"
  • Introduce the java bundle in GetPluginsCLIAndRoot() method.
quarkusBundle, _ := plugin.NewBundle("quarkus"+plugins.DefaultNameQualifier, plugin.Version{Number: 1},
		&quarkusv1.Plugin{},
	)
  • Add the created quarkusBundle to the cli.New
    cli.WithPlugins(
			ansibleBundle,
			gov2Bundle,
			gov3Bundle,
			helmBundle,
			quarkusBundle,
		),
Build and Install the Operator-SDK
go mod tidy
make install

Now that the plugin is integrated with the operator-sdk you can run the init command to generate the sample java operator

  • Use the quarkus plugin flag
  • Pick the domain and project name as prefered.
operator-sdk init --plugins quarkus --domain xyz.com --project-name java-op

Once the operator is scaffolded check for the following files

├── PROJECT
├── pom.xml
└── src
    └── main
        ├── java
        │   └── com
        │       └── xyz
        │           └── JavaOpOperator.java
        └── resources
            └── application.properties

Directories

Path Synopsis
pkg
quarkus/v1alpha/scaffolds
Package scaffolds will likely contain the files used to scaffold the files for specific commands.
Package scaffolds will likely contain the files used to scaffold the files for specific commands.
quarkus/v1alpha/scaffolds/internal/templates
Package templates contains the files which have templates for the files being output by the scaffolders.
Package templates contains the files which have templates for the files being output by the scaffolders.

Jump to

Keyboard shortcuts

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