halkyonio / hal

Easily create and manage Kubernetes applications using the Halkyon operator, made with ❤️ by the Halkyon team.
GNU General Public License v3.0
6 stars 5 forks source link
cli halkyon kubernetes kubernetes-application kubernetes-operator

hal

Table of Contents

Overview

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 Halkyon team.

CircleCI

Key features

hal is part of the Halkyon project which aims to simplify the deployment of modern micro-services applications on Kubernetes. We encourage you to take a look to the documentation of Halkyon in order to understand better the context of hal. hal is a tool capable of communicating with the cluster doing the following tasks

Demonstration

To see hal in action where it will compose 2 Spring Boot Applications as microservices with a Database

asciicast

Building hal

Downloading a snapshot

Deploying a component using hal

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.

1. Scaffold the Spring Boot applications

hal component create \
    -r spring-boot \
    -i 2.1.6.RELEASE \
    -g me.example \
    -a hello-world \
    -v 1.0.0-SNAPSHOT \
    -p me.example.demo \
    -s true \
    -x true \
    -o 8080 \
    hello-world

2. Deploy the Component

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.

NAME RUNTIME VERSION AGE MODE STATUS MESSAGE REVISION hello-world spring-boot 2.1.6.RELEASE 7m17s dev Ready Ready 6aadfc1a982fcd68


### 3. Connect to the REST services

If you deploy on OpenShift, get the route address of the microservice using this command: 

oc get routes/hello-world --template={{.spec.host}}


If you deploy on a plain Kubernetes, you can use this command:

kubectl get ingress/hello-world



Copy/paste the address displayed within the terminal in a browser and say Hello world 😉

## Additional documentation

Additional documentation can be found below:
- [CLI Reference](https://github.com/halkyonio/hal/blob/master/cli-reference.adoc)