Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/foomo/keel

Opinionated k8s service framework.
https://github.com/foomo/keel

go golang microservice microservices

Last synced: about 15 hours ago
JSON representation

Opinionated k8s service framework.

Awesome Lists containing this project

README

        

# keel

[![Build Status](https://github.com/foomo/keel/actions/workflows/test.yml/badge.svg?branch=main&event=push)](https://github.com/foomo/keel/actions/workflows/test.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/foomo/keel)](https://goreportcard.com/report/github.com/foomo/keel)
[![Coverage Status](https://coveralls.io/repos/github/foomo/keel/badge.svg?branch=main&)](https://coveralls.io/github/foomo/keel?branch=main)
[![GoDoc](https://godoc.org/github.com/foomo/keel?status.svg)](https://godoc.org/github.com/foomo/keel)

> Opinionated way to run services.

## Stack

- Zap
- Viper
- Open Telemetry
- Nats
- GoTSRPC

## Examples

See the examples folder for usages

```go
package main

import (
"net/http"

"github.com/foomo/keel"
"github.com/foomo/keel/service"
)

func main() {
svr := keel.NewServer(
keel.WithHTTPZapService(true),
keel.WithHTTPViperService(true),
keel.WithHTTPPrometheusService(true),
)

l := svr.Logger()

svs := newService()

svr.AddService(
service.NewHTTP(l, "demo", "localhost:8080", svs),
)

svr.Run()
}

func newService() *http.ServeMux {
s := http.NewServeMux()
s.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte("OK"))
})
return s
}
```

## How to Contribute

Make a pull request...

## License

Distributed under MIT License, please see license file within the code for more details.