From 2425ad07096fa3277f0baa66a5ffcd1a77dca0b2 Mon Sep 17 00:00:00 2001 From: Hannah Hunter Date: Wed, 14 Feb 2024 11:11:44 -0500 Subject: [PATCH] add dapr k8s operator section Signed-off-by: Hannah Hunter --- .../quickstarts/workflow-quickstart.md | 2 +- .../hosting/kubernetes/kubernetes-deploy.md | 46 +++++++++++++++++-- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index d139561cb04..9d5012ae206 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -10,7 +10,7 @@ description: Get started with the Dapr Workflow building block The workflow building block is currently in **alpha**. {{% /alert %}} -Let's take a look at the Dapr [Workflow building block]({{< ref workflow >}}). In this Quickstart, you'll create a simple console application to demonstrate Dapr's workflow programming model and the workflow management APIs. +Let's take a look at the Dapr [Workflow building block]({{< ref workflow-overview.md >}}). In this Quickstart, you'll create a simple console application to demonstrate Dapr's workflow programming model and the workflow management APIs. In this guide, you'll: diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md index bdc60e48928..36b37cb9064 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md @@ -14,10 +14,13 @@ When [setting up Dapr on Kubernetes]({{< ref kubernetes-overview.md >}}), you ca Both the Dapr CLI and the Dapr Helm chart automatically deploy with affinity for nodes with the label `kubernetes.io/os=linux`. You can deploy Dapr to Windows nodes if your application requires it. For more information, see [Deploying to a hybrid Linux/Windows Kubernetes cluster]({{< ref kubernetes-hybrid-clusters >}}). {{% /alert %}} +## Install Dapr on Kubernetes + +Select your preferred installation method for Dapr on Kubernetes. + {{< tabs "Dapr CLI" "Helm" >}} {{% codetab %}} -## Install with Dapr CLI You can install Dapr on a Kubernetes cluster using the [Dapr CLI]({{< ref install-dapr-cli.md >}}). @@ -131,8 +134,6 @@ dapr uninstall -k {{% codetab %}} -## Install with Helm - You can install Dapr on Kubernetes using a Helm v3 chart. ❗**Important:** The latest Dapr Helm chart no longer supports Helm v2. [Migrate from Helm v2 to Helm v3](https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/). @@ -236,7 +237,7 @@ helm uninstall dapr --namespace dapr-system {{< /tabs >}} -### Use Mariner-based images +## Use Mariner-based images The default container images pulled on Kubernetes are based on [*distroless*](https://github.com/GoogleContainerTools/distroless). @@ -274,6 +275,43 @@ helm upgrade --install dapr dapr/dapr \ {{< /tabs >}} +## Use the Dapr Kubernetes Operator + +The [Dapr Kubernetes Operator](https://github.com/dapr-sandbox/dapr-kubernetes-operator) manages the lifecycle for Dapr and its components. The operator's goal is to automate the tasks required when operating a Dapr running in Kubernetes mode. + +The operator was created with the intention of running through the [Operator Lifecycle Manager](https://github.com/operator-framework/operator-lifecycle-manager), specifically on [OpenShift 4](https://try.openshift.com/), but you can install and get the same functionality on any Kubernetes cluster. + +The following example shows the most minimal valid manifest to create a new Dapr instance: + +```yaml +apiVersion: operator.dapr.io/v1alpha1 +kind: DaprControlPlane +metadata: + name: "dapr-control-plane" +spec: + values: {} +``` + +When the Dapr Kubernetes Operator sees a new `DaprControlPlane` resource, the Dapr components are provisioned using Kubernetes resources generated from the official Dapr Helm charts and managed by the operator. The same configuration options available when installing Dapr using Helm can also be used to configure the Dapr Kubernetes Operator. + +When something changes on an existing `DaprControlPlane` resource or any resource generated by the operator, the operator reconfigures the cluster to ensure the actual state of the cluster matches the desired state. + +{{% alert title="Important" color="warning" %}} +The operator expects that a single `DaprControlPlane` named `dapr-control-plane` in the same namespace where the operator runs exists in a given point in time. Any additional `DaprControlPlane` resources are moved to an Error state and ignored. +{{% /alert %}} + +The `DaprControlPlane` custom resource consists of the following properties: + +| Property | Default | Description | +| -------- | ------- | ----------- | +| `values` | [Empty] | The values passed into the Dapr Helm chart | + +### Demo + +Watch the [Dapr Community Call #90 presentation on the Dapr Kubernetes Operator.](https://youtu.be/d3ahz41I_Io?si=MsfnR_U5TkG9OrfK&t=50) + + + ## Related links - [Deploy Dapr with Helm parameters and other details]({{< ref "kubernetes-production.md#deploy-dapr-with-helm" >}}) - [Upgrade Dapr on Kubernetes]({{< ref kubernetes-upgrade.md >}})