The deployment of images and updating of the Kubernetes services and applications is performed by a Jenkins workflow found here
The images used in deployment are built automatically for the master branch using TravisCI and pushed to Docker Hub (see https://hub.docker.com/r/taccaci/geoapi and https://hub.docker.com/r/taccaci/geoapi-workers).
geoapi.yaml
describes the configuration of the cluster. The file is adjusted using envsubstr
to provide
custom values for the image tags, node port and nfs service for the production or staging environments.
The nfsshare.yaml
and the nfsshare_pvc.yaml
in the repo are used for configuring the nfs share. Note that the
configuration (i.e. persistentVolumeClaim
) is the same for production and staging except that the clusterIP differs:
- clusterIP: 10.104.129.89 (prod)
- clusterIP: 10.102.247.244 (dev)
This service/pod are only set up once manually for production deployment and then once for staging deployment. They do not need to be updated for any changes to source code.
cic02
is used to access the cluster for the production (context=wma-geospatial
) and staging (context=geoapi-dev
)
environments.
ssh cic02
CONTEXT=`geoapi-dev`
kubectl get --context=$CONTEXT all
kubectl describe --context=$CONTEXT deployment.apps/geoapi
kubectl logs --tail 100 --context=$CONTEXT deployment.apps/geoapi
kubectl logs --tail 100 --context=$CONTEXT deployment.apps/geoapi-workers