Skip to content

jshiftio/kubernetes-maven-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kubernetes Maven Plugin

Note: This repository has been moved to Eclipse Jkube. In case you want to contribute please send PRs to https://github.com/eclipse/jkube repo.

Circle CI Maven Central Gitter Technical Debt Coverage

Sample Demo

Introduction

This Maven plugin is a one-stop-shop for building and deploying Java applications for Docker, Kubernetes. It brings your Java applications on to Kubernetes. It provides a tight integration into maven and benefits from the build configuration already provided. It focuses on three tasks:

  • Building Docker images
  • Creating Kubernetes resources
  • Deploy applications

Usage

To enable kubernetes maven plugin on your project just add this to the plugins sections of your pom.xml:

      <plugin>
        <groupId>io.jshift</groupId>
        <artifactId>k8s-maven-plugin</artifactId>
        <version>${jshift.kubernetes.version}</version>
      </plugin>
Goal Description
k8s:resource Create Kubernetes resource descriptors
k8s:build Build Docker images
k8s:push Push Docker images to a registry
k8s:deploy Deploy Kubernetes resource objects to a cluster
k8s:watch Watch for doing rebuilds and restarts

Features

  • Dealing with Docker images and hence inherits its flexible and powerful configuration.
  • Supports Kubernetes descriptors
  • Various configuration styles:
    • Zero Configuration for a quick ramp-up where opinionated defaults will be pre-selected.
    • Inline Configuration within the plugin configuration in an XML syntax.
    • External Configuration templates of the real deployment descriptors which are enriched by the plugin.
  • Flexible customization:
    • Generators analyze the Maven build and generated automatic Docker image configurations for certain systems (spring-boot, plain java, karaf ...)
    • Enrichers extend the Kubernetes resource descriptors by extra information like SCM labels and can add default objects like Services.
    • Generators and Enrichers can be individually configured and combined into profiles

Kubernetes Compatibility

✔️ : Supported, all available features can be used

❌ : Not supported at all

🔵 : Supported, but not all features can be used

Kubernetes
KMP Kubernetes 1.12.0 Kubernetes 1.11.0 Kubernetes 1.10.0 Kubernetes 1.9.0 Kubernetes 1.8.0 Kubernetes 1.7.0 Kubernetes 1.6.0 Kubernetes 1.5.1 Kubernetes 1.4.0
KMP 4.0.0 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
KMP 4.0.0-M2 🔵 🔵 🔵 ✔️ ✔️ ✔️ ✔️
KMP 4.0.0-M1 🔵 🔵 🔵 ✔️ ✔️ ✔️ ✔️
KMP 3.5.42 🔵 🔵 🔵 🔵 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.41 🔵 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.40 🔵 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.39 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.38 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.37 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.35 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.34 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.33 ✔️ ✔️ ✔️ ✔️ ✔️
KMP 3.5.32 ✔️ ✔️ ✔️ ✔️ ✔️