Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend ACM Chart support to provision clusters using ClusterDeployment #441

Open
claudiol opened this issue Mar 12, 2024 · 1 comment
Open
Labels
enhancement New feature or request

Comments

@claudiol
Copy link
Contributor

Currently the framework supports the provisioning of clusters using ManagedClusterSet, and ClusterPool and ClusterClaim.

The functionality is supported via the managedClusterGroups section described in the values-hub.yaml files. Below is an example of how to describe a ClusterPool associated with a label.

# This section is used by ACM
  managedClusterGroups:
  - name: resilient
    helmOverrides:
    - name: clusterGroup.isHubCluster
      value: "false"
    clusterSelector:
      matchLabels:
        clusterGroup: resilient
      matchExpressions:
      - key: vendor
        operator: In
        values:
          - OpenShift
    clusterPools:
      # example of pool for primary spokes
      aws-ca-central-1:
        name: aws-region-ca
        openshiftVersion: 4.12.49
        baseDomain: blueprints.rhecoeng.com
        platform:
          aws:
            region: us-west-2
        clusters:
          - customspoke1
        controlPlane:
          platform:
            aws:
              type: m5.2xlarge
              zones:
                - us-west-2a
        workers:
          replicas: 3
          platform:
            aws:
              type: m5.xlarge
              zones:
                - us-west-2a
      # example of pool for secondary spokes

We would like to extend the provisioning functionality in the VP framework to support provisioning clusters using ManagedClusterSet, ClusterDeployment, and Submariner add-on. Similar to how we describe ClusterPools we would like to add how to provision ClusterDeployments. Below is an initial example of what it could look like.

# This section is used by ACM
  managedClusterGroups:
  - name: resilient
    helmOverrides:
    - name: clusterGroup.isHubCluster
      value: "false"
    clusterSelector:
      matchLabels:
        clusterGroup: resilient
      matchExpressions:
      - key: vendor
        operator: In
        values:
          - OpenShift
    clusterDeployments:
      # example of pool for primary spokes
      ocp-primary-1:
        name: ocp-primary
        version: 4.14.15
        install_config:
          apiVersion: v1
          metadata:
            name: ocp-primary
          baseDomain: blueprints.rhecoeng.com
          controlPlane:
            name: master
            replicas: 3
            platform:
              aws:
                type: m5.2xlarge
                zones:
                - us-east-1a
          compute:
          - name: worker
            replicas: 5
            platform:
              aws:
                type: m5.2xlarge
                zones:
                - us-east-1a
          networking:
            clusterNetwork:
            - cidr: 10.128.0.0/14
              hostPrefix: 23
            machineNetwork:
            - cidr: 10.0.0.0/16
            networkType: OpenShiftSDN
            serviceNetwork:
            - 172.30.0.0/16
          platform:
            aws:
              region: us-east-1
              userTags:
                project: ValidatedPatterns

          publish: External
          sshKey: ""
          pullSecret: ""
      # example of pool for secondary spokes

With ClusterDeployment the user can control the name of the clusters which is a requirement in certain environments. ClusterPool cluster names are auto-generated by ACM so there is no control over the cluster name.

@claudiol claudiol added the enhancement New feature or request label Mar 12, 2024
@mbaldessari
Copy link
Contributor

I think this makes sense overall

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants