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.
Used to write timing information to a file. This information can be used to identify slow parts of the process when trying to make things faster.
Requires golang.
go get -d github.com/SUSE/stampy
cd $GOPATH/src/github.com/SUSE/stampy
make
cp build/linux-amd64/stampy $GOBIN/stampy
- Get all submodules:
git submodule update --init --recursive
-
Load needed environment variables (optional, only if you don't use direnv):
. .envrc
-
Generate the SSL certificates required:
make certs
-
Get the opensuse stemcell:
docker pull $FISSILE_STEMCELL
-
Create a directory to write the release tarball into:
mkdir -p output/splatform
-
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
```sh
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/
You can find the releases in container-host-files/etc/scf/config/role-manifest.yml
. These are final releases and to bump them you only have to change the relevant lines in that file (url, version, sha1).