Skip to content

azimuth-cloud/azimuth-capi-operator

azimuth-capi-operator

sequenceDiagram
    box Management Cluster Pods
    participant api as API
    participant capi as CAPI Operator
    participant zenith-op as Zenith Operator
    end
    box CAPI Operator CRDs
    participant cluster as Cluster
    end
    box Identity Operator CRDs
    participant realm as Realm
    participant oidcclient as OIDCClient
    participant platform as Platform
    end
    box Schedule Operator CRDs
    participant lease as Lease
    end
    api-)capi: Create (or update Kubernetes platform)
    capi-)cluster: <<Create or update>>
    par Cluster created or spec updated
      capi->>cluster: Write last_updated_timestamp to Cluster status
      capi->>cluster: Get spec.zenith_identity_realm_name
      cluster--)capi:
      capi->>realm: Read Realm matching zenith_identity_realm_name
      realm--)capi:
      capi->>oidcclient: <<Ensure and adopt>>>
      capi->>oidcclient: Wait for clientId and issuerUrl to be populated
      oidcclient-)oidcclient: Identity Operator populates clientId and issuerUrl
      oidcclient--)capi:
      capi->>cluster: Get status.services
      cluster--)capi:
      capi->>platform: <<Create, write services from Cluster status to spec and adopt>>
      capi->>platform: Wait for status.rootGroup to be populated
      platform-)platform: Identity Operator populates rootGroup
      platform--)capi:
      capi->>cluster: Get spec.lease_name
      cluster--)capi:
      capi->>lease: Adopt Lease matching spec.lease_name
      capi->>lease: Wait for Lease to become active
      lease--)capi: 
      capi->>lease: Get sizeNameMap for Helm values
      lease--)capi:
      capi->>capi: Ensure keypair secret for Zenith reservation
      participant capi-cluster as CAPI Cluster
      capi-)capi-cluster: <<CAPI Helm charts installed configured with Zenith, CAPI cluster provisioned>>
      capi-)zenith-op: Ensure Zenith Operator
      capi->>cluster: Update status.last_updated_time
      capi-cluster-)capi-cluster: <<Create Zenith Reservation or update Reservation status>>
      zenith-op-)capi-cluster: Get Zenith clients to register
      capi-cluster--)zenith-op:
    and Monitor Cluster Services
      par
        capi-)capi-cluster: Read Reservation events for services
        capi-cluster--)capi:
        capi->>cluster: Update cluster status with services
      and
        capi-)cluster: Watch for updates to status.services
        cluster--)capi:
        box CAPI Helm CRDs
        participant helmrelease as HelmRelease
        end
        capi->>helmrelease: Write services to annotations
        capi->>platform: Write services to spec
      end
    end
Loading
sequenceDiagram
    participant capi as CAPI Operator
    box CAPI Operator CRDs
    participant cluster as Cluster
    end
    box Identity Operator CRDs
    participant oidcclient as OIDCClient
    participant realm as Realm
    participant platform as Platform
    end
    box Schedule Operator CRDs
    participant lease as Lease
    end
    box CAPI CRDs
    participant machines as Machines
    participant addons as Addons <br/> (HelmReleases <br/> and Manifests)
    end
    par On resume
      capi->>oidcclient: Adopt
      capi->>lease: Adopt
      capi->>machines: Get machines with annotations for cluster
      machines--)capi:
      capi->>cluster: Get known machines from status.nodes
      cluster--)capi:
      capi->>cluster: Remove unknown nodes from status.nodes
      capi->>addons: Get addons with annotations for cluster
      addons--)capi:
      capi->>cluster: Get known addons from status.addons
      cluster--)capi:
      capi->>cluster: Remove unknown nodes from status.addons
    and On resume or updates to status.services
      capi->>cluster: Get spec.zenith_identity_realm_name
      cluster--)capi:
      capi->>realm: Read Realm matching zenith_identity_realm_name
      realm--)capi:
      capi->>cluster: Get services from status.services
      cluster--)capi:
      capi->>platform: Write services to spec
    end
Loading

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 10