-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgetting_started.sh
More file actions
executable file
·131 lines (110 loc) · 4.11 KB
/
Copy pathgetting_started.sh
File metadata and controls
executable file
·131 lines (110 loc) · 4.11 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
#! /usr/bin/env bash
set -euo pipefail
# DO NOT EDIT THE SCRIPT
# Instead, update the j2 template, and regenerate it for dev with `make render-docs`.
# This script contains all the code snippets from the guide, as well as some assert tests
# to test if the instructions in the guide work. The user *could* use it, but it is intended
# for testing only.
# The script will install the operators, create a OpenSearch instance and briefly open a port
# forward and connect to the OpenSearch instance to make sure it is up and running.
# No running processes are left behind (i.e. the port-forwarding is closed at the end)
if [ $# -eq 0 ]
then
echo "Installation method argument ('helm' or 'stackablectl') required."
exit 1
fi
cd "$(dirname "$0")"
case "$1" in
"helm")
echo "Installing Operators with Helm"
# tag::helm-install-operators[]
helm install --wait commons-operator oci://oci.stackable.tech/sdp-charts/commons-operator --version 0.0.0-dev
helm install --wait secret-operator oci://oci.stackable.tech/sdp-charts/secret-operator --version 0.0.0-dev
helm install --wait listener-operator oci://oci.stackable.tech/sdp-charts/listener-operator --version 0.0.0-dev
helm install --wait opensearch-operator oci://oci.stackable.tech/sdp-charts/opensearch-operator --version 0.0.0-dev
# end::helm-install-operators[]
;;
"stackablectl")
echo "installing Operators with stackablectl"
# tag::stackablectl-install-operators[]
stackablectl operator install \
commons=0.0.0-dev \
secret=0.0.0-dev \
listener=0.0.0-dev \
opensearch=0.0.0-dev
# end::stackablectl-install-operators[]
;;
*)
echo "Need to give 'helm' or 'stackablectl' as an argument for which installation method to use!"
exit 1
;;
esac
echo "Creating OpenSearch security plugin configuration"
# tag::apply-security-config[]
kubectl apply -f opensearch-security-config.yaml
# end::apply-security-config[]
echo "Creating OpenSearch cluster"
# tag::apply-cluster[]
kubectl apply -f opensearch.yaml
# end::apply-cluster[]
sleep 5
for (( i=1; i<=15; i++ ))
do
echo "Waiting for OpenSearchCluster to appear ..."
if eval kubectl get statefulset simple-opensearch-nodes-default; then
break
fi
sleep 1
done
echo "Waiting on OpenSearch StatefulSet ..."
# tag::await-cluster[]
kubectl rollout status --watch statefulset/simple-opensearch-nodes-default --timeout 600s
# end::await-cluster[]
# wait a bit for the port to open
sleep 10
echo "Starting port-forwarding of port 9200"
# tag::opensearch-port-forwarding[]
kubectl port-forward services/simple-opensearch 9200 > /dev/null 2>&1 &
# end::opensearch-port-forwarding[]
PORT_FORWARD_PID=$!
# shellcheck disable=2064 # we want the PID evaluated now, not at the time the trap is
trap "kill $PORT_FORWARD_PID" EXIT
sleep 5
echo "Using the REST API"
# tag::rest-api[]
export CREDENTIALS=admin:AJVFsGJBbpT6mChn
curl \
--insecure \
--user $CREDENTIALS \
--request PUT \
--json '{"name": "Stackable"}' \
https://localhost:9200/sample_index/_doc/1
# Output:
# {"_index":"sample_index","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
curl \
--insecure \
--user $CREDENTIALS \
--request GET \
https://localhost:9200/sample_index/_doc/1
# Output:
# {"_index":"sample_index","_id":"1","_version":1,"_seq_no":0,"_primary_term":1,"found":true,"_source":{"name": "Stackable"}}
# end::rest-api[]
echo
echo "Using OpenSearch Dashboards"
# tag::opensearch-dashboards[]
kubectl create secret generic opensearch-credentials \
--from-literal kibanaserver=E4kENuEmkqH3jyHC
helm install opensearch-dashboards opensearch-dashboards \
--repo https://opensearch-project.github.io/helm-charts \
--version 3.1.0 \
--values opensearch-dashboards-values.yaml \
--wait
# end::opensearch-dashboards[]
echo "Starting port-forwarding of port 5601"
# tag::opensearch-dashboards-port-forwarding[]
kubectl port-forward services/opensearch-dashboards 5601 > /dev/null 2>&1 &
# end::opensearch-dashboards-port-forwarding[]
PORT_FORWARD_PID=$!
# shellcheck disable=2064 # we want the PID evaluated now, not at the time the trap is
trap "kill $PORT_FORWARD_PID" EXIT
sleep 600