<a id="cmf-cfk"></a>

# Manage Flink With Confluent for Kubernetes

You can use Confluent for Kubernetes (CFK) to declaratively manage the Apache Flink® lifecycle in
Kubernetes through custom resources (CRs) that CFK reconciles with Confluent Manager for Apache Flink
(CMF). This includes environments, applications, and Flink SQL objects.

CFK provides the following Flink custom resources:

`CMFRestClass`
: The connection that every Flink CR uses to reach CMF. Only CFK uses this
  resource; it is not part of CMF.

`FlinkEnvironment`
: A set of configurations that Flink applications and SQL statements share.

`FlinkApplication`
: A packaged Flink program, such as a JAR or container image that contains
  compiled DataStream or Table API code.

`FlinkComputePool`
: The compute that runs SQL statements, either `DEDICATED` or `SHARED`.

`FlinkStatement`
: A single Flink SQL statement that runs as a streaming job.

`FlinkKafkaCatalog`
: Binds a Schema Registry instance for the databases in the catalog.

`FlinkKafkaDatabase`
: A SQL database in a catalog, mapped to a Kafka cluster.

`FlinkSecret`
: Syncs a Kubernetes Secret that holds Kafka or Schema Registry credentials to CMF.

`FlinkEnvironmentSecretMapping`
: Exposes a synced secret to an environment so that catalogs and databases can
  reference it.

#### NOTE
Flink SQL support through CFK is a preview feature in CFK 3.3 and
requires CMF 2.3.0 or later. Do not use preview features in production.

For the requirements and the end-to-end steps to manage Flink on-premises with
CFK, see the following operator documentation:

- [Manage Flink Using Confluent for Kubernetes](https://docs.confluent.io/operator/current/co-flink-overview.html)
- [Manage Flink SQL Statements Using Confluent for Kubernetes](https://docs.confluent.io/operator/current/co-manage-flink-sql.html)

## Related content

- [Install CMF](../installation/helm.md#install-cmf-helm)
- [CLI Operations](cli.md#cmf-flink-cli)
- [REST APIs](rest.md#af-rest-api)
