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

Primaza Agents deployment

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Done
    • Icon: Undefined Undefined
    • Primaza 0.1
    • None
    • Service Binding
    • None
    • 5
    • False
    • None
    • False
    • Hide
      Feature: Publish Application Agent to worker cluster

          Scenario: On Cluster Environment creation, Primaza Application Agent is successfully deployed to application namespace

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", application namespace "applications" exists
              When On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  applicationNamespaces:
                  - applications
              """
              Then On Worker Cluster "primaza-worker", Primaza Application Agent is deployed into namespace "applications"

          Scenario: On Cluster Environment update, Primaza Application Agent is successfully removed from application namespace

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", application namespace "applications" exists
              And On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  applicationNamespaces:
                  - applications
              """
              And On Worker Cluster "primaza-worker", Primaza Application Agent is deployed into namespace "applications"
              When On Primaza Cluster "primaza-main", Resource is updated
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  applicationNamespaces: []
              """
              Then On Worker Cluster "primaza-worker", Primaza Application Agent is removed from namespace "applications"

          Scenario: On Cluster Environment update, Primaza Application Agent is successfully published into application namespace

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", application namespace "applications" exists
              And On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  applicationNamespaces: []
              """
              When On Primaza Cluster "primaza-main", Resource is updated
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  applicationNamespaces:
                  - applications
              """
              Then On Worker Cluster "primaza-worker", Primaza Application Agent is deployed into namespace "applications"

          Scenario: On Cluster Environment deletion, Primaza Application Agent is successfully published into application namespace

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", application namespace "applications" exists
              And On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  applicationNamespaces:
                  - applications
              """
              When On Primaza Cluster "primaza-main", Resource is deleted
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  applicationNamespaces:
                  - applications
              """
              Then On Worker Cluster "primaza-worker", Primaza Application Agent is removed from namespace "applications"

          Scenario: On Cluster Environment creation, if application namespace does not exists ClusterEnvironment status is updated

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", application namespace "applications" exists
              And On Worker Cluster "primaza-worker", application namespace "not-existing-app-ns" does not exist
              When On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  applicationNamespaces:
                  - applications
                  - not-existing-app-ns
              """
              Then On Worker Cluster "primaza-worker", Primaza Application Agent is deployed into namespace "applications"
              And On Worker Cluster "primaza-worker", namespace "not-existing-app-ns" does not exist
              And On Primaza Cluster "primaza-main", ClusterEnvironment "primaza-worker"'s status is "Partial"
              And On Primaza Cluster "primaza-main", ClusterEnvironment "primaza-worker"'s status conditions report errors publishing Application agent in namespace "not-existing-app-ns"


      Feature: Publish Service Agent to worker cluster

          Scenario: On Cluster Environment creation, Primaza Service Agent is successfully deployed to service namespace

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", service namespace "services" exists
              When On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  serviceNamespaces:
                  - services
              """
              Then On Worker Cluster "primaza-worker", Primaza Service Agent is deployed into "services" namespace

          Scenario: On Cluster Environment update, Primaza Service Agent is successfully removed from service namespace

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", service namespace "services" exists
              And On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  serviceNamespaces:
                  - services
              """
              And On Worker Cluster "primaza-worker", Primaza Service Agent is deployed into "services" namespace
              When On Primaza Cluster "primaza-main", Resource is updated
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  serviceNamespaces: []
              """
              Then On Worker Cluster "primaza-worker", Primaza Service Agent is removed from namespace "services"

          Scenario: On Cluster Environment update, Primaza Service Agent is successfully published into service namespace

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", service namespace "services" exists
              And On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  serviceNamespaces: []
              """
              When On Primaza Cluster "primaza-main", Resource is updated
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  serviceNamespaces:
                  - services
              """
              Then On Worker Cluster "primaza-worker", Primaza Service Agent is deployed into "services" namespace

          Scenario: On Cluster Environment deletion, Primaza Service Agent is successfully published into service namespace

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", service namespace "services" exists
              And On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  serviceNamespaces:
                  - services
              """
              When On Primaza Cluster "primaza-main", Resource is deleted
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  serviceNamespaces:
                  - services
              """
              Then On Worker Cluster "primaza-worker", Primaza Service Agent is removed from namespace "services"

          Scenario: On Cluster Environment creation, if service namespace does not exists ClusterEnvironment status is updated

              Given Primaza Cluster "primaza-main" is running
              And Worker Cluster "primaza-worker" for "primaza-main" is running
              And Clusters "primaza-main" and "primaza-worker" can communicate
              And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published
              And On Worker Cluster "primaza-worker", service namespace "services" exists
              And On Worker Cluster "primaza-worker", service namespace "not-existing-app-ns" does not exist
              When On Primaza Cluster "primaza-main", Resource is created
              """
              apiVersion: primaza.io/v1alpha1
              kind: ClusterEnvironment
              metadata:
                  name: primaza-worker
                  namespace: primaza-system
              spec:
                  environmentName: dev
                  clusterContextSecret: primaza-kw
                  serviceNamespaces:
                  - services
                  - not-existing-app-ns
              """
              Then On Worker Cluster "primaza-worker", Primaza Service Agent is deployed into namespace "services"
              And On Worker Cluster "primaza-worker", namespace "not-existing-app-ns" does not exist
              And On Primaza Cluster "primaza-main", ClusterEnvironment "primaza-worker"'s status is "Partial"
              And On Primaza Cluster "primaza-main", ClusterEnvironment "primaza-worker"'s status conditions report errors publishing Services Agent in namespace "not-existing-app-ns"
      Show
      Feature: Publish Application Agent to worker cluster     Scenario: On Cluster Environment creation, Primaza Application Agent is successfully deployed to application namespace         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", application namespace "applications" exists         When On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             applicationNamespaces:             - applications         """         Then On Worker Cluster "primaza-worker", Primaza Application Agent is deployed into namespace "applications"     Scenario: On Cluster Environment update, Primaza Application Agent is successfully removed from application namespace         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", application namespace "applications" exists         And On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             applicationNamespaces:             - applications         """         And On Worker Cluster "primaza-worker", Primaza Application Agent is deployed into namespace "applications"         When On Primaza Cluster "primaza-main", Resource is updated         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             applicationNamespaces: []         """         Then On Worker Cluster "primaza-worker", Primaza Application Agent is removed from namespace "applications"     Scenario: On Cluster Environment update, Primaza Application Agent is successfully published into application namespace         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", application namespace "applications" exists         And On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             applicationNamespaces: []         """         When On Primaza Cluster "primaza-main", Resource is updated         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             applicationNamespaces:             - applications         """         Then On Worker Cluster "primaza-worker", Primaza Application Agent is deployed into namespace "applications"     Scenario: On Cluster Environment deletion, Primaza Application Agent is successfully published into application namespace         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", application namespace "applications" exists         And On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             applicationNamespaces:             - applications         """         When On Primaza Cluster "primaza-main", Resource is deleted         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             applicationNamespaces:             - applications         """         Then On Worker Cluster "primaza-worker", Primaza Application Agent is removed from namespace "applications"     Scenario: On Cluster Environment creation, if application namespace does not exists ClusterEnvironment status is updated         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", application namespace "applications" exists         And On Worker Cluster "primaza-worker", application namespace "not-existing-app-ns" does not exist         When On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             applicationNamespaces:             - applications             - not-existing-app-ns         """         Then On Worker Cluster "primaza-worker", Primaza Application Agent is deployed into namespace "applications"         And On Worker Cluster "primaza-worker", namespace "not-existing-app-ns" does not exist         And On Primaza Cluster "primaza-main", ClusterEnvironment "primaza-worker"'s status is "Partial"         And On Primaza Cluster "primaza-main", ClusterEnvironment "primaza-worker"'s status conditions report errors publishing Application agent in namespace "not-existing-app-ns" Feature: Publish Service Agent to worker cluster     Scenario: On Cluster Environment creation, Primaza Service Agent is successfully deployed to service namespace         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", service namespace "services" exists         When On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             serviceNamespaces:             - services         """         Then On Worker Cluster "primaza-worker", Primaza Service Agent is deployed into "services" namespace     Scenario: On Cluster Environment update, Primaza Service Agent is successfully removed from service namespace         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", service namespace "services" exists         And On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             serviceNamespaces:             - services         """         And On Worker Cluster "primaza-worker", Primaza Service Agent is deployed into "services" namespace         When On Primaza Cluster "primaza-main", Resource is updated         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             serviceNamespaces: []         """         Then On Worker Cluster "primaza-worker", Primaza Service Agent is removed from namespace "services"     Scenario: On Cluster Environment update, Primaza Service Agent is successfully published into service namespace         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", service namespace "services" exists         And On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             serviceNamespaces: []         """         When On Primaza Cluster "primaza-main", Resource is updated         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             serviceNamespaces:             - services         """         Then On Worker Cluster "primaza-worker", Primaza Service Agent is deployed into "services" namespace     Scenario: On Cluster Environment deletion, Primaza Service Agent is successfully published into service namespace         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", service namespace "services" exists         And On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             serviceNamespaces:             - services         """         When On Primaza Cluster "primaza-main", Resource is deleted         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             serviceNamespaces:             - services         """         Then On Worker Cluster "primaza-worker", Primaza Service Agent is removed from namespace "services"     Scenario: On Cluster Environment creation, if service namespace does not exists ClusterEnvironment status is updated         Given Primaza Cluster "primaza-main" is running         And Worker Cluster "primaza-worker" for "primaza-main" is running         And Clusters "primaza-main" and "primaza-worker" can communicate         And On Primaza Cluster "primaza-main", Worker "primaza-worker"'s ClusterContext secret "primaza-kw" is published         And On Worker Cluster "primaza-worker", service namespace "services" exists         And On Worker Cluster "primaza-worker", service namespace "not-existing-app-ns" does not exist         When On Primaza Cluster "primaza-main", Resource is created         """         apiVersion: primaza.io/v1alpha1         kind: ClusterEnvironment         metadata:             name: primaza-worker             namespace: primaza-system         spec:             environmentName: dev             clusterContextSecret: primaza-kw             serviceNamespaces:             - services             - not-existing-app-ns         """         Then On Worker Cluster "primaza-worker", Primaza Service Agent is deployed into namespace "services"         And On Worker Cluster "primaza-worker", namespace "not-existing-app-ns" does not exist         And On Primaza Cluster "primaza-main", ClusterEnvironment "primaza-worker"'s status is "Partial"         And On Primaza Cluster "primaza-main", ClusterEnvironment "primaza-worker"'s status conditions report errors publishing Services Agent in namespace "not-existing-app-ns"
    • AppSvc Sprint 231, AppSvc Sprint 232, AppSvc Sprint 233

      Owner: Architect:

      Francesco Ilario

      Story (Required)

      As a Primaza Administrator, I would like Primaza to push to and manage agents into ClusterEnvironment's namespaces so that they can operate in given namespaces.

      Background (Required)

      As defined in the Primaza architecture document, we need to push agents into Services and Applications namespaces.

      • When a ClusterEnvironment is created, agents should be pushed to its Applications and Services namespaces.
      • When a ClusterEnvironment is deleted, agents should be deleted too.
      • When a ClusterEnvironment is updated, agents should be pushed to added namespaces, and deleted from removed ones.

      See epic for arch document link.

      Glossary

      See glossary in architecture document

      Out of scope

      • Namespaces creation and set up

      In Scope

      • Agents push and delete

      Approach(Required)

      You can assume namespaces exists and have in them all the needed configurations and secrets the agents need to execute properly.

      Primaza should create a client for the target cluster using the connection information stored in the Cluster Environment field ClusterContextSecret.
      Leveraging on this kubernetes client, it will push the agents into Services and Application namespaces as Deployment.

      There is no need to check for the roll-out of agents. Primaza healthchecks will eventually do this check.

      If any error occurs during installation (e.g., non existing namespace), Primaza must track it in the ClusterEnvironment's status conditions and change status to "Partial".

      Demo requirements(Required)

      A great demo will show Primaza pushing agents to one Service and one Application namespace in well-configured namespaces.
      It will then push the agents to a non-existing namespace and show the ClusterEnvironment's status and conditions update.

      Dependencies

      NA

      Edge Case

      NA

      BDD Tests

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

      Acceptance Criteria

      • Development
        ClusterEnvironment controller creates agents into ClusterEnvironment's namespaces
        ClusterEnvironment controller deletes agents from ClusterEnvironment's namespaces
      • QE
        There are test cases for agents creation when a ClusterEnvironment is created
        There are test cases for agents deletion when a ClusterEnvironment is deleted
        There are test cases for agents creation and deletion when ClusterEnvironment is updated
      • Docs
        There is a section in the Cluster Environment docs dedicated to explaining how Agents are pushed and removed
        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

              rh-ee-filario Francesco Ilario
              rh-ee-filario Francesco Ilario
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: