|
| 1 | +:_content-type: ASSEMBLY |
| 2 | +[id="osdk-java-tutorial"] |
| 3 | += Operator SDK tutorial for Java-based Operators |
| 4 | +include::_attributes/common-attributes.adoc[] |
| 5 | +:context: osdk-java-tutorial |
| 6 | +:FeatureName: Java-based Operator SDK |
| 7 | +include::snippets/technology-preview.adoc[] |
| 8 | + |
| 9 | +toc::[] |
| 10 | + |
| 11 | +Operator developers can take advantage of Java programming language support in the Operator SDK to build an example Java-based Operator for Memcached, a distributed key-value store, and manage its lifecycle. |
| 12 | + |
| 13 | +This process is accomplished using two centerpieces of the Operator Framework: |
| 14 | + |
| 15 | +Operator SDK:: The `operator-sdk` CLI tool and `controller-runtime` library API |
| 16 | + |
| 17 | +Operator Lifecycle Manager (OLM):: Installation, upgrade, and role-based access control (RBAC) of Operators on a cluster |
| 18 | + |
| 19 | +[NOTE] |
| 20 | +==== |
| 21 | +This tutorial goes into greater detail than xref:../../../operators/operator_sdk/java/osdk-java-quickstart.adoc#osdk-java-quickstart[Getting started with Operator SDK for Java-based Operators]. |
| 22 | +==== |
| 23 | + |
| 24 | +include::modules/osdk-common-prereqs.adoc[leveloffset=+1] |
| 25 | + |
| 26 | +// needs ifevals: |
| 27 | +// include::modules/osdk-create-project.adoc[leveloffset=+1] |
| 28 | +// include::modules/osdk-project-file.adoc[leveloffset=+2] |
| 29 | + |
| 30 | +// individual java modules go here |
| 31 | +// |
| 32 | +// include::modules/osdk-golang-manager.adoc[leveloffset=+2] |
| 33 | +// include::modules/osdk-golang-multi-group-apis.adoc[leveloffset=+2] |
| 34 | +// |
| 35 | +// include::modules/osdk-golang-create-api-controller.adoc[leveloffset=+1] |
| 36 | +// include::modules/osdk-golang-define-api.adoc[leveloffset=+2] |
| 37 | +// include::modules/osdk-golang-generate-crd.adoc[leveloffset=+2] |
| 38 | +// include::modules/osdk-about-openapi-validation.adoc[leveloffset=+3] |
| 39 | +// |
| 40 | +// include::modules/osdk-golang-implement-controller.adoc[leveloffset=+1] |
| 41 | +// |
| 42 | +// The next subsections explain how the controller in the example implementation watches resources and how the reconcile loop is triggered. You can skip these subsections to go directly to xref:../../../operators/operator_sdk/golang/osdk-golang-tutorial.adoc#osdk-run-operator_osdk-golang-tutorial[Running the Operator]. |
| 43 | +// |
| 44 | +// include::modules/osdk-golang-controller-resources.adoc[leveloffset=+2] |
| 45 | +// include::modules/osdk-golang-controller-configs.adoc[leveloffset=+2] |
| 46 | +// include::modules/osdk-golang-controller-reconcile-loop.adoc[leveloffset=+2] |
| 47 | +// include::modules/osdk-golang-controller-rbac-markers.adoc[leveloffset=+2] |
| 48 | + |
| 49 | +// needs ifevals: |
| 50 | +// include::modules/osdk-run-proxy.adoc[leveloffset=+1] |
| 51 | +// include::modules/osdk-run-operator.adoc[leveloffset=+1] |
| 52 | +// include::modules/osdk-run-locally.adoc[leveloffset=+2] |
| 53 | +// include::modules/osdk-run-deployment.adoc[leveloffset=+2] |
| 54 | + |
| 55 | +[id="osdk-bundle-deploy-olm_{context}"] |
| 56 | +=== Bundling an Operator and deploying with Operator Lifecycle Manager |
| 57 | + |
| 58 | +// need ifevals: |
| 59 | +// include::modules/osdk-bundle-operator.adoc[leveloffset=+3] |
| 60 | +// include::modules/osdk-deploy-olm.adoc[leveloffset=+3] |
| 61 | +// |
| 62 | +// include::modules/osdk-create-cr.adoc[leveloffset=+1] |
| 63 | + |
| 64 | +[role="_additional-resources"] |
| 65 | +[id="additional-resources_osdk-java-tutorial"] |
| 66 | +== Additional resources |
| 67 | + |
| 68 | +- See xref:../../../operators/operator_sdk/java/osdk-java-project-layout.adoc#osdk-java-project-layout[Project layout for Java-based Operators] to learn about the directory structures created by the Operator SDK. |
| 69 | +- If a xref:../../../networking/enable-cluster-wide-proxy.adoc#enable-cluster-wide-proxy[cluster-wide egress proxy is configured], cluster administrators can xref:../../../operators/admin/olm-configuring-proxy-support.adoc#olm-configuring-proxy-support[override the proxy settings or inject a custom CA certificate] for specific Operators running on Operator Lifecycle Manager (OLM). |
0 commit comments