From a9ebdb2fb55f35fdba3ea3a09f15e61b0471758a Mon Sep 17 00:00:00 2001 From: Ellis Tarn Date: Thu, 23 Sep 2021 09:28:30 -0700 Subject: [PATCH] Reverted docs until v0.3.4 is released --- website/content/en/docs/Reference/_index.md | 160 +++++++++++++----- website/content/en/docs/faqs.md | 4 +- .../content/en/docs/getting-started/_index.md | 11 +- website/content/en/docs/provisioner-crd.md | 39 ++--- 4 files changed, 142 insertions(+), 72 deletions(-) diff --git a/website/content/en/docs/Reference/_index.md b/website/content/en/docs/Reference/_index.md index 6e15a504c4dd..0ea9d08218dc 100644 --- a/website/content/en/docs/Reference/_index.md +++ b/website/content/en/docs/Reference/_index.md @@ -3,23 +3,83 @@ title: "API Reference" linkTitle: "API Reference" weight: 70 --- + +

Packages:

-

karpenter.sh/v1alpha4

+

karpenter.sh/v1alpha3

-

Package v1alpha4 contains API Schema definitions for the v1alpha4 API group

+

Package v1alpha3 contains API Schema definitions for the v1alpha3 API group

Resource Types: -

Constraints +

Cluster

(Appears on: -ProvisionerSpec) +ProvisionerSpec) +

+

+

Cluster configures the cluster that the provisioner operates against. If +not specified, it will default to using the controller’s kube-config.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+endpoint
+ +string + +
+

Endpoint is required for nodes to connect to the API Server.

+
+caBundle
+ +string + +
+(Optional) +

CABundle used by nodes to verify API Server certificates. If omitted (nil), +it will be dynamically loaded at runtime from the in-cluster configuration +file /var/run/secrets/kubernetes.io/serviceaccount/ca.crt. +An empty value (“”) can be used to signal that no CABundle should be used.

+
+name
+ +string + +
+(Optional) +

Name may be required to detect implementing cloud provider resources.

+
+

Constraints +

+

+(Appears on: +ProvisionerSpec)

Constraints are applied to all nodes created by the provisioner. They can be @@ -46,8 +106,7 @@ overriden by NodeSelectors at the pod level.

(Optional)

Taints will be applied to every node launched by the Provisioner. If specified, the provisioner will not provision nodes for pods that do not -have matching tolerations. Additional taints will be created that match -pod tolerations on a per-node basis.

+have matching tolerations.

@@ -59,7 +118,9 @@ map[string]string (Optional) -

Labels will be applied to every node launched by the Provisioner.

+

Labels will be applied to every node launched by the Provisioner unless +overriden by pod node selectors. Well known labels control provisioning +behavior. Additional labels may be supported by your cloudprovider.

@@ -72,7 +133,8 @@ map[string]string (Optional)

Zones constrains where nodes will be launched by the Provisioner. If -unspecified, defaults to all zones in the region.

+unspecified, defaults to all zones in the region. Cannot be specified if +label “topology.kubernetes.io/zone” is specified.

@@ -85,14 +147,15 @@ unspecified, defaults to all zones in the region.

(Optional)

InstanceTypes constrains which instances types will be used for nodes -launched by the Provisioner. If unspecified, defaults to all types.

+launched by the Provisioner. If unspecified, it will support all types. +Cannot be specified if label “node.kubernetes.io/instance-type” is specified.

-architectures
+architecture
-[]string +string @@ -102,9 +165,9 @@ launched by the Provisioner. If unspecified, defaults to all types.

-operatingSystems
+operatingSystem
-[]string +string @@ -112,20 +175,9 @@ launched by the Provisioner. If unspecified, defaults to all types.

OperatingSystem constrains the underlying node operating system

- - -provider
- -k8s.io/apimachinery/pkg/runtime.RawExtension - - - -

Provider contains fields specific to your cloudprovider.

- - -

Provisioner +

Provisioner

Provisioner is the Schema for the Provisioners API

@@ -156,7 +208,7 @@ Refer to the Kubernetes API documentation for the fields of the spec
- + ProvisionerSpec @@ -167,9 +219,22 @@ ProvisionerSpec + + + + @@ -191,7 +257,7 @@ int64
+cluster
+ + +Cluster + + +
+

Cluster that launched nodes connect to.

+
Constraints
- + Constraints @@ -178,6 +243,7 @@ Constraints

(Members of Constraints are embedded into this type.)

+(Optional)

Constraints are applied to all nodes launched by this provisioner.

(Optional)

TTLSecondsAfterEmpty is the number of seconds the controller will wait -before attempting to delete a node, measured from when the node is +before attempting to terminate a node, measured from when the node is detected to be empty. A Node is considered to be empty when it does not have pods scheduled to it, excluding daemonsets.

Termination due to underutilization is disabled if this field is not set.

@@ -220,7 +286,7 @@ memory leak protection, and disruption testing.

status
- + ProvisionerStatus @@ -230,11 +296,11 @@ ProvisionerStatus
-

ProvisionerSpec +

ProvisionerSpec

(Appears on: -Provisioner) +Provisioner)

ProvisionerSpec is the top level provisioner specification. Provisioners @@ -243,8 +309,9 @@ status=true]. Node configuration is driven by through a combination of provisioner specification (defaults) and pod scheduling constraints (overrides). A single provisioner is capable of managing highly diverse capacity within a single cluster and in most cases, only one should be -necessary. It’s possible to define multiple provisioners. These provisioners -may have different defaults and can be specifically targeted by pods using +necessary. For advanced use cases like workload separation and sharding, it’s +possible to define multiple provisioners. These provisioners may have +different defaults and can be specifically targeted by pods using pod.spec.nodeSelector[“karpenter.sh/provisioner-name”]=$PROVISIONER_NAME.

@@ -257,9 +324,22 @@ pod.spec.nodeSelector[“karpenter.sh/provisioner-name”]=$PROVISIONER_ + + + + @@ -281,7 +362,7 @@ int64
+cluster
+ + +Cluster + + +
+

Cluster that launched nodes connect to.

+
Constraints
- + Constraints @@ -268,6 +348,7 @@ Constraints

(Members of Constraints are embedded into this type.)

+(Optional)

Constraints are applied to all nodes launched by this provisioner.

(Optional)

TTLSecondsAfterEmpty is the number of seconds the controller will wait -before attempting to delete a node, measured from when the node is +before attempting to terminate a node, measured from when the node is detected to be empty. A Node is considered to be empty when it does not have pods scheduled to it, excluding daemonsets.

Termination due to underutilization is disabled if this field is not set.

@@ -305,11 +386,11 @@ memory leak protection, and disruption testing.

-

ProvisionerStatus +

ProvisionerStatus

(Appears on: -Provisioner) +Provisioner)

ProvisionerStatus defines the observed state of Provisioner

@@ -353,5 +434,6 @@ its target, and indicates whether or not those conditions are met.


Generated with gen-crd-api-reference-docs -on git commit bf8ae63. +on git commit f37f9ba.

+ diff --git a/website/content/en/docs/faqs.md b/website/content/en/docs/faqs.md index 52c284c2c78a..07d342a798a2 100644 --- a/website/content/en/docs/faqs.md +++ b/website/content/en/docs/faqs.md @@ -6,7 +6,7 @@ weight: 30 ## General ### How does a Provisioner decide to manage a particular node? -Karpenter will only take action on nodes that it provisions. All nodes launched by Karpenter will be labeled with `karpenter.sh/provisioner-name`. +Karpenter will only take action on nodes that it provisions. All nodes launched by Karpenter will contain be labeled with `karpenter.sh/provisioner-name`. ## Compatibility ### Which Kubernetes versions does Karpenter support? Karpenter releases on a similar cadence to upstream Kubernetes releases. Currently, Karpenter is compatible with Kubernetes versions v1.19+. However, this may change in the future as Karpenter takes dependencies on new Kubernetes features. @@ -38,7 +38,7 @@ Each Provisioner is capable of defining heterogenous nodes across multiple avail By default, pods will use the rules defined by a Provisioner named `default`. This is analogous to the `default` scheduler. To select an alternative provisioner, use the node selector `karpenter.sh/provisioner-name: alternative-provisioner`. You must either define a default provisioner or explicitly specify `karpenter.sh/provisioner-name` node selector. ## Deprovisioning ### How does Karpenter decide which nodes it can terminate? -Karpenter will only terminate nodes that it manages. Nodes will be considered for termination due to expiry or emptiness (see below). +Nodes will only terminate nodes that it manages. Nodes will be considered for termination due to expiry or emptiness (see below). ### When does Karpenter terminate empty nodes? Nodes are considered empty when they do not have any pods scheduled to them. Daemonsets pods and Failed pods are ignored. Karpenter will send a deletion request to the Kubernetes API, and graceful termination will be handled by termination finalizer. Karpenter will wait for the duration of `ttlSecondsAfterUnderutilized` to terminate an empty node. If `ttlSecondsAfterUnderutilized` is unset, **which it is by default**, Karpenter will not terminate nodes once they are empty. ### When does Karpenter terminate expired nodes? diff --git a/website/content/en/docs/getting-started/_index.md b/website/content/en/docs/getting-started/_index.md index ad8f7f1541b0..feeee6bc6811 100644 --- a/website/content/en/docs/getting-started/_index.md +++ b/website/content/en/docs/getting-started/_index.md @@ -170,17 +170,14 @@ Review the [provsioner CRD](/docs/provisioner-crd) for more information. For exa ```bash cat <