io.fabric8:fabric8-maven-parent

Fabric8 Maven :: Parent


Keywords
docker, fabric8, java, kubernetes, maven, openshift
License
Apache-2.0

Documentation

Deprecation Note:

This project has been moved to https://github.com/eclipse/jkube . All new features would be implemented there and support for FMP would be eventually dropped.

fabric8-maven-plugin

Maven Central Circle CI Coverage Technical Debt Dependency Status

fabric8 logo

Watch the full asciicast

Introduction

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

  • Building Docker images
  • Creating OpenShift and Kubernetes resources
  • Deploy application on Kubernetes and OpenShift

Usage

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

      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>fabric8-maven-plugin</artifactId>
        <version>${fmp.version}</version>
      </plugin>

Want to get started fast? Check out the Blogpost for Getting Started with Fabric8 Maven Plugin.

The full documentation can be found in the User Manual [PDF]. It supports the following goals:

Goal Description
fabric8:resource Create Kubernetes and OpenShift resource descriptors
fabric8:build Build Docker images
fabric8:push Push Docker images to a registry
fabric8:deploy Deploy Kubernetes / OpenShift resource objects to a cluster
fabric8:watch Watch for doing rebuilds and restarts

Features

  • Includes docker-maven-plugin for dealing with Docker images and hence inherits its flexible and powerful configuration.
  • Supports both Kubernetes and OpenShift descriptors
  • OpenShift Docker builds with a binary source (as an alternative to a direct image build against a Docker daemon)
  • 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 / OpenShift 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

OpenShift and Kubernetes Compatibility

βœ”οΈ : Supported, all available features can be used

❌ : Not supported at all

πŸ”΅ : Supported, but not all features can be used

OpenShift
FMP Openshift 4.2.0 Openshift 4.1.0 OpenShift 3.11.0 OpenShift 3.10.0 OpenShift 3.9.0 OpenShift 3.7.0 OpenShift 3.6.0
FMP 4.4.2 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 4.3.1 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 4.3.0 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 4.2.0 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 4.1.0 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 4.0.0 πŸ”΅ πŸ”΅ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 4.0.0-M1 πŸ”΅ πŸ”΅ πŸ”΅ πŸ”΅ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 4.0.0-M2 πŸ”΅ πŸ”΅ πŸ”΅ πŸ”΅ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.42 ❌ ❌ ❌ πŸ”΅ βœ”οΈ βœ”οΈ
FMP 3.5.41 ❌ ❌ ❌ πŸ”΅ βœ”οΈ βœ”οΈ
FMP 3.5.40 ❌ ❌ ❌ πŸ”΅ βœ”οΈ βœ”οΈ
FMP 3.5.39 ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ
FMP 3.5.38 ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ
FMP 3.5.37 ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ
FMP 3.5.35 ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ
FMP 3.5.34 ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ
FMP 3.5.33 ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ
FMP 3.5.32 ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ
Kubernetes
FMP Kubernetes 1.15.3 Kubernetes 1.14.2 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
FMP 4.4.2 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ❌ ❌
FMP 4.3.1 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ❌ ❌
FMP 4.3.0 βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ❌ ❌
FMP 4.2.0 ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ❌ ❌
FMP 4.1.0 ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ❌ ❌
FMP 4.0.0 ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ❌ ❌
FMP 4.0.0-M2 ❌ ❌ πŸ”΅ πŸ”΅ πŸ”΅ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ❌ ❌
FMP 4.0.0-M1 ❌ ❌ πŸ”΅ πŸ”΅ πŸ”΅ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ❌ ❌
FMP 3.5.42 ❌ ❌ πŸ”΅ πŸ”΅ πŸ”΅ πŸ”΅ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.41 ❌ ❌ ❌ ❌ ❌ πŸ”΅ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.40 ❌ ❌ ❌ ❌ ❌ πŸ”΅ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.39 ❌ ❌ ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.38 ❌ ❌ ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.37 ❌ ❌ ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.35 ❌ ❌ ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.34 ❌ ❌ ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.33 ❌ ❌ ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
FMP 3.5.32 ❌ ❌ ❌ ❌ ❌ ❌ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ

Documentation and Support

  • User Manual [PDF]
  • Examples are in the samples directory
  • Many fabric8 Quickstarts use this plugin and are good showcases, too.
  • You'll find us in the fabric8 community and on IRC freenode in channel #fabric8 and we are happy to answer any questions.
  • Contributions are highly appreciated and encouraged. Please send us Pull Requests.

fabric8-maven-plugin 3 vs. 2

This is a complete rewrite of the former fabric8-maven plugin. It does not share the same configuration syntax, but migration should be straight forward - please use the fabric8:migrate goal from 2.x of the plugin.