rancher / rio

Application Deployment Engine for Kubernetes
https://rio.io
Apache License 2.0
2.27k stars 228 forks source link

Rio installs Gloo even if explicitly disabled #1070

Open golyalpha opened 3 years ago

golyalpha commented 3 years ago

Running rio install --disable-features gloo installs Gloo and provisions a LoadBalancer for the gateway regardless.

Services in the rio-system namespace:

> kubectl get service -n rio-system
NAME                TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                               AGE
gateway-proxy       LoadBalancer   10.245.184.248   <pending>     80:31309/TCP,443:30114/TCP            109s
gloo                ClusterIP      10.245.229.47    <none>        9977/TCP,9988/TCP,9966/TCP,9979/TCP   109s
rio-acme-solver     ClusterIP      10.245.179.105   <none>        8080/TCP                              2m4s
rio-api-validator   ClusterIP      10.245.98.204    <none>        443/TCP                               2m4s

Pods in the rio-system namespace:

> kubectl get pods -n rio-system
NAME                              READY   STATUS      RESTARTS   AGE
gateway-6c76f6b5bd-jtrct          1/1     Running     0          114s
gateway-proxy-7b87d8999f-w5q59    1/1     Running     0          85s
gloo-58cc697f4f-lfrfw             1/1     Running     0          114s
linkerd-install-h75t9-hrcwz       0/1     Completed   0          2m47s
rio-controller-7f5568889f-ctwtj   1/1     Running     1          3m1s

The rio-config configmap:

> kubectl describe configmap -n rio-system rio-config
Name:         rio-config
Namespace:    rio-system
Labels:       <none>
Annotations:  <none>

Data
====
config:
----
{
   "features":{
      "autoscaling":{
         "enabled":false,
         "description":"Auto-scaling services based on in-flight requests"
      },
      "build":{
         "enabled":false,
         "description":"Rio Build, from source code to deployment"
      },
      "dashboard":{
         "enabled":false,
         "description":"Rio UI"
      },
      "gloo":{
         "enabled":true,
         "description":"Run Gloo API gateway"
      },
      "ingress":{
         "enabled":false,
         "description":"Ingress as API gateway"
      },
      "istio":{
         "enabled":false,
         "description":"Istio service mesh"
      },
      "letsencrypt":{
         "enabled":true,
         "description":"Let's Encrypt"
      },
      "linkerd":{
         "enabled":true,
         "description":"linkerd service mesh"
      },
      "rdns":{
         "enabled":true,
         "description":"Acquire DNS from public Rancher DNS service"
      },
      "service":{
         "enabled":true,
         "description":"Rio Service Based UX - required"
      },
      "smi":{
         "enabled":true,
         "description":"Program SMI rules for services"
      }
   },
   "letsEncrypt":{

   },
   "rdnsUrl":"https://api.on-rio.io/v1",
   "gateway":{
      "serviceName":"gateway-proxy",
      "serviceNamespace":"rio-system"
   }
}
Events:  <none>

I should also note that running rio system feature --edit and disabling/enabling features before saving and exiting from the editor does nothing, and exits with 'No change to system config'