{"id":15130042,"url":"https://github.com/halkyonio/hal","last_synced_at":"2025-10-05T19:28:47.153Z","repository":{"id":57708625,"uuid":"184564676","full_name":"halkyonio/hal","owner":"halkyonio","description":"Easily create and manage Kubernetes applications using the Halkyon operator, made with ❤️ by the Halkyon team.","archived":false,"fork":false,"pushed_at":"2023-03-07T02:37:36.000Z","size":598,"stargazers_count":6,"open_issues_count":20,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-06T15:47:49.886Z","etag":null,"topics":["cli","halkyon","kubernetes","kubernetes-application","kubernetes-operator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/halkyonio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-05-02T10:52:49.000Z","updated_at":"2024-03-25T09:24:07.000Z","dependencies_parsed_at":"2023-07-13T22:30:24.269Z","dependency_job_id":null,"html_url":"https://github.com/halkyonio/hal","commit_stats":{"total_commits":367,"total_committers":8,"mean_commits":45.875,"dds":0.1607629427792916,"last_synced_commit":"7c71dec5bcff4881625c39bc918d3d7581b5bbad"},"previous_names":["halkyonio/kreate","snowdrop/kreate"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/halkyonio/hal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halkyonio%2Fhal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halkyonio%2Fhal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halkyonio%2Fhal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halkyonio%2Fhal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halkyonio","download_url":"https://codeload.github.com/halkyonio/hal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halkyonio%2Fhal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259509429,"owners_count":22868834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","halkyon","kubernetes","kubernetes-application","kubernetes-operator"],"created_at":"2024-09-26T02:27:48.829Z","updated_at":"2025-10-05T19:28:47.037Z","avatar_url":"https://github.com/halkyonio.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hal\n\n## Table of Contents\n- [Overview](#overview)\n- [Key features](#key-features)\n- [Demonstration](#demonstration)\n- [Building hal](#building-hal)\n- [Downloading a snapshot](#downloading-a-snapshot)\n- [Deploying a component using hal](#deploying-a-component-using-hal)\n   * [1. Scaffold the Spring Boot applications](#1-scaffold-the-spring-boot-applications)\n   * [2. Deploy the Component](#2-deploy-the-component)\n   * [3. Connect to the REST services](#3-connect-to-the-rest-services)\n- [Additional documentation](#additional-documentation)\n\n## Overview\nHal 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.\n\n[![CircleCI](https://circleci.com/gh/halkyonio/hal.svg?style=svg)](https://circleci.com/gh/halkyonio/hal)\n\n## Key features\n`hal` is part of the [Halkyon project](https://github.com/halkyonio/operator) which aims to simplify the deployment of modern micro-services applications on Kubernetes. We encourage you to take a look to the [documentation](https://github.com/halkyonio/operator#introduction) 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\n- Scaffold Spring Boot applications\n- Deploy Microservices applications as Components\n- Switch the `DeploymentMode` of the component from `Dev` to `Build` mode\n- Compose \u0026 link microservices\n\n## Demonstration\nTo see `hal` in action where it will compose 2 Spring Boot Applications as microservices with a Database \n\n[![asciicast](https://asciinema.org/a/ZWkxvg6LUzedQ2IPzmFTUeCP2.png)](https://asciinema.org/a/ZWkxvg6LUzedQ2IPzmFTUeCP2)\n\n## Building hal\n- `git clone` this project *outside* of your `$GOPATH` (since it uses `go modules`) or set `GO111MODULE=on` on your environment\n- Build: `cd hal;make` with Go 1.11+ (currently only 1.12 is tested)\n- Run: `./hal`, this will display the inline help\n- Enjoy!\n\n## Downloading a snapshot\n- Go to https://circleci.com/gh/halkyonio/hal/tree/master and select the build number you are interested in (presumably, one \nthat succeeded! 😁)\n- Select the `Artifacts` tab and navigate the hierarchy to find the artifact you are interested in.\n\n## Deploying a component using `hal`\nAfter installing `hal`, the following steps allows to create and deploy a project to a cluster.\n**Note**: this assumes that you are connected to a Halkyon-enabled OpenShift/Kubernetes cluster.\n\n### 1. Scaffold the Spring Boot applications \n\n - Create a development folder on your laptop\n`mkdir haldemo \u0026\u0026 cd haldemo`\n\n - Create a new scaffolded component (note that it might make more sense to do this interactively):\n\n```\nhal component create \\\n    -r spring-boot \\\n    -i 2.1.6.RELEASE \\\n    -g me.example \\\n    -a hello-world \\\n    -v 1.0.0-SNAPSHOT \\\n    -p me.example.demo \\\n    -s true \\\n    -x true \\\n    -o 8080 \\\n    hello-world\n```\n\n### 2. Deploy the Component\n\nA 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](https://github.com/halkyonio)-enabled cluster, the [Halkyon operator](https://github.com/halkyonio/operator) will create these OpenShift/Kubernetes resources such as `Deployment`, `Service`, `PersistentVolumeClaim`, `Ingress` or `Route` on OpenShift if the component is exposed.\n\n- Compile and generate the `halkyon` descriptors files of the application using the following command:\n```\nmvn package -f hello-world\n```\n\n- Push the hello-world component to the remote cluster you're connected to:\n```\nhal component push -c hello-world\n```\n\n- Check if the component has been correctly installed:\n```\nkubectl get components\n\nNAME               RUNTIME       VERSION         AGE       MODE      STATUS    MESSAGE   REVISION\nhello-world        spring-boot   2.1.6.RELEASE   7m17s     dev       Ready     Ready     6aadfc1a982fcd68\n```\n\n### 3. Connect to the REST services\n\nIf you deploy on OpenShift, get the route address of the microservice using this command: \n```\noc get routes/hello-world --template={{.spec.host}}\n```\n\nIf you deploy on a plain Kubernetes, you can use this command:\n```\nkubectl get ingress/hello-world\n```\n\nCopy/paste the address displayed within the terminal in a browser and say Hello world 😉\n\n## Additional documentation\n\nAdditional documentation can be found below:\n- [CLI Reference](https://github.com/halkyonio/hal/blob/master/cli-reference.adoc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalkyonio%2Fhal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalkyonio%2Fhal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalkyonio%2Fhal/lists"}