-
Notifications
You must be signed in to change notification settings - Fork 125
Expand file tree
/
Copy pathMakefile.helm
More file actions
150 lines (138 loc) 路 8.62 KB
/
Copy pathMakefile.helm
File metadata and controls
150 lines (138 loc) 路 8.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# Function to add Helm repositories
define HELM_ADD_REPOS
@echo "Add Helm repositories"
@helm repo add minio https://operator.min.io
@helm repo add kuberay https://ray-project.github.io/kuberay-helm
@helm repo add influxdata https://helm.influxdata.com
@helm repo add milvus-operator https://zilliztech.github.io/milvus-operator
@helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
@helm repo add temporal https://go.temporal.io/helm-charts
@helm repo add grafana https://grafana.github.io/helm-charts
@helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
@echo ""
@echo "Update Helm dependencies"
@cd charts/core && helm dependency update
endef
# Function to install Ray
define HELM_INSTALL_RAY
@echo "Install Ray"
@helm install --namespace ${RAY_KUBERNETES_NAMESPACE} --create-namespace ray-operator kuberay/kuberay-operator --version ${RAY_OPERATOR_HELM_CHART_VERSION} --values configs/helm/ray/charts/operator.values.yaml
@kubectl wait --for=condition=established --timeout=60s crd/rayclusters.ray.io crd/rayservices.ray.io crd/rayjobs.ray.io
@kubectl apply --namespace ${RAY_KUBERNETES_NAMESPACE} -f configs/helm/ray/manifests
endef
# Function to install Temporal
define HELM_INSTALL_TEMPORAL
@echo "Install Temporal"
@helm install --namespace ${TEMPORAL_KUBERNETES_NAMESPACE} --create-namespace temporal temporal/temporal --version ${TEMPORAL_HELM_CHART_VERSION} --values configs/helm/temporal/charts/values.yaml
endef
# Function to install MinIO
define HELM_INSTALL_MINIO
@echo "Install MinIO in single-tenant mode"
@helm install --namespace ${MINIO_KUBERNETES_NAMESPACE} --create-namespace operator minio/operator --version ${MINIO_OPERATOR_HELM_CHART_VERSION} --values configs/helm/minio/charts/operator.values.yaml
@kubectl wait --for=condition=established --timeout=60s crd/tenants.minio.min.io
@echo "Installing MinIO Tenant..."
@helm install --namespace ${MINIO_KUBERNETES_NAMESPACE} --create-namespace tenant minio/tenant --version ${MINIO_OPERATOR_HELM_CHART_VERSION} --values configs/helm/minio/charts/tenant.values.yaml
endef
# Function to install Milvus
define HELM_INSTALL_MILVUS
@echo "Install Milvus in standalone mode"
@helm install --namespace ${MILVUS_KUBERNETES_NAMESPACE} --create-namespace milvus-operator milvus-operator/milvus-operator --version ${MILVUS_OPERATOR_HELM_CHART_VERSION} --values configs/helm/milvus/charts/values.yaml
@kubectl wait --for=condition=established --timeout=60s crd/milvusclusters.milvus.io crd/milvuses.milvus.io crd/milvusupgrades.milvus.io
@kubectl apply --namespace ${MILVUS_KUBERNETES_NAMESPACE} -f configs/helm/milvus/manifests
endef
# Function to install Instill Core
define HELM_INSTALL_INSTILL_CORE
@echo "Install Instill Core..."
@if [ "$(OBSERVE_ENABLED)" = "true" ]; then \
echo "" && \
echo "Create namespace \"${OBSERVABILITY_KUBERNETES_NAMESPACE}\"" && \
kubectl create namespace ${OBSERVABILITY_KUBERNETES_NAMESPACE} >/dev/null 2>&1; \
fi
@echo ""
@helm install ${INSTILL_CORE_HELM_RELEASE_NAME} charts/core \
--namespace ${INSTILL_CORE_KUBERNETES_NAMESPACE} --create-namespace \
--set edition=$(if $(filter true,$(1)),k8s-ce:test,k8s-ce) \
--set opentelemetry-collector.enabled=$(OBSERVE_ENABLED) \
--set pipelineBackend.instillCoreHost=http://${INSTILL_CORE_HOST}:${API_GATEWAY_PORT} \
--set artifactBackend.instillCoreHost=http://${INSTILL_CORE_HOST}:${API_GATEWAY_PORT} \
--set modelBackend.instillCoreHost=http://${INSTILL_CORE_HOST}:${API_GATEWAY_PORT} \
--set mgmtBackend.instillCoreHost=http://${INSTILL_CORE_HOST}:${API_GATEWAY_PORT} \
$(if $(filter true,$(1)),--set ray-cluster.head.autoscaling.enableInTreeAutoscaling=false,) \
$(if $(filter true,$(1)),--set ray-cluster.head.resources.requests.cpu=0,) \
$(if $(filter true,$(1)),--set ray-cluster.head.resources.requests.memory=0,) \
$(if $(filter true,$(1)),--set ray-cluster.worker.resources.requests.cpu=0,) \
$(if $(filter true,$(1)),--set ray-cluster.worker.resources.requests.memory=0,) \
$(if $(filter true,$(1)),--set opentelemetry-collector.enabled=false,) \
$(if $(filter true,$(1)),--set 'pipelineBackend.extraEnv[0].name=CFG_COMPONENT_SECRETS_GITHUB_OAUTHCLIENTID',) \
$(if $(filter true,$(1)),--set 'pipelineBackend.extraEnv[0].value=foo',) \
$(if $(filter true,$(1)),--set 'pipelineBackend.extraEnv[1].name=CFG_COMPONENT_SECRETS_GITHUB_OAUTHCLIENTSECRET',) \
$(if $(filter true,$(1)),--set 'pipelineBackend.extraEnv[1].value=foo',) \
--timeout 3600s
endef
# Function to install observability stack
define HELM_INSTALL_OBSERVABILITY
@if [ "$(OBSERVE_ENABLED)" = "true" ]; then \
echo "Install Grafana..." && \
helm install grafana --namespace $(OBSERVABILITY_KUBERNETES_NAMESPACE) --create-namespace grafana/grafana --version $(GRAFANA_HELM_CHART_VERSION) --values configs/helm/grafana/charts/values.yaml && \
echo "" && \
echo "Install Tempo..." && \
helm install tempo --namespace $(OBSERVABILITY_KUBERNETES_NAMESPACE) --create-namespace grafana/tempo-distributed --version $(TEMPO_HELM_CHART_VERSION) --values configs/helm/tempo/charts/values.yaml; \
echo "" && \
echo "Install Loki..." && \
helm install loki --namespace $(OBSERVABILITY_KUBERNETES_NAMESPACE) --create-namespace grafana/loki-distributed --version $(LOKI_HELM_CHART_VERSION) --values configs/helm/loki/charts/values.yaml; \
echo "" && \
echo "Install Prometheus" && \
helm install prometheus --namespace $(OBSERVABILITY_KUBERNETES_NAMESPACE) --create-namespace prometheus-community/kube-prometheus-stack --version $(PROMETHEUS_HELM_CHART_VERSION) --values configs/helm/prometheus/charts/values.yaml; \
fi
endef
# Function to remove observability stack
define REMOVE_OBSERVABILITY
@if helm list --namespace ${OBSERVABILITY_KUBERNETES_NAMESPACE} 2>/dev/null | grep -q "grafana\|tempo\|loki\|prometheus" || kubectl get namespace ${OBSERVABILITY_KUBERNETES_NAMESPACE} >/dev/null 2>&1; then \
helm uninstall grafana --namespace ${OBSERVABILITY_KUBERNETES_NAMESPACE}; \
helm uninstall tempo --namespace ${OBSERVABILITY_KUBERNETES_NAMESPACE}; \
helm uninstall loki --namespace ${OBSERVABILITY_KUBERNETES_NAMESPACE}; \
helm uninstall prometheus --namespace ${OBSERVABILITY_KUBERNETES_NAMESPACE}; \
kubectl delete namespace ${OBSERVABILITY_KUBERNETES_NAMESPACE}; \
kubectl get crds --no-headers | grep monitoring.coreos.com | awk '{print $$1}' | xargs -r kubectl delete crd --ignore-not-found=true; \
fi
endef
# Function to remove Milvus
define REMOVE_MILVUS
@if helm list --namespace ${MILVUS_KUBERNETES_NAMESPACE} 2>/dev/null | grep -q "milvus-operator" || kubectl get namespace ${MILVUS_KUBERNETES_NAMESPACE} >/dev/null 2>&1; then \
kubectl delete -f configs/helm/milvus/manifests; \
helm uninstall milvus-operator --namespace ${MILVUS_KUBERNETES_NAMESPACE}; \
kubectl delete namespace ${MILVUS_KUBERNETES_NAMESPACE}; \
fi
endef
# Function to remove MinIO
define REMOVE_MINIO
@if helm list --namespace ${MINIO_KUBERNETES_NAMESPACE} 2>/dev/null | grep -q "operator\|tenant" || kubectl get namespace ${MINIO_KUBERNETES_NAMESPACE} >/dev/null 2>&1; then \
helm uninstall operator --namespace ${MINIO_KUBERNETES_NAMESPACE}; \
helm uninstall tenant --namespace ${MINIO_KUBERNETES_NAMESPACE}; \
kubectl delete namespace ${MINIO_KUBERNETES_NAMESPACE}; \
fi
endef
# Function to remove Temporal
define REMOVE_TEMPORAL
@if helm list --namespace ${TEMPORAL_KUBERNETES_NAMESPACE} 2>/dev/null | grep -q "temporal" || kubectl get namespace ${TEMPORAL_KUBERNETES_NAMESPACE} >/dev/null 2>&1; then \
helm uninstall temporal --namespace ${TEMPORAL_KUBERNETES_NAMESPACE}; \
kubectl delete namespace ${TEMPORAL_KUBERNETES_NAMESPACE}; \
fi
endef
# Function to remove Ray
define REMOVE_RAY
@if helm list --namespace ${RAY_KUBERNETES_NAMESPACE} 2>/dev/null | grep -q "ray-operator" || kubectl get namespace ${RAY_KUBERNETES_NAMESPACE} >/dev/null 2>&1; then \
helm uninstall ray-operator --namespace ${RAY_KUBERNETES_NAMESPACE}; \
kubectl delete -f configs/helm/ray/manifests; \
kubectl delete namespace ${RAY_KUBERNETES_NAMESPACE}; \
kubectl get crds --no-headers | grep ray.io | awk '{print $$1}' | xargs -r kubectl delete crd --ignore-not-found=true; \
fi
endef
# Function to remove Instill Core
define REMOVE_INSTILL_CORE
@if helm list --namespace ${INSTILL_CORE_KUBERNETES_NAMESPACE} 2>/dev/null | grep -q "${INSTILL_CORE_HELM_RELEASE_NAME}" || kubectl get namespace ${INSTILL_CORE_KUBERNETES_NAMESPACE} >/dev/null 2>&1; then \
helm uninstall ${INSTILL_CORE_HELM_RELEASE_NAME} --namespace ${INSTILL_CORE_KUBERNETES_NAMESPACE}; \
kubectl delete namespace ${INSTILL_CORE_KUBERNETES_NAMESPACE}; \
ps aux | grep "[k]ubectl port-forward" | awk '{print $$2}' | xargs -r kill -9 2>/dev/null || true; \
fi
endef