This is the worker that will run and process the superkey creation steps. Consumes messages off of a topic and creates required resources in AWS or any other provider (currently only AWS is supported)
To build:
make
To build the container:
make container
To run locally:
make run
To run in the container:
make runcontainer
Folder | description |
---|---|
amazon/ | aws api client files for s3, iam, etc |
config/ | config setup in a struct |
logger/ | <self explanatory> |
messaging/ | kafka client |
sources/ | sources api client wrapper |
provider/ | interface & structs for various providers |
util/ | various utilities for producing messages etc |
Containerfile | container spec with builder image, based on UBI |
worker.go | the listener worker |
main.go | how to GO! |
struct
definitions are in types.go
files, methods on said structs are divided into other files or in the same file if they don't belong anywhere else.
-
amazon:
Theamazon/
folder contains the api client iniam.go
,s3.go
andreporting.go
. Thecredentials.go
file contains methods on the Amazon Client struct to create a new AWS API Client. -
messaging: Currently only a couple functions:
Consumer(topic)
to return a consumerConsumeWithFunction(topic, func)
that takes a topic and applies a function on each message that comes through said topic.
-
provider: The meat and potatoes of where the application creation happens, interfaces + structs are in
types.go
.forge.go
is where the provider gets instantiated based on request typeamazon_provider.go
the current only implemented superkey provider. This file contains the logic to actually create the superkey request based on a request that comes through kafka.
This project is available as open source under the terms of the Apache License 2.0.