Skip to content

Instantly share code, notes, and snippets.

@trisberg
Last active April 27, 2020 21:30
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/edeb1f202d8d620a53a2a3de27b491b1 to your computer and use it in GitHub Desktop.
Save trisberg/edeb1f202d8d620a53a2a3de27b491b1 to your computer and use it in GitHub Desktop.
SCDF Install Notes

SCDF Install Notes

Create GKE cluster

cloud container clusters create spring-test \
  --cluster-version=latest \
  --machine-type=n1-standard-2 \
  --enable-autoscaling --min-nodes=1 --max-nodes=3 \
  --enable-autorepair \
  --scopes=cloud-platform \
  --num-nodes=2 \
  --zone=us-central1-c

Install using kapp

Install kapp from https://github.com/k14s/kapp/releases

setup

kubectl create namespace apps

ingress

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

scdf infrasructure

kubectl create namespace scdf-system
kapp deploy -y -n apps --into-ns scdf-system -a scdf-infra \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/rabbitmq/rabbitmq-deployment.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/rabbitmq/rabbitmq-svc.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/mysql/mysql-pvc.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/mysql/mysql-secrets.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/mysql/mysql-deployment.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/mysql/mysql-svc.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/server/server-roles.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/server/server-rolebinding.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/server/service-account.yaml

skipper

kapp deploy -y -n apps --into-ns scdf-system -a scdf-skipper \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/skipper/skipper-config-rabbit.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/skipper/skipper-deployment.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/skipper/skipper-svc.yaml

scdf server

kapp deploy -y -n apps --into-ns scdf-system -a scdf-server \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/server/server-config.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/server/server-svc.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/server/server-deployment.yaml

scdf server ingress

SCDF_HOST=scdf.springdeveloper.com cat << EOF | kapp deploy -y -n apps --into-ns 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: /
status:
  loadBalancer: {}
EOF

prometheus / grafana

cat << EOF | kapp deploy -y -n apps --into-ns scdf-system -a scdf-prometheus-config \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/prometheus/prometheus-clusterroles.yaml \
  -f -
kind: ServiceAccount
apiVersion: v1
metadata:
  name: prometheus
  labels:
    app: prometheus
  namespace: scdf-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: prometheus
  labels:
    app: prometheus
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: prometheus
subjects:
- kind: ServiceAccount
  name: prometheus
  namespace: scdf-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: prometheus-proxy
  labels:
    app: prometheus-proxy
  namespace: scdf-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: prometheus-proxy
  labels:
    app: prometheus-proxy
subjects:
  - kind: ServiceAccount
    name: prometheus-proxy
    namespace: scdf-system
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: prometheus
  labels:
    app: prometheus
data:
  prometheus.yml: |-
    global:
      scrape_interval: 10s
      scrape_timeout: 9s
      evaluation_interval: 10s
    scrape_configs:
    - job_name: 'proxied-applications'
      metrics_path: '/metrics/connected'
      kubernetes_sd_configs:
        - role: pod
          namespaces:
            names:
              - scdf-system
      relabel_configs:
        - source_labels: [__meta_kubernetes_pod_label_app]
          action: keep
          regex: prometheus-proxy
        - source_labels: [__meta_kubernetes_pod_container_port_number]
          action: keep
          regex: 8080
    - job_name: 'proxies'
      metrics_path: '/metrics/proxy'
      kubernetes_sd_configs:
        - role: pod
          namespaces:
            names:
              - scdf-system
      relabel_configs:
        - source_labels: [__meta_kubernetes_pod_label_app]
          action: keep
          regex: prometheus-proxy
        - source_labels: [__meta_kubernetes_pod_container_port_number]
          action: keep
          regex: 8080
        - action: labelmap
          regex: __meta_kubernetes_pod_label_(.+)
        - source_labels: [__meta_kubernetes_pod_name]
          action: replace
          target_label: kubernetes_pod_name
EOF
kapp deploy -y -n apps --into-ns scdf-system -a scdf-prometheus-grafana \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/prometheus-proxy/prometheus-proxy-deployment.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/prometheus-proxy/prometheus-proxy-service.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/prometheus/prometheus-deployment.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/prometheus/prometheus-service.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/grafana/grafana-secret.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/grafana/grafana-configmap.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/grafana/grafana-deployment.yaml \
  -f https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/master/src/kubernetes/grafana/grafana-service.yaml

cleanup

kapp -n apps delete -y -a scdf-prometheus-grafana
kapp -n apps delete -y -a scdf-prometheus-config
kapp -n apps delete -y -a scdf-ingress
kapp -n apps delete -y -a scdf-server
kapp -n apps delete -y -a scdf-skipper
kapp -n apps delete -y -a scdf-infra
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment