Giter VIP home page Giter VIP logo

jkube's Introduction

JKube

Circle CI Integration Tests Maintainability Rating Coverage Gitter Twitter

Eclipse JKube

Rebranding Notice ๐Ÿ“ข

This project is not an effort from scratch. It was earlier called Fabric8 Maven Plugin. It is just refactored and rebranded version of the project targeted towards Java developers who are working on top of Kubernetes. For more information about history, please see REBRANDING.md

Introduction:

This project contains various building blocks for the Kubernetes Java developer toolbox.

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

  • Kubernetes Maven Plugin
    Maven Central Documentation

Sample Demo KMP

  • OpenShift Maven Plugin
    Maven Central Documentation

Sample Demo OMP

  • 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 [email protected]: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!
  • Troubleshooting

If you experience problems using minikube that pod's status shows 'ImagePullBackOff' and not 'Completed' you must share the minikube's docker deamon environment with your shell with:

eval $(minikube docker-env)

You can remove this from your shell again with:

eval $(minikube docker-env -u)

If you don't want to type the command for every new terminal you open, you can add the command to your .bash_profileon mac or .zshrc.

jkube's People

Contributors

manusa avatar rohankanojia avatar anandrkskd avatar jwcarman avatar mtrejo avatar devang-gaur avatar codezork avatar rdruss avatar survivant avatar zebu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.