This Maven plugin is a one-stop-shop for building and deploying Java applications for Docker, Kubernetes and OpenShift.
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 |
- 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 agains a Docker daemon)
- Various configuration styles:
- Zero Config 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
- User Manual [PDF]
- Examples are in the samples directory
- Many fabric8 Quickstarts use this plugin and are good showcases, too.
- You'll find us 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.
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. If no, please contact us at freenode, #fabric8 or open an issue in this project.