sigs.k8s.io/cluster-api@v1.7.1/docs/proposals/images/capi-provider-operator/fig1.plantuml (about)

     1  @startuml
     2  title Upgrade Provider without changing contract version
     3  actor User
     4  participant APIServer
     5  participant "Management Cluster\nController" as MgmtClusterController
     6  
     7  note over APIServer
     8  Current State:
     9  A core provider exists with version 
    10  v0.3.10 abiding by contract v1alpha3
    11  end note
    12  ====
    13  User -> APIServer: kubectl apply -f updated-provider.yaml
    14  
    15  activate APIServer
    16  APIServer --> MgmtClusterController: upgrade core provider to v0.3.11
    17  activate MgmtClusterController
    18  MgmtClusterController -> MgmtClusterController: Reconcile
    19  
    20  MgmtClusterController -> APIServer: Get existing Core provider
    21  APIServer --> MgmtClusterController: Response
    22  
    23  note over MgmtClusterController
    24  - Verify if the Core provider exists
    25  - Get the Status.Contract of existing provider
    26  end note
    27  
    28  MgmtClusterController -> APIServer: Get metadata from ConfigMap for v0.3.11
    29  APIServer --> MgmtClusterController: Response
    30  
    31  note over MgmtClusterController
    32  - Verify that v0.3.11 abides by existing contract
    33  end note 
    34  
    35  MgmtClusterController -> APIServer: Pause core provider\nto avoid reconciliation
    36  
    37  MgmtClusterController -> APIServer: Delete old core provider
    38  MgmtClusterController -> APIServer: Install new core provider
    39  
    40  
    41  MgmtClusterController -> APIServer: Unpause core provider
    42  
    43  
    44  deactivate APIServer
    45  deactivate MgmtClusterController
    46  @enduml