This repository contains the files necessary to run a standalone UAA using fissile. It is roughly equivalent to doing the same with BOSH.
scf.git has sample instructions for setting one up locally via hyperkube; other methods of deploying Kubernetes should work as well.
Docker is required for fissile to build images. You may also need access to a docker registry unless you're testing against a vagrant box or minikube. In the case of minikube, reusing the minikube docker daemon may be useful.
fissile is required to build the docker images and configuration.
direnv is recommended, but manually sourcing the .envrc
should work just as
well.
Ruby 2.3 is needed to install some of the releases. Using rbenv with ruby-build should work, but if you have issues ruby-install is also an option.
The Ruby version of the BOSH cli is required as of writing, as fissile is not yet compatible with the golang BOSH v2.
Required to create certificates. Requires golang.
go get github.com/square/certstrap
-
Run
generate-certs.sh
to generate the SSL certificates required. The default options are fine. -
Create the BOSH release for
cf-mysql
,uaa
, andhcf
:bosh create release --dir src/cf-mysql-release --force --name cf-mysql bosh create release --dir src/uaa-release --force --name uaa bosh create release --dir src/hcf-release --force --name hcf
-
Build fissile images
STEMCELL=splatform/fissile-stemcell-opensuse:42.2-0.g58a22c9-28.16 fissile build packages --stemcell ${STEMCELL} fissile build images --stemcell ${STEMCELL}
Or, more convenient
```
make images
```
Note, the specified stemcell is an example. Change it to suit. The
alternative command uses the definition of FISSILE_STEMCELL
in
.envrc
for this.
The default configurations are designed for the scf vagrant box; see instructions there.
- If necessary, push the images to your Kubernetes nodes (or publish them in a way that they get fetch the images).
- Build Kubernetes configs. This will create the files in a directory named
kube
:If you are not building the images directly on the Kubernetes cluster (or if you have multiple nodes), you will also need to specifyfissile build kube -k kube/ --use-memory-limits=false \ -D $(echo env/*.env | tr ' ' ',')
--docker-registry=docker.registry:123456
(and possibly--docker-organization
) so that the images can be pulled. - If you're not building directly on a single Kubernetes node that you will
deploy to, you will need to publish to the specified docker registry:
fissile show image | xargs -i@ docker tag @ "${FISSILE_DOCKER_REGISTRY}/@" fissile show image | xargs -i@ docker push "${FISSILE_DOCKER_REGISTRY}/@"
- Deploy to Kubernetes
# The following is a sample for hyperkube/minikube/vagrant kubectl create -f kube-test/storage-class-host-path.yml kubectl create namespace uaa kubectl create -n uaa -f kube/bosh/ # This will expose UAA for use; adjust the contents if you're not deploying # to vagrant kubectl create -n uaa -f kube-test/exposed-ports.yml