Create a Blueprint for Confluent Platform Using Confluent for Kubernetes

In Confluent for Kubernetes (CFK) Blueprints, a Blueprint is a configuration template for Confluent Platform deployments. You use a Blueprint to enforce infrastructure and deployment standards within your organization. Blueprints mandate if that configuration information should be provided at the Blueprint level for all Confluent Platform clusters, or each deployment should provide its configuration details:

  • You would provide platform-level configurations that can be reused across multiple deployments. Examples are Confluent Platform versions, identity providers, Docker image registries, certificate providers, and Confluent Cloud connection information.
  • Sensitive configurations that should be kept private at the deployment level should be set to come from the cluster deployment CR.

From the control plane where the Orchestrator is installed, you can create, view, update, or delete Blueprints.

CFK Blueprints includes a ConfluentPlatformBlueprint custom resource definition (CRD) and a set of Confluent components ClusterClass CRDs. As a platform administrator, you create a Blueprint CR and a set of Confluent component ClusterClass CRs to create a Blueprint. Any changes in the ClusterClass CRs or the ConfluentPlatformBlueprint CR are cluster wide and impact every clusters deployed with the Blueprint.

When your Blueprint or Confluent Platform classes change, CFK Blueprints will automatically detect the changes and roll the cluster if needed. For details of the fleet management process in CFK Blueprints, see Manage Confluent Platform Fleets Using Confluent for Kubernetes Blueprints.

To create a Blueprint:

  1. Create a Blueprint.
  2. Create Confluent Platform Classes.
  3. Deploy the ConfluentPlatformBlueprint and the Confluent Cluster Class CRs using the kubectl apply -f command.

Create a Blueprint

In the ConfluentPlatformBlueprint CR, specify your Confluent Platform configurations.

You can use the example Quick Start CR as a template.

For more Blueprint samples, see the CFK example repo.

For networking, security, and other complex configurations, refer to the detailed configuration guides.

A Blueprint CR has the following properties:

apiVersion: core.cpc.platform.confluent.io/v1beta1
kind: ConfluentPlatformBlueprint
metadata:
  name:                       —-- [1]
  namespace:                  —-- [2]
spec:
  credentialStoreConfigRefs:  --- [3]
    -name:
     namespace:
  certificateStoreConfigRefs: --- [4]
    -name:
     namespace:
  k8s:                        —-- [5]
  confluentPlatform:
    version:                  —-- [6]
    license:                  --- [7]
  components:                 —-- [8]
    zookeeperCluster:
    kafkaCluster:
    ksqlDBCluster:
    controlCenterCluster:
    schemaRegistryCluster:
    connectCluster:

Create Confluent Platform Cluster Classes

For each component to be deployed, create a Confluent Platform component ClusterClass CR to specify component-specific settings:

kind:                         —-- [1]
metadata:
  name:                       —-- [2]
  namespace:                  —-- [3]
spec:
   provisioner:
    type:                     —-- [4]
    cfk:                      —-- [5]
    ccloud:                   --- [6]
  • [1] Use one of the following component classes:
    • ZookeeperClusterClass
    • ConnectClusterClass
    • ControlCenterClusterClass
    • KafkaClusterClass
    • KsqlDBClusterClass
    • ZookeeperClusterClass
    • KafkaRestProxyClusterClass
  • [2] Required. The name of the component ClusterClass CR.
  • [3] The namespace of the component ClusterClass CR.
  • [4] Required. The type of underlying resource for the component cluster. Specify cfk or ccloud. If omitted, cfk is the default.
  • [5] Required if cfk is specified in [4].
  • [6] Required if ccloud is specified in [4].