Uploaded image for project: 'DC/OS'
  1. DC/OS
  2. DCOS_OSS-1396

Unable to Remove Certain Services on DCOS


    • Type: Task
    • Status: Resolved
    • Priority: Medium
    • Resolution: Won't Do
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None


      The "new" behavior in DCOS is that the frontend does NOT uninstall service which were installed from the universe `dcos package install xyz`.   The logic being that the dcos package uninstall may be necessary for the uninstall hook.   Additionally the ability to see from the UI what is installed (those you can uninstall it has been removed).

      When trying to remove from the service UI a service which was installed from the catalog a dialog box prompts the need to use the CLI.  That prompt is a `dcos package uninstall ` command.   This behavior is driven off seeing certain flags in the app definition.     

      Here is the issue.   IF I decided I wanted to use the admin router for an application that I didn't have defined in the universe by using the DCOS_SERVICE_NAME.   There is nothing stopping me from doing that in the UI at the time of launch... however if I try to remove the app, the UI will not let me and it provides instructions on `dcos package uninstall `... however if I try to uninstall it the CLI complains that this isn't a service and does not uninstall it.

      Since many DCOS catalog services do NOT have an uninstall behavior... it would be IMO better to introduce a new LABEL that introduces this new behavior.  DCOS_UNINSTALL_HOOK = true or something.  Then require all services which require this behavior to have this label.

      Or have the remove service do the uninstall... or have the dcos package uninstall remove services as well which were not in the universe.


      Here is a sample app:

      "id": "/python-http",
      "cmd": "/opt/mesosphere/bin/python -m http.server $PORT0",
      "cpus": 0.5,
      "mem": 128,
      "disk": 0,
      "instances": 1,
      "readinessChecks": [
      "name": "readiness",
      "protocol": "HTTP",
      "path": "/",
      "portName": "api",
      "intervalSeconds": 2,
      "timeoutSeconds": 1,
      "httpStatusCodesForReady": [200]
      "healthChecks": [
      "gracePeriodSeconds": 10,
      "intervalSeconds": 2,
      "maxConsecutiveFailures": 0,
      "path": "/",
      "portIndex": 0,
      "protocol": "MESOS_HTTP",
      "timeoutSeconds": 2
      "labels": {
      "DCOS_SERVICE_NAME": "pyfw",
      "DCOS_SERVICE_SCHEME": "http"
      "upgradeStrategy": {
      "minimumHealthCapacity": 0,
      "maximumOverCapacity": 0
      "portDefinitions": [
      "protocol": "tcp",
      "port": 0,
      "name": "api"





            • Assignee:
              amr Amr Abdelrazik
              ken Ken Sipe
              Frontend Team
              Amr Abdelrazik, Cathy Daw, Dima Rozhkov, José Armando García Sancio (Inactive), Julian Gieseke, Ken Sipe, Orlando Hohmeier
            • Watchers:
              7 Start watching this issue


              • Created: