1
0
Fork 0
hscloud/go/mirko
q3k 13c90f0fe6 go/mirko: add GetRemoteHTTPClient
Change-Id: Icf1ec5c28ea487e62a23590069042c5b9edad846
2021-05-23 13:03:19 +02:00
..
tests/sql go/mirko: add SQL migrations machinery 2019-08-03 23:49:43 +02:00
BUILD.bazel go/mirko: add GetRemoteHTTPClient 2021-05-23 13:03:19 +02:00
README statusz: fix executable sha256 2018-10-25 23:37:37 +02:00
kubernetes.go go/mirko: move kubernetes clientset state to singleton 2021-05-22 19:16:39 +00:00
mirko.go go/mirko: move kubernetes clientset state to singleton 2021-05-22 19:16:39 +00:00
revproxy.go go/mirko: add GetRemoteHTTPClient 2021-05-23 13:03:19 +02:00
revproxy_test.go go/mirko: add GetRemoteHTTPClient 2021-05-23 13:03:19 +02:00
sql.go bgpwtf/cccampix: draw the rest of the fucking owl 2019-08-11 23:43:25 +02:00
sql_migrations.go go/mirko: add SQL migrations machinery 2019-08-03 23:49:43 +02:00
trace.go go/mirko: fix trace logging 2020-08-16 13:25:40 +00:00

README

Mirko, the HSWAW microservice helper library
============================================

Wanna write a Go microservice for HSWAW? Can't be arsed to copy paste code? This is the library for you!

Usage (dev)
-----------

    package main

    import (
        "code.hackerspace.pl/hscloud/go/mirko"
    )

    func main() {
        m := mirko.New()

        // setup/checks before TCP ports are opened...
        // ...

        if err := m.Listen(); err != nil {
            glog.Exitf("Listen(): %v", err)
        }

        // register your gRPC and http handlers...
        // (relfection and basic debug http is automatically registered)
        // pb.RegisterFooServer(m.GRPC(), s)
        // m.HTTPMux().HandleFunc("/debug/foo", fooHandler)

        if err := m.Serve(); err != nil {
            glog.Exitf("Serve(): %v", err)
        }

        // start any other background processing...
        // (you can use m.Context() to get a context that will get
        // canceled when the service is about to shut down)

        <-m.Done()
    }

Usage (running)
---------------

The following flags are automatically registered:

 - `-listen_address` (default: `127.0.0.1:4200`): where to listen for gRPC requests
 - `-debug_address` (default: `127.0.0.1:4201`): where to listen for debug HTTP requests
 - `-debug_allow_all` (default: false): whether to allow all IP address (vs. localhost) to connect to debug endpoint

The following debug HTTP handlers are installed:

 - `/debug/status`: show the statusz page
 - `/debug/requests`: show the [net/trace](https://godoc.org/golang.org/x/net/trace) page (including gRPC traces)