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 kapp
from https://github.com/k14s/kapp/releases
kubectl create namespace apps
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 -
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
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
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_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
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
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