Skip to content
/ jkube Public
forked from eclipse-jkube/jkube

Building blocks for the Kubernetes Developer Toolbox (i.e. the Maven plugins)

License

Notifications You must be signed in to change notification settings

zebu/jkube

 
 

Repository files navigation

JKube

Circle CI Integration Tests Maintainability Rating Coverage Gitter Twitter

Eclipse JKube

This project contains various building blocks for the JKube developer toolbox.

Actually it contains the following abstractions which has been extracted from both projects:

  • Kubernetes Maven Plugin
    Maven Central Documentation Sample Demo

  • OpenShift Maven Plugin
    Maven Central Documentation Sample Demo

  • JKube-kit, which consists of the following:

    • Generator framework for automatically generating Docker images by examining project information.
      Maven Central Javadocs
    • Enricher framework for creating and enhancing Kubernetes and OpenShift resources.
      Maven Central Javadocs
    • Profile combining the configuration for generators and enrichers.
      Maven Central Javadocs
    • Resource configuration model objects for a simplified configuration of Kubernetes and OpenShift resources.
      Maven Central Javadocs
    • Image configuration model objects for modeling Docker image configuration as used in docker-maven-plugin.
      Maven Central Javadocs

One intention of extracting these parts from the originating plugins is also to separate Maven related and non-Maven related functionality so that the non-Maven parts can be reused for other build systems and IDEs like Gradle or Eclipse. Some thin adapter Maven specific modules like jkube-kit-enricher-maven and jkube-kit-generator-maven are provided as glue to get to the Maven specific build information like the project's coordinates.

By moving out common parts it will be now also be possible for the docker-maven-plugin to benefit from the generator framework for zero-config creation of Docker images.

Hello World using Eclipse JKube

  • Clone repository and move to quickstart helloworld sample, build project and run JKube goals:
# 1. Clone repository and move to Hello World Quickstart
git clone git@github.com:eclipse/jkube.git && cd jkube/quickstarts/maven/hello-world

# 2. Build Project and run JKube goals
mvn clean install \
  k8s:build       \ # Build Docker Image
  k8s:resource     \ # Generate Kubernetes Manifests
  k8s:apply         # Apply generated Kubernetes Manifests onto Kubernetes
  • Check created pod logs:
~/work/repos/jkube/quickstarts/maven/hello-world : $ kubectl get pods
NAME                                       READY   STATUS        RESTARTS   AGE
jkube-sample-helloworld-7c4665f464-xwskj   0/1     Completed     2          27s
~/work/repos/jkube/quickstarts/maven/hello-world : $ kubectl logs jkube-sample-helloworld-7c4665f464-xwskj
Hello World!

About

Building blocks for the Kubernetes Developer Toolbox (i.e. the Maven plugins)

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Java 98.7%
  • Groovy 1.1%
  • Other 0.2%