Uploaded image for project: 'Red Hat Advanced Cluster Management'
  1. Red Hat Advanced Cluster Management
  2. ACM-10074

ManagedCluster bind to the "global" klusterletconfig by default.

XMLWordPrintable

    • 3
    • False
    • None
    • False
    • Hide

      Provide the required acceptance criteria using this template.
      * ...
      Show
      Provide the required acceptance criteria using this template. * ...
    • 3
    • SF Train-14 2024-02
    • No

      Value Statement

      In practice, we found normally, a managed clusters need to bind with multiple KlusterletConfigs. But currently, it only supports binding with 1 KlusterletConfig via specifying in managed cluster's annotation.

      We would like to implement a way to support multiple KlusterletConfigs binding with one managed cluster, in this release we add a default "global" klusterletconfig the managed cluster by default bind to this klusterletconfig without claiming by annotation.

      The field in the "global" klusterletconfig priority is lowest. 

      Case 1:  Ovrride the global config

      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: test
      spec:
        hubKubeAPIServerURL: "example.test.com"

      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: global
      spec:
        hubKubeAPIServerURL: "example.demo.com"
       
      expected:
      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: merged 
      spec:
        hubKubeAPIServerURL: "example.test.com"
       
      Case 2:  shadow the global config (Empty case)

      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: test
      spec:
        hubKubeAPIServerURL: ""

      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: global
      spec:
        hubKubeAPIServerURL: "example.demo.com"
       
      expected:
      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: merged 
      spec:
        hubKubeAPIServerURL: ""
       
      Case 3:  flow to the global config(Nil case)

      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: test
      spec:

      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: global
      spec:
        hubKubeAPIServerURL: "example.demo.com"
       
      expected:
      apiVersion: config.open-cluster-management.io/v1alpha1
      kind: KlusterletConfig
      metadata:
        name: merged 
      spec:
        hubKubeAPIServerURL: "example.demo.com"

      Definition of Done for Engineering Story Owner (Checklist)

      • ...

      Development Complete

      • The code is complete.
      • Functionality is working.
      • Any required downstream Docker file changes are made.

      Tests Automated

      • [ ] Unit/function tests have been automated and incorporated into the
        build.
      • [ ] 100% automated unit/function test coverage for new or changed APIs.

      Secure Design

      • [ ] Security has been assessed and incorporated into your threat model.

      Multidisciplinary Teams Readiness

      Support Readiness

      • [ ] The must-gather script has been updated.

            zxue@redhat.com ZHAO XUE
            zxue@redhat.com ZHAO XUE
            Hui Chen Hui Chen
            ACM Server Foundation
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: