Managing BOSH and CF *from* Kubernetes
Go to file
James Hunt d34625db35 Update gluon CLI for CF Summit HOL 2020-06-19 16:12:17 -04:00
api/v1alpha1 LICENSING (.md) 2020-05-15 13:35:59 -04:00
bin Update gluon CLI for CF Summit HOL 2020-06-19 16:12:17 -04:00
config Support key mapping in configmap var sources 2020-05-14 11:29:11 -04:00
controllers LICENSING (.md) 2020-05-15 13:35:59 -04:00
deploy Operator Installation Docs / Assets 2020-06-17 09:02:33 -04:00
docker/gluon-apparatus Move gluon-apparatus image into this codebase 2020-05-14 16:27:00 -04:00
hack LICENSING (.md) 2020-05-15 13:35:59 -04:00
.gitignore Command-line Interface Utility `gluon` 2020-05-16 09:48:51 -04:00
CONDUCT.md Contributing / Code of Conduct 2020-05-15 13:40:05 -04:00
CONTRIBUTING.md Contributing / Code of Conduct 2020-05-15 13:40:05 -04:00
Dockerfile Initial Kubebuilder Scaffolding 2020-05-08 08:46:49 -04:00
LICENSE LICENSING (.md) 2020-05-15 13:35:59 -04:00
Makefile Move gluon-apparatus image into this codebase 2020-05-14 16:27:00 -04:00
PROJECT Support for BOSHConfig update/uploads 2020-05-11 12:55:55 -04:00
README.md Operator Installation Docs / Assets 2020-06-17 09:02:33 -04:00
go.mod Rough impl of BOSHDeployment controller logic 2020-05-08 09:53:29 -04:00
go.sum Initial Kubebuilder Scaffolding 2020-05-08 08:46:49 -04:00
logo.png README 2020-05-16 08:51:43 -04:00
main.go LICENSING (.md) 2020-05-15 13:35:59 -04:00
video.png Try a different video thumbnail 2020-05-16 08:55:49 -04:00

README.md

Gluon - BOSH, CF, & Kubernetes

Ever wished you could manage your BOSH deployments and Cloud Foundries from a Kubernetes control plane cluster? Gluon might be just the thing for you and your platform operations.

Watch the Introductory Video

Gluon Introductory Video

Installing Gluon on YOUR Kubernetes Cluster

All fired up? Ready to give Gluon a whirl on some Kubernets + IaaS that you control? Awesome. To get started, we're going to assume that you already have a Kubernetes cluster spun up somewhere, that you have the ability to kubectl ... against it, and that you have all the information you need to deploy a new BOSH director. If that last bit is a bit iffy, you can start with the BOSH.io docs for AWS, GCP, Azure, or ESX.

The first thing you'll need to do is install cert-manager. You can do this via Helm, or by applying raw Kubernetes resource specification YAMLs. We personally prefer the latter:

$ kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.1/cert-manager.yaml

(from the cert-manager installation docs)

Once cert-manager is up, you'll need to provide it with a certificate issuer. For simplicity's sake, and for development purposes and curiosity, we can just used a self-signed issuer:

$ cat selfsigned-issuer.yml
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: internal-ca
  namespace: cert-manager
spec:
  selfSigned: {}

$ kubectl apply -f selfsigned-issuer.yml

This internal-ca cluster-wide certificate issuer will be used by the validating and defaulting webhooks that you get (for free!) with Gluon. For real-world production use, you probably want something like a real, honest-to-goodness CA, a Vault-backed issuer, or an ACME issuer (à la Let's Encrypt).

Finally, it's time to install the Gluon custom resource definitions (or "CRDs" to those hip Kubernetes cats), by applying yet another YAML from the Internet — this time from this very repository:

$ kubectl apply -f https://raw.githubusercontent.com/starkandwayne/gluon/master/deploy/k8s.yml

With that configuration all done, you should be able to see the new Gluon CRDs in the output of kubectl api-resources:

$ kubectl api-resources | grep gluon
boshconfigs      bcc            gluon.starkandwayne.com   true   BOSHConfig
boshdeployments  bosh           gluon.starkandwayne.com   true   BOSHDeployment
boshstemcells    stemcell,bsc   gluon.starkandwayne.com   true   BOSHStemcell

Now, you're all set!