Skip to content

Commit 3edb970

Browse files
author
Tim Bannister
committed
Move API overview to be a Docsy section overview
1 parent 1863474 commit 3edb970

File tree

10 files changed

+138
-130
lines changed

10 files changed

+138
-130
lines changed

content/en/docs/concepts/extend-kubernetes/api-extension/custom-resources.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ methods for adding custom resources and how to choose between them.
1616
<!-- body -->
1717
## Custom resources
1818

19-
A *resource* is an endpoint in the [Kubernetes API](/docs/reference/using-api/api-overview/) that stores a collection of
19+
A *resource* is an endpoint in the [Kubernetes API](/docs/concepts/overview/kubernetes-api/) that stores a collection of
2020
[API objects](/docs/concepts/overview/working-with-objects/kubernetes-objects/) of a certain kind; for example, the built-in *pods* resource contains a collection of Pod objects.
2121

2222
A *custom resource* is an extension of the Kubernetes API that is not necessarily available in a default

content/en/docs/concepts/overview/kubernetes-api.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ and behavior, and to enable controlling access to end-of-life and/or
103103
experimental APIs.
104104

105105
To make it easier to evolve and to extend its API, Kubernetes implements
106-
[API groups](/docs/reference/using-api/api-overview/#api-groups) that can be
107-
[enabled or disabled](/docs/reference/using-api/api-overview/#enabling-or-disabling).
106+
[API groups](/docs/reference/using-api/#api-groups) that can be
107+
[enabled or disabled](/docs/reference/using-api/#enabling-or-disabling).
108108

109109
API resources are distinguished by their API group, resource type, namespace
110110
(for namespaced resources), and name. The API server may serve the same
@@ -115,7 +115,7 @@ versions `v1` and `v1beta1` for the same resource. An object created by the
115115
`v1beta1` version can then be read, updated, and deleted by either the
116116
`v1beta1` or the `v1` versions.
117117

118-
Refer to [API versions reference](/docs/reference/using-api/api-overview/#api-versioning)
118+
Refer to [API versions reference](/docs/reference/using-api/#api-versioning)
119119
for more details on the API version level definitions.
120120

121121
## API Extension

content/en/docs/concepts/overview/working-with-objects/kubernetes-objects.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ and the `spec` format for a Deployment can be found in
9191

9292
## {{% heading "whatsnext" %}}
9393

94-
* [Kubernetes API overview](/docs/reference/using-api/api-overview/) explains some more API concepts
9594
* Learn about the most important basic Kubernetes objects, such as [Pod](/docs/concepts/workloads/pods/).
96-
* Learn about [controllers](/docs/concepts/architecture/controller/) in Kubernetes
95+
* Learn about [controllers](/docs/concepts/architecture/controller/) in Kubernetes.
96+
* [Using the Kubernetes API](/docs/reference/using-api/) explains some more API concepts.
9797

9898

9999

content/en/docs/reference/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ This section of the Kubernetes documentation contains references.
1818

1919
## API Reference
2020

21-
* [Kubernetes API Overview](/docs/reference/using-api/api-overview/) - Overview of the API for Kubernetes.
2221
* [Kubernetes API Reference {{< latest-version >}}](/docs/reference/generated/kubernetes-api/{{< latest-version >}}/)
22+
* [Using The Kubernetes API](/docs/reference/using-api/) - overview of the API for Kubernetes.
2323

2424
## API Client Libraries
2525

content/en/docs/reference/access-authn-authz/authorization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Kubernetes reviews only the following API request attributes:
5252
* **Resource** - The ID or name of the resource that is being accessed (for resource requests only) -- For resource requests using `get`, `update`, `patch`, and `delete` verbs, you must provide the resource name.
5353
* **Subresource** - The subresource that is being accessed (for resource requests only).
5454
* **Namespace** - The namespace of the object that is being accessed (for namespaced resource requests only).
55-
* **API group** - The {{< glossary_tooltip text="API Group" term_id="api-group" >}} being accessed (for resource requests only). An empty string designates the [core API group](/docs/reference/using-api/api-overview/#api-groups).
55+
* **API group** - The {{< glossary_tooltip text="API Group" term_id="api-group" >}} being accessed (for resource requests only). An empty string designates the _core_ [API group](/docs/reference/using-api/#api-groups).
5656

5757
## Determine the Request Verb
5858

Lines changed: 127 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,129 @@
11
---
2-
title: Using the Kubernetes API
2+
title: Kubernetes API Overview
3+
reviewers:
4+
- erictune
5+
- lavalamp
6+
- jbeda
7+
content_type: concept
38
weight: 10
4-
---
9+
card:
10+
name: reference
11+
weight: 50
12+
title: Overview of API
13+
---
14+
15+
<!-- overview -->
16+
17+
This section provides reference information for the Kubernetes API.
18+
19+
The REST API is the fundamental fabric of Kubernetes. All operations and
20+
communications between components, and external user commands are REST API
21+
calls that the API Server handles. Consequently, everything in the Kubernetes
22+
platform is treated as an API object and has a corresponding entry in the
23+
[API](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/).
24+
25+
The [Kubernetes API reference](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)
26+
lists the API for Kubernetes version {{< param "version" >}}.
27+
28+
For general background information, read
29+
[The Kubernetes API](/docs/concepts/overview/kubernetes-api/).
30+
31+
<!-- body -->
32+
33+
The REST API is the fundamental fabric of Kubernetes. All operations and
34+
communications between components, and external user commands are REST API
35+
calls that the API Server handles. Consequently, everything in the Kubernetes
36+
platform is treated as an API object and has a corresponding entry in the
37+
API.
38+
39+
## API versioning
40+
41+
The JSON and Protobuf serialization schemas follow the same guidelines for
42+
schema changes. The following descriptions cover both formats.
43+
44+
The API versioning and software versioning are indirectly related.
45+
The [API and release versioning proposal](https://git.k8s.io/community/contributors/design-proposals/release/versioning.md)
46+
describes the relationship between API versioning and software versioning.
47+
48+
Different API versions indicate different levels of stability and support. You
49+
can find more information about the criteria for each level in the
50+
[API Changes documentation](https://git.k8s.io/community/contributors/devel/sig-architecture/api_changes.md#alpha-beta-and-stable-versions).
51+
52+
Here's a summary of each level:
53+
54+
- Alpha:
55+
- The version names contain `alpha` (for example, `v1alpha1`).
56+
- The software may contain bugs. Enabling a feature may expose bugs. A
57+
feature may be disabled by default.
58+
- The support for a feature may be dropped at any time without notice.
59+
- The API may change in incompatible ways in a later software release without notice.
60+
- The software is recommended for use only in short-lived testing clusters,
61+
due to increased risk of bugs and lack of long-term support.
62+
63+
- Beta:
64+
- The version names contain `beta` (for example, `v2beta3`).
65+
- The software is well tested. Enabling a feature is considered safe.
66+
Features are enabled by default.
67+
- The support for a feature will not be dropped, though the details may change.
68+
69+
- The schema and/or semantics of objects may change in incompatible ways in
70+
a subsequent beta or stable release. When this happens, migration
71+
instructions are provided. Schema changes may require deleting, editing, and
72+
re-creating API objects. The editing process may not be straightforward.
73+
The migration may require downtime for applications that rely on the feature.
74+
- The software is not recommended for production uses. Subsequent releases
75+
may introduce incompatible changes. If you have multiple clusters which
76+
can be upgraded independently, you may be able to relax this restriction.
77+
78+
{{< note >}}
79+
Please try beta features and provide feedback. After the features exit beta, it
80+
may not be practical to make more changes.
81+
{{< /note >}}
82+
83+
- Stable:
84+
- The version name is `vX` where `X` is an integer.
85+
- The stable versions of features appear in released software for many subsequent versions.
86+
87+
## API groups
88+
89+
[API groups](https://git.k8s.io/community/contributors/design-proposals/api-machinery/api-group.md)
90+
make it easier to extend the Kubernetes API.
91+
The API group is specified in a REST path and in the `apiVersion` field of a
92+
serialized object.
93+
94+
There are several API groups in Kubernetes:
95+
96+
* The *core* (also called *legacy*) group is found at REST path `/api/v1`.
97+
The core group is not specified as part of the `apiVersion` field, for
98+
example, `apiVersion: v1`.
99+
* The named groups are at REST path `/apis/$GROUP_NAME/$VERSION` and use
100+
`apiVersion: $GROUP_NAME/$VERSION` (for example, `apiVersion: batch/v1`).
101+
You can find the full list of supported API groups in
102+
[Kubernetes API reference](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#-strong-api-groups-strong-).
103+
104+
## Enabling or disabling API groups {#enabling-or-disabling}
105+
106+
Certain resources and API groups are enabled by default. You can enable or
107+
disable them by setting `--runtime-config` on the API server. The
108+
`--runtime-config` flag accepts comma separated `<key>[=<value>]` pairs
109+
describing the runtime configuration of the API server. If the `=<value>`
110+
part is omitted, it is treated as if `=true` is specified. For example:
111+
112+
- to disable `batch/v1`, set `--runtime-config=batch/v1=false`
113+
- to enable `batch/v2alpha1`, set `--runtime-config=batch/v2alpha1`
114+
115+
{{< note >}}
116+
When you enable or disable groups or resources, you need to restart the API
117+
server and controller manager to pick up the `--runtime-config` changes.
118+
{{< /note >}}
119+
120+
## Persistence
121+
122+
Kubernetes stores its serialized state in terms of the API resources by writing them into
123+
{{< glossary_tooltip term_id="etcd" >}}.
124+
125+
## {{% heading "whatsnext" %}}
126+
127+
- Learn more about [API conventions](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#api-conventions)
128+
- Read the design documentation for
129+
[aggregator](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/aggregated-api-servers.md)

content/en/docs/reference/using-api/api-overview.md

Lines changed: 0 additions & 118 deletions
This file was deleted.

content/en/docs/reference/using-api/client-libraries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ API from various programming languages.
1212

1313

1414
<!-- body -->
15-
To write applications using the [Kubernetes REST API](/docs/reference/using-api/api-overview/),
15+
To write applications using the [Kubernetes REST API](/docs/reference/using-api/),
1616
you do not need to implement the API calls and request/response types yourself.
1717
You can use a client library for the programming language you are using.
1818

content/en/docs/reference/using-api/deprecation-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ a deprecation policy for aspects of the system that are slated to be removed.
2424
Since Kubernetes is an API-driven system, the API has evolved over time to
2525
reflect the evolving understanding of the problem space. The Kubernetes API is
2626
actually a set of APIs, called "API groups", and each API group is
27-
independently versioned. [API versions](/docs/reference/using-api/api-overview/#api-versioning) fall
27+
independently versioned. [API versions](/docs/reference/using-api/#api-versioning) fall
2828
into 3 main tracks, each of which has different policies for deprecation:
2929

3030
| Example | Track |

static/_redirects

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
/docs/api/ /docs/concepts/overview/kubernetes-api/ 301
6969

7070
/docs/api-reference/labels-annotations-taints/ /docs/reference/labels-annotations-taints/ 301
71+
/docs/reference/using-api/api-overview/ /docs/reference/using-api/ 301
7172

7273
/docs/concepts/abstractions/controllers/garbage-collection/ /docs/concepts/workloads/controllers/garbage-collection/ 301
7374
/docs/concepts/abstractions/controllers/statefulsets/ /docs/concepts/workloads/controllers/statefulset/ 301

0 commit comments

Comments
 (0)