|
92 | 92 | fi |
93 | 93 | echo -e "${GREEN}✓ OpenTelemetry Operator installation started${NC}" |
94 | 94 |
|
| 95 | +# Wait for OpenTelemetry Operator to be ready (webhook must be serving before we create CRs) |
| 96 | +echo -e "${YELLOW}Waiting for OpenTelemetry Operator deployment to be ready...${NC}" |
| 97 | +kubectl wait --for=condition=Available deployment/opentelemetry-operator -n observability --timeout=120s |
| 98 | +echo -e "${GREEN}✓ OpenTelemetry Operator deployment is ready${NC}" |
| 99 | + |
95 | 100 | # Install kube-prometheus-stack (includes Prometheus + Grafana) |
96 | 101 | echo -e "\n${YELLOW}Installing Prometheus and Grafana stack...${NC}" |
97 | 102 | if helm list -n observability | grep -q kube-prometheus-stack; then |
|
110 | 115 | fi |
111 | 116 | echo -e "${GREEN}✓ Prometheus and Grafana installation started${NC}" |
112 | 117 |
|
113 | | -# Create OpenTelemetry Collector instance |
| 118 | +# Create OpenTelemetry Collector instance (retry until webhook is fully serving) |
114 | 119 | echo -e "\n${YELLOW}Creating OpenTelemetry Collector...${NC}" |
115 | | -cat <<EOF | kubectl apply -f - |
| 120 | +COLLECTOR_YAML=$(cat <<'EOF' |
116 | 121 | apiVersion: opentelemetry.io/v1beta1 |
117 | 122 | kind: OpenTelemetryCollector |
118 | 123 | metadata: |
@@ -168,7 +173,19 @@ spec: |
168 | 173 | processors: [memory_limiter, batch] |
169 | 174 | exporters: [debug] |
170 | 175 | EOF |
171 | | -echo -e "${GREEN}✓ OpenTelemetry Collector created${NC}" |
| 176 | +) |
| 177 | +for i in $(seq 1 20); do |
| 178 | + if echo "$COLLECTOR_YAML" | kubectl apply -f - 2>/dev/null; then |
| 179 | + echo -e "${GREEN}✓ OpenTelemetry Collector created${NC}" |
| 180 | + break |
| 181 | + fi |
| 182 | + if [ "$i" -eq 20 ]; then |
| 183 | + echo -e "${RED}✗ Failed to create OpenTelemetry Collector after 20 attempts${NC}" |
| 184 | + exit 1 |
| 185 | + fi |
| 186 | + echo -e "${YELLOW} Webhook not ready yet, retrying ($i/20)...${NC}" |
| 187 | + sleep 5 |
| 188 | +done |
172 | 189 |
|
173 | 190 | # Create ServiceMonitor for OpenTelemetry Collector |
174 | 191 | echo -e "\n${YELLOW}Creating ServiceMonitor for OpenTelemetry...${NC}" |
|
0 commit comments