adeia

package module
v0.0.0-...-079190a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 20, 2018 License: BSD-2-Clause Imports: 4 Imported by: 0

README

Adeia

Go Report Card Codacy Badge Build Status Docker Repository on Quay

Adeia is an application to deploy Ingress rules to a Kubernetes cluster depending on a list of domains provided by an http get call

Name

The word adeia originates from the Greek word άδεια which means 'to permit' in English.

Installing

Simply run go get github.com/seibert-media/adeia/cmd/adeia. There should now be a command adeia in your $GOPATH/bin.

First Run

Get a basic file server and let it run in the background on port 1337:

go get -u github.com/bborbe/server/bin/file_server

file_server \
-v=4 \
-logtostderr \
-root=files \
-port=1337

Put a file called example.json into the files/ directory. It should contain the list of domains you want adeia to provide ingresses for. Check it's working by running:

curl http://localhost:1337/example.json

You should see the list again.

You can now run:

adeia \
-v=4 \
-logtostderr \
-namespace=test \
-ingress-name=test \
-service-name=test \
-service-port=test \
-url=http://localhost:1337/example.json \
-dry-run

to see what changes adeia would make to your Kubernetes cluster.

If you're happy with what you see, actually apply the changes by leaving out the -dry-run flag:

adeia \
-v=4 \
-logtostderr \
-namespace=test \
-ingress-name=test \
-service-name=test \
-service-port=test \
-url=http://localhost:1337/example.json

Usage

Adeia provides a -help flag which prints usage information and exits.

Dependencies

All dependencies inside this project are being managed by dep and are checked in. After pulling the repository, it should not be required to do any further preparations aside from make deps to prepare the dev tools.

When adding new dependencies while contributing, make sure to add them using dep ensure --add "importpath".

Testing

To run tests you can use:

make test
# or
go test
# or
ginkgo -r

Contributing

This application is developed using behavior driven development. Please keep in mind to use this development method when contribution to the project.

If you are new to BDD have a look at this video which inspired this project to use BDD:

https://www.youtube.com/watch?v=uFXfTXSSt4I

Feedback and contributions are highly welcome. Feel free to file issues or pull requests.

Attributions

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Syncer

type Syncer struct {
	Fetcher fetcher
	Creator creator
	Applier applier
}

Syncer creates Ingress for a list of domains

func (*Syncer) Sync

func (i *Syncer) Sync() error

Sync fetches a list of domains an create ingresses

Directories

Path Synopsis
cmd
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL