Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve readme 18 #65

Merged
merged 5 commits into from
Nov 7, 2022
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 28 additions & 70 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,20 @@

# Primaza project

Quarkus Primaza Service box Application - POC
Quarkus Primaza Service Box Application - POC

Primaza comes from the Greek word πρυμάτσα, which is a line used to tie boats to the dock.
Application developers need access to backing services to build and connect workloads.
Today in Kubernetes, the exposure of secrets for connecting workloads to external services such as REST APIs, databases, event buses, and many more is manual and custom-made.
Connecting workloads to backing services is always a challenge because each service provider suggests a different way to access their secrets, and each application developer consumes those secrets in a custom way to their workloads.
Primaza aims to support the discoverability, life cycle management and connectivity of services running in Kubernetes.

Primaza exposes several endpoints to manage a few type of objects:

- Claim: Claims should provide a mechanism for application developers to express which Service their applications require without having to know the exact coordinates (group kind version) of the Service Resource.
- Service: represents things like databases, message queues, DNS records, etc.
- Cluster: represent a Kubernetes cluster

Primaza name comes from the Greek word πρυμάτσα, which is a line used to tie boats to the dock.

This project uses Quarkus, the Supersonic Subatomic Java Framework.

Expand All @@ -25,83 +36,30 @@ cd servicebox-app
./mvnw compile quarkus:dev
```

## Requests samples
## Usage

curl --header "Content-Type: application/json" \
--request POST \
--data '{"name":"Oracle"}' \
http://localhost:8080/claims
Go to http://localhost:8080 in your browser, the page has a few buttons that displays the lists of `Claims`, `Services` and `Clusters`.
From each specific resource page you have the possibility to create them using the corresponding forms.


curl --header "Content-Type: application/json" \  ✔  16:22:00
--request POST \
--data '{"name":"Oracle", "version": "3.11.2", "endpoint": "tcp:5672", "deployed": "false"}' \
http://localhost:8080/services
### Usage via `curl`

If you wish to send create some resources via `curl` here there are some examples:

Adding a Claim

```bash
curl --header "Content-Type: application/json" \
--request POST \
--data '{"name":"Oracle", "version": "3.11.2", "endpoint": "tcp:5672", "deployed": "false"}' \
http://localhost:8080/services
--data '{"name":"Oracle"}' \
http://localhost:8080/claims
```
Adding a service

curl --header "Content-Type: application/x-www-form-urlencoded" \
--header "HX-Request: true" \
```bash
curl --header "Content-Type: application/json" \
--request POST \
--data '{"name":"Oracle", "version": "3.11.2", "endpoint": "tcp:5672", "deployed": "false"}' \
http://localhost:8080/services

curl -X POST http://localhost:8080/claims --header "Content-Type: application/json" \
--request POST \
--data "{\"name\":\"Oracle\"}"




> **_NOTE:_** Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.

## Packaging and running the application

The application can be packaged using:
```shell script
./mvnw package
```
It produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory.
Be aware that it’s not an _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory.

The application is now runnable using `java -jar target/quarkus-app/quarkus-run.jar`.

If you want to build an _über-jar_, execute the following command:
```shell script
./mvnw package -Dquarkus.package.type=uber-jar
```

The application, packaged as an _über-jar_, is now runnable using `java -jar target/*-runner.jar`.

## Creating a native executable

You can create a native executable using:
```shell script
./mvnw package -Pnative
```

Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
```shell script
./mvnw package -Pnative -Dquarkus.native.container-build=true
```

You can then execute your native executable with: `./target/servicebox-1.0.0-SNAPSHOT-runner`

If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.

## Related Guides

- RESTEasy Reactive ([guide](https://quarkus.io/guides/resteasy-reactive)): A JAX-RS implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.

## Provided Code

### RESTEasy Reactive

Easily start your Reactive RESTful Web Services

[Related guide section...](https://quarkus.io/guides/getting-started-reactive#reactive-jax-rs-resources)