Skip to content

Instantly share code, notes, and snippets.

@trisberg
Last active April 30, 2020 15:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trisberg/f7263c66595e13d1ec027769afd74c0f to your computer and use it in GitHub Desktop.
Save trisberg/f7263c66595e13d1ec027769afd74c0f to your computer and use it in GitHub Desktop.
Minikube and spring-cloud-dataflow-ops setup

Minikube and spring-cloud-dataflow-ops setup

Create Minikube instance

minikube start --cpus=4 --memory=8192

Add metallb loadbalancer

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/metallb.yaml
kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"

Configure metallb

mkip=$(minikube ip)
range=${mkip%%.${mkip##*.}}.200-${mkip%%.${mkip##*.}}.250
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - ${range}
EOF

Install NGINX Ingress Controller

kubectl create namespace nginx-ingress
helm template nginx-ingress --namespace nginx-ingress stable/nginx-ingress | kapp deploy -y -n nginx-ingress -a nginx-ingress -f -

Install Data Flow

Change to spring-cloud-dataflow-ops dir

cd ~/workspace/spring-cloud-dataflow-ops

Create namespace

kubectl create namespace scdf-system

Install mysql and rabbitmq

kapp -y deploy -a mysql -n scdf-system -f ./services/mysql/
kapp -y deploy -a rabbitmq -n scdf-system -f ./services/rabbitmq/

Install skipper-server

kubectl kustomize ./skipper-server/kustomize/overlays/dev | kapp -y deploy -a skipper-server -n scdf-system -f -

Install data-flow-server

kubectl kustomize ./data-flow-server/kustomize/overlays/dev | kapp -y deploy -a data-flow-server -n scdf-system -f -

Create Ingress for data-flow-server

ingress=$(kubectl get svc nginx-ingress-controller -n nginx-ingress -ojsonpath='{.status.loadBalancer.ingress[0].ip}')
SCDF_HOST=scdf.${ingress}.xip.io cat << EOF | kapp deploy -y -n scdf-system -a scdf-ingress -f -
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: scdf-server
spec:
  rules:
  - host: ${SCDF_HOST}
    http:
      paths:
      - backend:
          serviceName: scdf-server
          servicePort: 80
        path: /
EOF

Open dashboard

host=$(kubectl get ingress scdf-server -n scdf-system -ojsonpath='{.spec.rules[0].host}')
chrome http://${host}/dashboard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment