Code Monkey home page Code Monkey logo

cryostat3's Introduction

Cryostat3

CI build and push Google Group : Cryostat Development

This project uses Quarkus, the Supersonic Subatomic Java Framework.

If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .

PREVIEW

This repository is in an active development, early preview state, and will eventually be used for 3.x release versions of Cryostat. See cryostatio/cryostat for the old repository containing the < 3.0 codebase.

CONTRIBUTING

We welcome and appreciate any contributions from our community. Please visit our guide on how you can take part in improving Cryostat3.

See contribution guide โ†’

REQUIREMENTS

Build Requirements:

Run Requirements:

BUILD

Setup Dependencies

For ease and convenience, it is suggested to use podman with the following configurations:

$ systemctl --user enable --now podman.socket

$HOME/.bashrc (or equivalent shell configuration)

export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock

$HOME/.testcontainers.properties

ryuk.container.privileged=true
docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy
testcontainers.reuse.enable=false

Initialize submodules before building:

$ git submodule init && git submodule update
$ cd src/main/webui
$ yarn install && yarn yarn:frzinstall
$ cd -

Build the application container image

The application image can be created using:

# With Maven
$ ./mvnw package
# Or with Quarkus CLI
$ quarkus build

Build and run the application in dev mode

You can run your application in dev mode that enables live coding using:

# With Maven
$ ./mvnw compile quarkus:dev
# Or with Quarkus CLI
$ quarkus dev

This will run Cryostat as a local JVM process hooked up to its frontend, and required companion services in containers. Any changes made to the backend or frontend sources, application.properties, pom.xml, etc. will trigger automatic rebuilds and live-coding.

NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8181/q/dev/.

RUN

Local Smoketesting

Development on this project is primarily done using podman, though things should generally work when using docker as well. Ensure you have performed the podman setup above first, then build the container image and run smoketests. This will spin up the cryostat container and its required services.

# build Cryostat container, clean up any dangling container images/layers
$ ./mvnw package ; podman image prune -f
# alternatively, use Quarkus CLI instead of the Maven wrapper
$ quarkus build ; podman image prune -f
# check the available smoketest options
$ bash smoketest.bash -h
# run a smoketest scenario
$ bash smoketest.bash -O # without the -O flag, the smoketest will pull the latest development image version, rather than the one you just built

To make containers' names DNS-resolvable from the host machine, do:

$ git clone https://github.com/figiel/hosts libuserhosts
$ cd libuserhosts
$ make PREFIX=$HOME/bin all install
$ echo 'export LD_PRELOAD=$HOME/bin/lib/libuserhosts.so' >> ~/.bashrc
$ export LD_PRELOAD=$HOME/bin/lib/libuserhosts.so

(this will require a C compiler toolchain present on your development machine)

You can verify that this setup works by running smoketest.bash, and then in another terminal:

$ LD_PRELOAD=$HOME/bin/libuserhosts.so ping auth
$ LD_PRELOAD=$HOME/bin/libuserhosts.so curl http://auth:8080
$ LD_PRELOAD=$HOME/bin/libuserhosts.so firefox http://auth:8080

cryostat3's People

Contributors

andrewazores avatar dependabot[bot] avatar aali309 avatar mwangggg avatar tthvo avatar maxcao13 avatar ebaron avatar lkonno avatar josh-matsuoka avatar aptmac avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.