sigs.k8s.io/cluster-api@v1.7.1/docs/book/src/user/personas.md (about) 1 # Personas 2 3 This document describes the personas for the Cluster API project as driven 4 from use cases. 5 6 We are marking a “proposed priority for project at this time” per use case. 7 This is not intended to say that these use cases aren’t awesome or important. 8 They are intended to indicate where we, as a project, have received a great deal 9 of interest, and as a result where we think we should invest right now to get 10 the most users for our project. If interest grows in other areas, they will 11 be elevated. And, since this is an open source project, if you want to drive 12 feature development for a less-prioritized persona, we absolutely encourage 13 you to join us and do that. 14 15 ## Use-case driven personas 16 17 ### Service Provider: Managed Kubernetes 18 19 Managed Kubernetes is an offering in which a provider is automating the 20 lifecycle management of Kubernetes clusters, including full control planes 21 that are available to, and used directly by, the customer. 22 23 Proposed priority for project at this time: High 24 25 There are several projects from several companies that are building out 26 proposed managed Kubernetes offerings (Project Pacific’s Kubernetes Service 27 from VMware, Microsoft Azure, Google Cloud, Red Hat) and they have all 28 expressed a desire to use Cluster API. This looks like a good place to make 29 sure Cluster API works well, and then expand to other use cases. 30 31 **Feature matrix** 32 33 | | | 34 |---|---| 35 | Is Cluster API exposed to this user? | Yes 36 | Are control plane nodes exposed to this user? | Yes 37 | How many clusters are being managed via this user? | Many 38 | Who is the CAPI admin in this scenario? | Platform Operator 39 | Cloud / On-Prem | Both 40 | Upgrade strategies desired? | Need to gather data from users 41 | How does this user interact with Cluster API? | API 42 | ETCD deployment | Need to gather data from users 43 | Does this user have a preference for the control plane running on pods vs. vm vs. something else? | Need to gather data from users 44 45 ### Service Provider: Kubernetes-as-a-Service 46 47 Examples of a Kubernetes-as-a-Service provider include services such as 48 Red Hat’s hosted OpenShift, AKS, GKE, and EKS. The cloud services manage the 49 control plane, often giving those cloud resources away “for free,” and the 50 customers spin up and down their own worker nodes. 51 52 Proposed priority for project at this time: Medium 53 54 Existing Kubernetes as a Service providers, e.g. AKS, GKE have indicated 55 interest in replacing their off-tree automation with Cluster API, however 56 since they already had to build their own automation and it is currently 57 “getting the job done,” switching to Cluster API is not a top priority for 58 them, although it is desirable. 59 60 **Feature matrix** 61 62 | | | 63 |---|---| 64 | Is Cluster API exposed to this user? | Need to gather data from users 65 | Are control plane nodes exposed to this user? | No 66 | How many clusters are being managed via this user? | Many 67 | Who is the CAPI admin in this scenario? | Platform itself (AKS, GKE, etc.) 68 | Cloud / On-Prem | Cloud 69 | Upgrade strategies desired? | tear down/replace (need confirmation from platforms) 70 | How does this user interact with Cluster API? | API 71 | ETCD deployment | Need to gather data from users 72 | Does this user have a preference for the control plane running on pods vs. vm vs. something else? | Need to gather data from users 73 74 ### Cluster API Developer 75 76 The Cluster API developer is a developer of Cluster API who needs tools and 77 services to make their development experience more productive and pleasant. 78 It’s also important to take a look at the on-boarding experience for new 79 developers to make sure we’re building out a project that other people can 80 more easily submit patches and features to, to encourage inclusivity and 81 welcome new contributors. 82 83 Proposed priority for project at this time: Low 84 85 We think we’re in a good place right now, and while we welcome contributions 86 to improve the development experience of the project, it should not be the 87 primary product focus of the open source development team to make development 88 better for ourselves. 89 90 **Feature matrix** 91 92 | | | 93 |---|---| 94 | Is Cluster API exposed to this user? | Yes 95 | Are control plane nodes exposed to this user? | Yes 96 | How many clusters are being managed via this user? | Many 97 | Who is the CAPI admin in this scenario? | Platform Operator 98 | Cloud / On-Prem | Both 99 | Upgrade strategies desired? | Need to gather data from users 100 | How does this user interact with Cluster API? | API 101 | ETCD deployment | Need to gather data from users 102 | Does this user have a preference for the control plane running on pods vs. vm vs. something else? | Need to gather data from users 103 104 ### Raw API Consumers 105 106 Examples of a raw API consumer is a tool like Prow, a customized enterprise 107 platform built on top of Cluster API, or perhaps an advanced “give me a 108 Kubernetes cluster” button exposing some customization that is built using 109 Cluster API. 110 111 Proposed priority for project at this time: Low 112 113 **Feature matrix** 114 115 | | | 116 |---|---| 117 | Is Cluster API exposed to this user? | Yes 118 | Are control plane nodes exposed to this user? | Yes 119 | How many clusters are being managed via this user? | Many 120 | Who is the CAPI admin in this scenario? | Platform Operator 121 | Cloud / On-Prem | Both 122 | Upgrade strategies desired? | Need to gather data from users 123 | How does this user interact with Cluster API? | API 124 | ETCD deployment | Need to gather data from users 125 | Does this user have a preference for the control plane running on pods vs. vm vs. something else? | Need to gather data from users 126 127 ### Tooling: Provisioners 128 129 Examples of this use case, in which a tooling provisioner is using 130 Cluster API to automate behavior, includes tools such as kOps and kubicorn. 131 132 Proposed priority for project at this time: Low 133 134 Maintainers of tools such as kOps have indicated interest in using 135 Cluster API, but they have also indicated they do not have much time to 136 take on the work. If this changes, this use case would increase in priority. 137 138 **Feature matrix** 139 140 | | | 141 |---|---| 142 | Is Cluster API exposed to this user? | Need to gather data from tooling maintainers 143 | Are control plane nodes exposed to this user? | Yes 144 | How many clusters are being managed via this user? | One (per execution) 145 | Who is the CAPI admin in this scenario? | Kubernetes Platform Consumer 146 | Cloud / On-Prem | Cloud 147 | Upgrade strategies desired? | Need to gather data from users 148 | How does this user interact with Cluster API? | CLI 149 | ETCD deployment | (Stacked or external) AND new 150 | Does this user have a preference for the control plane running on pods vs. vm vs. something else? | Need to gather data from users 151 152 ### Service Provider: End User/Consumer 153 154 This user would be an end user or consumer who is given direct access to 155 Cluster API via their service provider to manage Kubernetes clusters. 156 While there are some commercial projects who plan on doing this (Project 157 Pacific, others), they are doing this as a “super user” feature behind the 158 backdrop of a “Managed Kubernetes” offering. 159 160 Proposed priority for project at this time: Low 161 162 This is a use case we should keep an eye on to see how people use Cluster API 163 directly, but we think the more relevant use case is people building managed 164 offerings on top at this top. 165 166 **Feature matrix** 167 168 | | | 169 |---|---| 170 | Is Cluster API exposed to this user? | Yes 171 | Are control plane nodes exposed to this user? | Yes 172 | How many clusters are being managed via this user? | Many 173 | Who is the CAPI admin in this scenario? | Platform Operator 174 | Cloud / On-Prem | Both 175 | Upgrade strategies desired? | Need to gather data from users 176 | How does this user interact with Cluster API? | API 177 | ETCD deployment | Need to gather data from users 178 | Does this user have a preference for the control plane running on pods vs. vm vs. something else? | Need to gather data from users