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

doc: added first version of workload docs #10

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

thschue
Copy link
Collaborator

@thschue thschue commented Dec 12, 2022

Signed-off-by: Thomas Schuetz [email protected]

@thschue thschue requested review from thisthat and RealAnna December 12, 2022 10:16
@agardnerIT
Copy link
Contributor

agardnerIT commented Dec 13, 2022

Workloads are representing Kubernetes primitives as [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/), [StatefulSets](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset) and [DaemonSets](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/). Workload resources are used to track the state of your deployments and to trigger pre- and post-deployment tasks and evaluations.

In other words, workloads correlate directly to Deployments, StatefulSets and DaemonSets. 2 Deployments == 2 Workloads ??

If one of these annotations exist, the Keptn Lifecycle Toolkit will create a workload resource for it.

Add the word "automatically"?

If one of these annotations exist, the Lifecycle Toolkit [capitalised?] will automatically create a `Workload` resource for it.

When a workload is detected, the Keptn Lifecycle Toolkit will create a KeptnWorkload resource fort it

  • Small typo: fort > for
  • KeptnWorkload should be backticked: KeptnWorkload

General point: can it be used less in the copy - be explicit to make it clearer what it refers to.

Summary

What I understood from this page:

  1. A KeptnWorkload is an annotated Deployment, StatefulSet or DaemonSet
  2. A KeptnWorkload is created by adding either app.kubernetes.io/name OR keptn.sh/workload to the relevant k8s primitives
  3. app.kubernetes.io/part-of or keptn.sh/app can optionally be used to signal that this KeptnWorkload is part of a KeptnApp.
    Note: This doesn't say anything about the fact that all labelled primitives (with either part-of or keptn.sh/app) MUST be listed in the KeptnAppotherwise deployments will be blocked (see [here](https://github.com/keptn/lifecycle-toolkit/issues/258#issuecomment-1306575769)). This will be a common source of tickets as a lot of helm charts come pre-packaged withpart-ofbut since theKeptnApp` doesn't exist, the deployments will be blocked as pending.
  4. app.kubernetes.io/version or keptn.sh/version can optionally be given
  5. keptn.sh/pre-deployment-tasks, keptn.sh/post-deployment-tasks, keptn.sh/pre-deployment-evaluations and keptn.sh/post-deployment-evaluations are all technically optional (but since these are hte key point of the KLT - it's assumed the user will want to use at least 1 or more of them.
  6. KeptnWorkloadInstances are the "object" to KeptnWorkloads class. It is not explained how / why a new KeptnWorkloadInstance is created (what signifies uniqueness to create a new instance of a KeptnWorkloadInstance?

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

Successfully merging this pull request may close these issues.

2 participants