OpenFaaS Cloud Bootstrap
OpenFaaS Cloud Bootstrap
Step 1:
Das Projekt ofc-bootstrap (github.com/openfaas-incubator/ofc-bootstrap) von Github ins Go Verzeichnis zeihen.
Alle Abhängigkeiten (siehe Github) installieren. E.g kubectl, dep, helm, faas-cli
Step 2:
Eigenes init.yaml File erstellen.
Im Projekt (ofc-bootstrap) das Beispiel-File kopieren.
cp example.init.yaml init.yaml
Step 3:
Docker Preferences am Mac oder Windows öffnen und den Hacken bei "Securely store Docker logins in macOS keychain" entfernen.
Dann via CMD
docker login
damit werden die Daten in das File ~/.docker/config.json geschrieben - die wiederum zum Einstellen der Docker Registry und Docker Hub Account Funktionen verwendet werden.
Step 4:
init.yaml File bearbeiten.
SCM festlegen: scm: github
Step 5:
Github App anlegen:
Github -> Settings -> Developer Settings -> GitHub Apps -> New GitHub App
https://github.com/openfaas/openfaas-cloud/blob/master/docs/README.md
!Download Private Key für die GitHub App
Step 6:
Digital Ocean:
Einen Kubernetes Cluster erstellen.
- Standard nodes.
- Frankfurt.
- 4 GB Memory / 2 vCPUs
- 3 Nodes
Tags: Projekt Name eg. bit45-com
Name: bit45-com
Download Config File: Kubernetes Cluster -> Dein Cluster -> Button: Download Config File
Run:
export KUBECONFIG=~/Downloads/bit45-com-kubeconfig.yaml
Check if Nodes are running:
kubectl get nodes
Use our init.yaml File to setup our system:
go run main.go -yaml=init.yaml
Get all Namespaces
kubectl get all --all-namespaces
Step 7:
DigitalOcean Domains anlegen (Domains/DNS)
Die Domains hinzufügen:
- bit45.com
- *.bit45.com
- system.bit45.com
- auth.bit45.com
Update DNS:
Wir verwenden einen LoadBalancer der eine Public IP hat. Diese benötigen wir um die DNS Einträge anzupassen.
kubectl get svc -n default
Wir updaten die URLs: *.bit45.com, system.bit45.com und auth.system.bit45.com
Step 8:
Smoke Test:
Dashboard anzeigen:
http://system.bit45.com/dashboard/githubusername
Team Member hinzufügen:
Edit CUSTOMERS ACL File
Error Handling:
Check GitHub App Webpage -> click Advanced - dort Requests überprüfen.
Careful! Rollback init.yaml Settings:
run ./scripts/reset.sh