Defaults:
- mysql user: teresa
- mysql password: foobar
- mysql database: teresa
- mysql namespace: mysql
- mysql helm name: mysql
- mysql service name: teresa
- teresa namespace: teresa
- teresa helm name: teresa
- teresa super user: [email protected]
- teresa super user password: foobar1234
- teresa team: foobar
You'll need:
- minikube
- docker
- helm
After installing minikube, make sure your context is set to the minikube cluster (running kubectl config current-context
) and install Helm by running helm init
.
Install mysql on your minikube cluster
helm install --name mysql stable/mysql --namespace mysql
Follow the chart instructions to port forward this mysql to your local computer.
Connect to mysql, create an user, grants and database
CREATE USER 'teresa'@'%' IDENTIFIED BY 'foobar';
CREATE DATABASE teresa;
GRANT ALL PRIVILEGES ON teresa.* TO 'teresa';
Run make docker-build
to build both the client and the server (the server will create an image called teresa:latest
).
Tag the image:
docker tag teresa:latest test-registry/teresa:dev
Running eval $(minikube docker-env)
will allow to use your docker daemon with minikube. Make sure you change the imagePullPolicy on the Teresa deployment to Never.
After you configured Minikube, Helm and built your teresa-server image:
Create a custom.yaml
file and modify some of the Helm values:
docker:
registry: test-registry
image: teresa
tag: dev
Create a package of your local helm chart
helm package helm/chart/teresa
Run the steps mentioned on Teresa's readme (changing some parameters)
$ openssl genrsa -out teresa.rsa
$ export TERESA_RSA_PRIVATE=`base64 teresa.rsa`
$ openssl rsa -in teresa.rsa -pubout > teresa.rsa.pub
$ export TERESA_RSA_PUBLIC=`base64 teresa.rsa.pub`
$ helm install <package-name>.tgz \
--name teresa \
--namespace teresa \
--set rsa.private=$TERESA_RSA_PRIVATE \
--set rsa.public=$TERESA_RSA_PUBLIC \
--set aws.key.access=AKIA \
--set aws.key.secret=secret \
--set aws.region=us-east-1 \
--set aws.s3.bucket=teresa \
--set db.name=teresa \
--set db.hostname=mysql.mysql \
--set db.username=teresa \
--set db.password=foobar \
--set rbac.enabled=true
Follow the instructions to create a super user on teresa.
After everything is good, you can port forward teresa:
kubectl port-forward svc/teresa-teresa 50051 -n teresa
kubectl exec -it $(kubectl get pods -n teresa -o jsonpath='{.items[0].metadata.name}') -n teresa -c teresa -- ./teresa-server create-super-user --name user.name --email user.email --password userpass
Go to $GOPATH/src/github.com/golang/protobuf
and checkout to the tag 69b215d
. Run go install github.com/golang/protobuf/protoc-gen-go
then checkout to master
again.
Start minikube with the --extra-config
flag, overwriting apiserver.cloud-provider
and controller-manager.cloud-provider
.
minikube start --extra-config=apiserver.cloud-provider=gce --extra-config=controller-manager.cloud-provider=gce
(References on this one https://blog.scottlowe.org/2018/09/28/setting-up-the-kubernetes-aws-cloud-provider/ https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/ kubernetes/minikube#4138)
You just have to set the MINIKUBE_HOME envvar to somewhere else.
https://github.com/kubernetes/minikube/blob/master/docs/env_vars.md