Uploaded image for project: 'Service Binding'
  1. Service Binding
  2. APPSVC-1299

Claim from an Application Namespace

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Done
    • Icon: Critical Critical
    • Primaza 0.1
    • None
    • Service Binding
    • None
    • AppSvc Sprint 235, AppSvc Sprint 236

      Owner: Architect:

      Francesco Ilario

      Story (Required)

      As a Developer, I would like to create claim directly from my namespace so that I can bind an application in my namespace

      Background (Required)

      We need to implement the ServiceClaim API as define in the Primaza architecture document.

      As of now, Service Claims can only be created on Primaza's cluster.
      We want to give the developer the ability to create a Service Claim on an Worker cluster, in a specific namespace and have Primaza push the Service Binding into the worker cluster.

      Refer to the arch document's section How > Architecture > Architecture Diagrams > Agent-based architecture > Claiming a Service > Claiming from Application Cluster.

      See epic for arch document link.

      Glossary

      See glossary in architecture document

      Out of scope

      • Binding logic
      • Service Catalog check
      • Service Claim update

      In Scope

      In Application Agent

      • Service Claim validation
      • Service Claim tampering and forward to Primaza

      Approach(Required)

      Application Agents should manage Service Claims, hence agents will run a controller that reconciles Service Claims.

      When a Service Claim is created in an agent's namespace, the agent will validate and tamper the provided Service Claim and then push the tampered version to Primaza.

      The validation will consist in the following checks:

      • EnvironmentTag is not defined
      • ApplicationClusterContext is not defined

      The tampering will consist in the following changes:

      • ApplicationClusterContext is configured:
        • ClusterEnvironmentName: can be retrieved from agent's labels
        • Namespace: is the current namespace

      When a Service Binding for the ServiceClaim is created in the namespace, Service Claim status should be updated to Resolved.

      When a ServiceClaim is updated or deleted, Primaza must be informed.

      The binding logic is yet implemented in Primaza, and should not be implemented here.

      Demo requirements(Required)

      NA

      Dependencies

      Edge Case

      NA

      BDD Tests

      You can find BDD Test specification for this story in the "Testing Instruction" Field Tab or in the GitHub Issue linked to this story.
      Click here for all BDD Tests Issues.

      Acceptance Criteria

      • Development
        Application Agent's Service Claim controller validates Service Claims
        Application Agent's Service Claim controller tampers and forward Service Claims
        Application Agent's Service Claim controller forwards Service Claims changes to Primaza
        Application Agent's Service Claim controller forwards Service Claims deletion to Primaza
        Application Agent's Service Binding controller should update Service Claim status on Service Binding create
      • QE
        There are test cases for Service Claim's validation
        There are test cases for Service Claim's creation
        There are test cases for Service Claim's deletion
      • Docs
        There is a section in the Application Agent docs dedicated to explaining how the Service Claim from a specific namespace is performed
        Update architecture document with any changes while implementing

      INVEST Checklist

      Dependencies identified
      Blockers noted and expected delivery timelines set
      Design is implementable
      Acceptance criteria agreed upon
      Story estimated

      Legend

      Unknown
      Verified
      Unsatisfied

              bmuthuka Baiju Muthukadan
              rh-ee-filario Francesco Ilario
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: