Skip to content

lukepatrick/minio-brigade

Repository files navigation

minio-brigade

minio-brigade is a Brigade Project that utilizes Minio.

This Project was designed to show a Brigade Job generating data files (e.g. unit test results and code coverage), sharing the files in the Brigade Project Shared PVC, and finally persisting the data in an object storage service using a Minio-JS client.

Prerequisites

  1. Have a running Kubernetes environment
  2. Setup Helm - this assumes Helm on your Host regardless of the Helm container used later on.
  3. (optional) an NFS Provisioner - my environment uses Kubernetes clusters running on standalone bare metal machines. Recommended simple NFS Provisioner is IlyaSemenov/nfs-provisioner-chart. Follow the instructions for adding the helm repo. At install set this as the default Provisioner:
$ helm install --name nfs-provisioner --namespace nfs-provisioner nfs-provisioner/nfs-provisioner --set defaultClass=true

If not already set up on your host, add nfs-common

$ apt-get install nfs-common

Install

Set up Brigade

Follow the quick-start guide:

Install Brigade into your Kubernetes cluster is to install it using Helm.

$ helm repo add brigade https://azure.github.io/brigade
$ helm install -n brigade brigade/brigade

To manually run Brigade Projects the brig binary is required. Follow the Developers Guide to build the binary. Assuming Brigade is cloned and prerequisites met, simply run:

$ make brig

Test brig with brig version

Install minio-brigade Project

Clone minio-brigade and change directory

$ git clone https://github.com/lukepatrick/minio-brigade
$ cd minio-brigade

Helm install minio-brigade

note the name and namespace can be customized

$ helm install --name minio-brigade brigade/brigade-project -f minio-brigade.yaml

Optionally to allow GitHub webhooks, install your project with these set commands:

$ helm install --name minio-brigade brigade/brigade-project /
    -f minio-brigade.yaml /
    --set sharedSecret=secret_string_for_webhook /
    --set github.token=github_oauth_token

Set up Minio

$ kubectl apply -f minio-deployment/minio-deployment.yaml

Usage

Manually run the project. The project name is the same as the project value in the minio-brigade.yaml

$ brig run lukepatrick/minio-brigade

Review a webhook event

I've used this as a webhook demo for my org. If you skip the manual run with brig the build won't log to your console. To get the details of your webhook build:

$ brig build list

Note the ID of the most recent TYPE push from PROVIDER github

$ brig build get {id}

Get the worker ID (pod id) and then the kubernetes logs:

$ kubectl logs brigade-worker-01c4

From here you can grab any Job pod ID's and get kubernetes logs for those if needed.

Contribute

PRs accepted.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published