- Overview
- Key features
- Building hal
- Downloading a snapshot
- Deploying a component using
hal - Demonstration
- Additional documentation
Hal is a CLI tool for developers to simplify the deployment of applications such as Spring Boot on OpenShift and Kubernetes using Dekorate and Halkyon Component Operator. Made with ❤️ by the Snowdrop team.
hal is capable of doing the following tasks
- Scaffold Spring Boot applications
- Deploy Microservices applications as Components
- Switch the component from
devtobuildmode - Compose & link microservices
git clonethis project outside of your$GOPATH(since it usesgo modules) or setGO111MODULE=onon your environment- Build:
cd hal;makewith Go 1.11+ (currently only 1.12 is tested) - Run:
./hal, this will display the inline help - Enjoy!
- Go to https://circleci.com/gh/halkyonio/hal/tree/master and select the build number you are interested in (presumably, one that succeeded! 😁)
- Select the
Artifactstab and navigate the hierarchy to find the artifact you are interested in.
After installing hal, the following steps allows to create and deploy a project to a cluster.
Note: this assumes that you are connected to a Halkyon-enabled OpenShift/Kubernetes cluster.
- Create a development folder on your laptop
mkdir haldemo && cd haldemo
Create a new project using the HTTP rest template proposed by the scaffolding tool:
hal component spring-boot \
-i hello-world \
-g me.example \
-p me.example.demo \
-s 2.1.6.RELEASE \
-t rest \
-v 1.0.0-SNAPSHOT \
--supported=false \
hello-world
A component represents a micro-service, i.e. part of an application to be deployed. The Component custom resource provides a simpler to fathom abstraction over what's actually required at the Kubernetes level to deploy and optionally expose the micro-service outside of the cluster. In fact, when a component is deployed to a Halkyon-enabled cluster, the Halkyon operator will create these OpenShift/Kubernetes resources such as Deployment, Service, PersistentVolumeClaim, Ingress or Route on OpenShift if the component is exposed.
hal component push -c hello-world
Check if the components have been correctly installed:
oc get components
NAME RUNTIME VERSION AGE MODE STATUS MESSAGE REVISION
hello-world spring-boot 2.1.6.RELEASE 7m17s dev Ready Ready 6aadfc1a982fcd68
Try the rest service to see if it works. To do so, get the route address of the microservice using this command oc get routes/hello-world --template={{.spec.host}}
Copy/paste the address displayed within the terminal in a browser and say Hello world ;-)
The following demonstration provides an overview of hal:
TO DO : put here the recording embedded
Additional documentation can be found below: