upbound / up

The @upbound CLI
Apache License 2.0
49 stars 42 forks source link

space init: install opentelemetry-operator as prerequisite #478

Closed lsviben closed 2 months ago

lsviben commented 2 months ago

Description of your changes

Adds opentelemetry-operator installation as a prerequisite for space init, but only if the feature is enabled through the flag.

The operator needs cert-manager but as it is also installed under prerequisites, we have it covered.

This is needed as the Shared Telemetry needs the operator to provision telemetry collectors for control planes.

Fixes #

I have:

How has this code been tested

No flag:

 up space init --token-file="../key.json" "v1.2.4" \
  --set "account=bob"
 INFO  Setting defaults for vanilla Kubernetes (type kind)
 WARNING  One or more required prerequisites are not installed:

❌ cert-manager
❌ universal-crossplane
❌ ingress-nginx
❌ provider-kubernetes
❌ provider-helm

Would you like to install them now? [y/N]:

enabled=false:

up space init --token-file="../key.json" "v1.2.4" \
  --set "account=bob" \
  --set "features.alpha.observability.enabled=false"
 INFO  Setting defaults for vanilla Kubernetes (type kind)
 WARNING  One or more required prerequisites are not installed:

❌ cert-manager
❌ universal-crossplane
❌ ingress-nginx
❌ provider-kubernetes
❌ provider-helm

Would you like to install them now? [y/N]:

enabled=true

up space init --token-file="../key.json" "v1.2.4" \
  --set "account=bob" \
  --set "features.alpha.observability.enabled=true"
 INFO  Setting defaults for vanilla Kubernetes (type kind)
 WARNING  One or more required prerequisites are not installed:

❌ cert-manager
❌ universal-crossplane
❌ ingress-nginx
❌ provider-kubernetes
❌ provider-helm
❌ opentelemetry-operator

Would you like to install them now? [y/N]: Yes

▀  [1/6]: Installing cert-manager (0s)
  ✓   [1/6]: Installing cert-manager
  ✓   [2/6]: Installing universal-crossplane
  ✓   [3/6]: Installing ingress-nginx
  ✓   [4/6]: Installing provider-kubernetes
  ✓   [5/6]: Installing provider-helm
  ✓   [6/6]: Installing opentelemetry-operator
 INFO  Required prerequisites met!
 INFO  Proceeding with Upbound Spaces installation...
  ✓   [1/3]: Creating pull secret upbound-pull-secret
  ✓   [2/3]: Initializing Space components
  ✓   [3/3]: Starting Space Components
  🙌  Your Upbound Space is Ready!

  👀  Next Steps 👇

👉 Check out Upbound Spaces docs @ https://docs.upbound.io/concepts/upbound-spaces
k get all -n opentelemetry-operator
NAME                                          READY   STATUS    RESTARTS   AGE
pod/opentelemetry-operator-798dff6b6d-98dfm   2/2     Running   0          19m

NAME                                     TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)             AGE
service/opentelemetry-operator           ClusterIP   10.96.16.56    <none>        8443/TCP,8080/TCP   19m
service/opentelemetry-operator-webhook   ClusterIP   10.96.58.215   <none>        443/TCP             19m

NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/opentelemetry-operator   1/1     1            1           19m

NAME                                                DESIRED   CURRENT   READY   AGE
replicaset.apps/opentelemetry-operator-798dff6b6d   1         1         1       19m
turkenh commented 2 months ago

Merging without waiting for requirements to be met (bypass branch protections) since the unit test job stuck at "publishing results to codecov" step and unit tests already passed.