Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

linked service cannot be deleted #4750

@yangcao77

Description

@yangcao77

/kind bug

What versions of software are you using?

Operating System:
macos + minikube

Output of odo version:

$ odo version
odo v2.2.1 (17a078b67)

How did you run odo exactly?

odo create service ...
odo push
odo delete service
odo push
...

odo delete

Actual behavior

the linked service persists, even the component has been deleted on cluster

Expected behavior

the linked service should be removed from cluster

Any logs, error output, etc?

$ odo push

Validation
 ✓  Validating the devfile [37538ns]

Creating Kubernetes resources for component nodejs-node-test-wzrw
Created service "ServiceBinding/example-servicebinding" on the cluster; refer "odo link -h" to know how to link it to the component
 ✓  Waiting for component to start [3s]
 ✓  Waiting for component to start [8ms]
 ⚠  Unable to create ingress, missing host information for Endpoint http-3000, please check instructions on URL creation (refer `odo url create --help`)


Applying URL changes
W0525 11:03:37.148420   88283 warnings.go:70] extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
 ✓  URLs are synced with the cluster, no changes are required.

Syncing to component nodejs-node-test-wzrw
 ✓  Checking files for pushing [2ms]
 ✓  Syncing files to the component [287ms]

Executing devfile commands for component nodejs-node-test-wzrw
 ✓  Waiting for component to start [1ms]
 ✓  Executing install command "npm install" [9s]
 ✓  Executing run command "npm start" [1s]

Pushing devfile component "nodejs-node-test-wzrw"
 ✓  Changes successfully pushed to component

$ odo service list
NAME                                      AGE
ServiceBinding/example-servicebinding     1m6s

$ odo delete
? Are you sure you want to delete the devfile component: nodejs-node-test-wzrw? Yes

Gathering information for component nodejs-node-test-wzrw
 ✓  Checking status for component [7ms]

Deleting component nodejs-node-test-wzrw
 ✓  Deleting Kubernetes resources for component [5ms]
 ✓  Successfully deleted component
$ kubectl get po
NAME                                     READY   STATUS        RESTARTS   AGE
nodejs-node-test-wzrw-8666bd99f5-nlwmz   0/1     Terminating   0          107s
$ kubectl get po
No resources found in default namespace.
$ kubectl get ServiceBinding/example-servicebinding -o yaml
apiVersion: binding.operators.coreos.com/v1alpha1
kind: ServiceBinding
metadata:
  creationTimestamp: "2021-05-25T15:03:34Z"
  finalizers:
  - finalizer.servicebinding.openshift.io
  generation: 1
  labels:
    app: app
    app.kubernetes.io/instance: nodejs-node-test-wzrw
    app.kubernetes.io/managed-by: odo
    app.kubernetes.io/managed-by-version: v2.2.1
    app.kubernetes.io/part-of: app
  managedFields:
  - apiVersion: binding.operators.coreos.com/v1alpha1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:finalizers:
          .: {}
          v:"finalizer.servicebinding.openshift.io": {}
      f:status:
        .: {}
        f:conditions:
          .: {}
          k:{"type":"CollectionReady"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
          k:{"type":"Ready"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
        f:secret: {}
    manager: manager
    operation: Update
    time: "2021-05-25T15:03:34Z"
  - apiVersion: binding.operators.coreos.com/v1alpha1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          .: {}
          f:app: {}
          f:app.kubernetes.io/instance: {}
          f:app.kubernetes.io/managed-by: {}
          f:app.kubernetes.io/managed-by-version: {}
          f:app.kubernetes.io/part-of: {}
      f:spec:
        .: {}
        f:application:
          .: {}
          f:group: {}
          f:name: {}
          f:resource: {}
          f:version: {}
        f:bindAsFiles: {}
        f:services: {}
    manager: odo
    operation: Update
    time: "2021-05-25T15:03:34Z"
  name: example-servicebinding
  namespace: default
  resourceVersion: "81524"
  uid: 1153195f-cc62-47dd-9671-31e1ba7e5622
spec:
  application:
    group: apps
    name: nodejs-rest-http-crud
    resource: deployments
    version: v1
  bindAsFiles: true
  services:
  - group: postgresql.example.dev
    kind: Database
    name: pg-instance
    version: v1alpha1
status:
  conditions:
  - lastTransitionTime: "2021-05-25T15:03:34Z"
    message: no matches for kind "Database" in version "postgresql.example.dev/v1alpha1"
    reason: ErrorReadingServices
    status: "False"
    type: CollectionReady
  - lastTransitionTime: "2021-05-25T15:03:34Z"
    message: no matches for kind "Database" in version "postgresql.example.dev/v1alpha1"
    reason: ProcessingError
    status: "False"
    type: Ready
  secret: ""
$ odo service list
NAME                                      AGE
ServiceBinding/example-servicebinding     3m25s
$ odo service list
NAME                                      AGE
ServiceBinding/example-servicebinding     12m55s

$ odo service delete ServiceBinding/example-servicebinding
? Are you sure you want to delete ServiceBinding/example-servicebinding Yes
 ✓  Waiting for service to be deleted [14ms]
Service "ServiceBinding/example-servicebinding" has been successfully deleted
$ odo service list
NAME                                      AGE
ServiceBinding/example-servicebinding     13m26s
$ cat devfile.yaml 
commands:
- exec:
    commandLine: npm install
    component: runtime
    group:
      isDefault: true
      kind: build
    workingDir: /project
  id: install
- exec:
    commandLine: npm start
    component: runtime
    group:
      isDefault: true
      kind: run
    workingDir: /project
  id: run
- exec:
    commandLine: npm run debug
    component: runtime
    group:
      isDefault: true
      kind: debug
    workingDir: /project
  id: debug
- exec:
    commandLine: npm test
    component: runtime
    group:
      isDefault: true
      kind: test
    workingDir: /project
  id: test
components:
- container:
    endpoints:
    - name: http-3000
      targetPort: 3000
    image: registry.access.redhat.com/ubi8/nodejs-14:latest
    memoryLimit: 1024Mi
    mountSources: true
    sourceMapping: /project
  name: runtime
metadata:
  description: Stack with NodeJS 12
  displayName: NodeJS Runtime
  language: nodejs
  name: nodejs
  projectType: nodejs
  tags:
  - NodeJS
  - Express
  - ubi8
  version: 1.0.0
schemaVersion: 2.0.0
starterProjects:
- git:
    remotes:
      origin: https://github.com/odo-devfiles/nodejs-ex.git
  name: nodejs-starter
MacBook-Pro:node-test stephanie$ odo push

Validation
 ✓  Validating the devfile [38333ns]

Creating Kubernetes resources for component nodejs-node-test-wzrw
 ✓  Waiting for component to start [4s]
 ✓  Waiting for component to start [7ms]
 ⚠  Unable to create ingress, missing host information for Endpoint http-3000, please check instructions on URL creation (refer `odo url create --help`)


Applying URL changes
W0525 11:17:13.050908   89044 warnings.go:70] extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
 ✓  URLs are synced with the cluster, no changes are required.

Syncing to component nodejs-node-test-wzrw
 ✓  Checking files for pushing [2ms]
 ✓  Syncing files to the component [286ms]

Executing devfile commands for component nodejs-node-test-wzrw
 ✓  Waiting for component to start [1ms]
 ✓  Executing install command "npm install" [5s]
 ✓  Executing run command "npm start" [1s]

Pushing devfile component "nodejs-node-test-wzrw"
 ✓  Changes successfully pushed to component
$ odo service list
NAME                                      AGE
ServiceBinding/example-servicebinding     19m26s

Metadata

Metadata

Assignees

Labels

area/bindingIssues or PRs related to `odo add/delete binding *` commands or Service Binding Operatorkind/bugCategorizes issue or PR as related to a bug.priority/HighImportant issue; should be worked on before any other issues (except priority/Critical issue(s)).

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions