rfc: specify cli version api (#1175)

* add cli compatibility api rfc

* fix typos

* rewording
This commit is contained in:
Moritz Sanft 2023-02-17 10:32:48 +01:00 committed by GitHub
parent f70447bf7d
commit c3347f2eb5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 2 deletions

View File

@ -32,6 +32,7 @@ There may be more API groups in the future (e.g. `cli`)
- [`/constellation/v1/ref/<ref>/stream/<stream>/<version>/image/csp/<csp>/measurements.json`](image-api.md)
- [`/constellation/v1/ref/<ref>/stream/<stream>/<version>/image/csp/<csp>/measurements.json.sig`](image-api.md)
- [`/constellation/v1/ref/<ref>/stream/<stream>/<version>/image/csp/<csp>/image.raw`](image-api.md)
- [`/constellation/v1/ref/<ref>/stream/<stream>/<version>/cli/info.json`](cli-api.md#cli-lookup-table)
## API path identifiers `ref`, `stream` and `version`
@ -56,7 +57,7 @@ and [pseudo-versions](https://go.dev/ref/mod#pseudo-versions).
The [pesudo-version tool](../hack/pseudo-version) can generate a valid pseudo-version for your current head.
### Consisten API path prefix of `ref` and `stream`
### Consistent API path prefix of `ref` and `stream`
For API calls, paths will always start with `ref` and `stream`:

32
rfc/cli-api.md Normal file
View File

@ -0,0 +1,32 @@
# CLI compatibility information
The CLI API provides information about the compatibility of the Constellation CLI and other components of the Constellation ecosystem such as Kubernetes versions.
## CLI API Endpoints
The build pipeline produces artifacts for compatibility information that are uploaded to S3 and can be accessed via HTTP.
The artifacts are organized in a directory structure that allows to look up the compatibility for a given Constellation version.
The following HTTP endpoints are available:
- `GET /constellation/v1/ref/<REF>/stream/<STREAM>/<VERSION>/cli/`
- [`info.json` returns the CLI compatibility information artifact for the given Constellation version.](#cli-lookup-table)
## CLI information artifact
The CLI compatibility information artifact is a JSON file that maps the image name consisting of `ref`, `stream` and `version` to the corresponding CLI version and it's compatibility information:
```
/constellation/v1/ref/<REF>/stream/<STREAM>/<VERSION>/cli/info.json
```
```json
{
"version": "<VERSION>",
"ref": "<REF>",
"stream": "<STREAM>",
"kubernetes": ["v1.1.23", "v1.1.24", "v1.1.25"]
}
```
This shows that the Constellation CLI version `<VERSION>` is compatible with Kubernetes versions `v1.1.23`, `v1.1.24` and `v1.1.25`.

View File

@ -1,6 +1,6 @@
# OS image & measurement discovery
The Constellation OS image build pipeline generates a set of images using a chosen commit of the Constellation monorepo and and a desired release version number.
The Constellation OS image build pipeline generates a set of images using a chosen commit of the Constellation monorepo and a desired release version number.
```mermaid
graph LR