From f5517b234175c53d953bbc0dc0d268255d8411a8 Mon Sep 17 00:00:00 2001 From: Yiyang Huang Date: Sun, 7 Jun 2020 23:43:11 +0800 Subject: [PATCH] feat(proposals): Add in-tree design Signed-off-by: Yiyang Huang --- proposals/artifact-processor-extender.md | 186 ++++++++++++++++-- .../in-tree-workflow.png | Bin 0 -> 78686 bytes 2 files changed, 169 insertions(+), 17 deletions(-) create mode 100644 proposals/images/artifact-processor-extender/in-tree-workflow.png diff --git a/proposals/artifact-processor-extender.md b/proposals/artifact-processor-extender.md index f3665ff0..fecd81c3 100644 --- a/proposals/artifact-processor-extender.md +++ b/proposals/artifact-processor-extender.md @@ -9,7 +9,12 @@ - [Goals](#goals) - [Non-Goals](#non-goals) - [Implementation](#implementation) - - [HTTPProcessor and Processor Extender](#httpprocessor-and-processor-extender) + - [In-tree processor](#in-tree-processor) + - [Config schema](#config-schema) + - [GeneralProcessor](#generalprocessor) + - [```GeneralProcessor``` Implement](#generalprocessor-implement) + - [Out-of-tree processor](#out-of-tree-processor) + - [HTTPProcessor and Processor Extender](#httpprocessor-and-processor-extender) - [`HTTPProcessor`](#httpprocessor) - [Processor Extender](#processor-extender) - [Configuration file `processors.yaml`](#configuration-file-processorsyaml) @@ -17,10 +22,10 @@ - [Policy Check Interceptor](#policy-check-interceptor) - [OAuth 2 Bearer Tokens](#oauth-2-bearer-tokens) - [Robot Accounts](#robot-accounts) - - [Development Process](#development-process) - - [First Iteration: HTTPProcessor and Extender without Auth](#first-iteration-httpprocessor-and-extender-without-auth) - - [Second Iteration: Registration](#second-iteration-registration) - - [Third Iteration: Auth in the Processor Extender](#third-iteration-auth-in-the-processor-extender) + - [Development Process](#development-process) + - [First Iteration: HTTPProcessor and Extender without Auth](#first-iteration-httpprocessor-and-extender-without-auth) + - [Second Iteration: Registration](#second-iteration-registration) + - [Third Iteration: Auth in the Processor Extender](#third-iteration-auth-in-the-processor-extender) @@ -159,7 +164,154 @@ This proposal is not to: ## Implementation -To address these problems, we propose a new feature **artifact processor extender** in Harbor Core. Some contributions have been made in this proposal: +To address these problems, we propose a new feature **artifact processor extender** in Harbor Core. There are two ways to achieve our goals. One is in-tree processor which we define config JSON object in a certain format in the config layer of an artifact. The other is out-of-tree processor which define data format in HTTP API. + +## In-tree processor + +Contributions about in-tree processor: + +- Define a JSON schema for the config layer of an artifact. +- The new processor struct ```GeneralProcessor``` to support user-defined artifacts. + +### Config schema +manifest +``` +{ + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "config": { + "mediaType": "application/vnd.custom.artifact.config.v1+json", + "size": 11830, + "digest": "sha256:2ffd3c3d87aac9d99c93ba84fbec6ae59c9946cbef2531bb1dc5e02fb905971a" + }, + "layers": [] +} +``` +As is showed above, we can define a media type ```application/vnd.custom.artifact.config.v1+json``` to show it is a media type of user-defined artifact config + + +config layer +``` +{ + // user defined config + // abstract metadata will use this config data as extra attrs + "custom": {}, + // harbor defined config + "harbor": { + // artifact config + "artifactMetadata":{ + // artifact type + "type": "ORMB", + // artifact media type + "mediaType": "application/vnd.caicloud.ormb.xxx", + // additions + "additions": [ + { + // content type + "contentType": "plain" + // addition type name, one of addition type + "type": "type_xxx", + "digest": "sha256:xxx" + }, + { + "contentType": "json", + "type": "type_xxx", + "digest": "sha256:xxx" + }, + { + "contentType": "markdown" + "type": "type_xxx", + "digest": "sha256:xxx" + }, + ... + ], + } + } +} +``` +Mainly there are two parts about this config. One is custom for user to put their config, the other is harbor defined config. + +### GeneralProcessor + +The Processor interface is defined in Harbor Core. + +```go +// Processor processes specified artifact +type Processor interface { + // GetArtifactType returns the type of one kind of artifact specified by media type + GetArtifactType() string + // ListAdditionTypes returns the supported addition types of one kind of artifact specified by media type + ListAdditionTypes() []string + // AbstractMetadata abstracts the metadata for the specific artifact type into the artifact model, + // the metadata can be got from the manifest or other layers referenced by the manifest. + AbstractMetadata(ctx context.Context, manifest []byte, artifact *artifact.Artifact) error + // AbstractAddition abstracts the addition of the artifact. + // The additions are different for different artifacts: + // build history for image; values.yaml, readme and dependencies for chart, etc + AbstractAddition(ctx context.Context, artifact *artifact.Artifact, additionType string) (addition *Addition, err error) +} +``` +We need config layer digest for every functions defined above. So we need to do a little change about the ```Processor``` interface. ```artifact.Artifact``` is needed in all fuctions. + +```go +// Processor processes specified artifact +type Processor interface { + // GetArtifactType returns the type of one kind of artifact specified by media type + GetArtifactType(artifact *artifact.Artifact) string + // ListAdditionTypes returns the supported addition types of one kind of artifact specified by media type + ListAdditionTypes(artifact *artifact.Artifact) []string + // AbstractMetadata abstracts the metadata for the specific artifact type into the artifact model, + // the metadata can be got from the manifest or other layers referenced by the manifest. + AbstractMetadata(ctx context.Context, manifest []byte, artifact *artifact.Artifact) error + // AbstractAddition abstracts the addition of the artifact. + // The additions are different for different artifacts: + // build history for image; values.yaml, readme and dependencies for chart, etc + AbstractAddition(ctx context.Context, artifact *artifact.Artifact, additionType string) (addition *Addition, err error) +} +``` + +#### ```GeneralProcessor``` Implement +``` +func (g *GeneralProcessor) GetArtifactType(artifact *artifact.Artifact) string { + configLayer := pullBlob(artifact.manifest.config.digest) + return configLayer.Type +} + +func (g *GeneralProcessor) ListAdditionTypes(artifact *artifact.Artifact) []string { + configLayer := pullBlob(artifact.manifest.config.digest) + // Traverse configLayer.harbor.artifactMetadata.additons array to get all addition type + return []string{configLayer.harbor.artifactMetadata.additons.type...} +} + +func (g *GeneralProcessor) AbstractMetadata(artifact *artifact.Artifact) error { + configLayer := pullBlob(artifact.manifest.config.digest) + artifact.ExtraAttrs = configLayer.custom +} + +func (g *GeneralProcessor) AbstractAddition(artifact artifact *artifact.Artifact, additionType string) (addition *Addition, err error) { + configLayer := pullBlob(artifact.manifest.config.digest) + // make a map map[type]struct{ + // contentType + // digest + // } + additionDigest := map[type]struct.digest + additionLayer := pullBlob(additionDigest) + return Addition{ + Content: additionType, + Content: additionLayer, + } +} +``` + +

+ +

Fig. 4 Workflow of Pushing an Artifact using the General Processor

+

+ + +## Out-of-tree processor + +Some contributions have been made about out-of-tree processor: - The new Processor struct `HTTPProcessor` to support artifact processor extender feature for extending custom artifact types. The current design of `Processor` interface is not changed at the same time, thus the new feature will not affect the existing supported types like OCI Image, CNAB and Helm Chart. @@ -168,7 +320,7 @@ To address these problems, we propose a new feature **artifact processor extende - The similar mechanism to Scanner to support Auth in `HTTPProcessor`, which will be used to pull manifests from the Registry. -### HTTPProcessor and Processor Extender +#### HTTPProcessor and Processor Extender The Processor interface is defined in Harbor Core and we do not propose any change for it. @@ -189,7 +341,7 @@ type Processor interface { } ``` -We propose a new implementation of the `Processor` interface, `HTTPProcessor`. The design of the processor is shown in Fig. 4. The processor acts as a proxy to the processor extender. There are two new components in the architecture: +We propose a new implementation of the `Processor` interface, `HTTPProcessor`. The design of the processor is shown in Fig. 5. The processor acts as a proxy to the processor extender. There are two new components in the architecture: 1. Remote Processor API - HTTP RESTful API between Harbor and remote processor. - The API itself is defined and maintained by Harbor. @@ -200,7 +352,7 @@ We propose a new implementation of the `Processor` interface, `HTTPProcessor`. T

-

Fig. 4 Design of HTTPProcessor

+

Fig. 5 Design of HTTPProcessor

For a remote processor, the functions defined in ```Processor``` interface can be abstract to HTTP service API. By using these APIs, Harbor Core can communicate with remote HTTP processor extender. @@ -252,11 +404,11 @@ func (h *HTTPProcessor) AbstractAddition(ctx context.Context, artifact *artifact } ``` -The workflow of pushing a custom artifact to Harbor with the help of `HTTPProcessor` is shown in Fig. 5. The Harbor works as a proxy to the registry when the user uploads the content layers and config layer. Harbor ensures that the repository exists. Then Harbor puts the manifest to the registry. After that, Harbor will check if the artifact by digest exists. In this step, Harbor will use `Processor.AbstractMetatda` in `Abstractor` to abstract the metadata ant keep in the artifact.Artifact model. +The workflow of pushing a custom artifact to Harbor with the help of `HTTPProcessor` is shown in Fig. 6. The Harbor works as a proxy to the registry when the user uploads the content layers and config layer. Harbor ensures that the repository exists. Then Harbor puts the manifest to the registry. After that, Harbor will check if the artifact by digest exists. In this step, Harbor will use `Processor.AbstractMetatda` in `Abstractor` to abstract the metadata ant keep in the artifact.Artifact model.

-

Fig. 5 Workflow of Pushing an Artifact using the HTTPProcessor

+

Fig. 6 Workflow of Pushing an Artifact using the HTTPProcessor

When `HTTPProcessor.AbstractMetadata(ctx context.Context, manifest []byte, artifact *artifact.Artifact) error)` is invoked, it will send a HTTP POST request to the processor extender: @@ -277,11 +429,11 @@ POST {remote-processor-endpoint}/abstractmetadata The `manifest` and `artifact` will be sent to the extender to abstract the metadata. If the registry needs Auth, `registry` will be sent, just like Scanner. -When users deal with these built-in artifact types like OCI Image, CNAB or Helm Chart, the workflow **is not affected**, like Fig. 6. For example, the user uploads a Helm Chart to Harbor, we will use Helm Chart processor to abstract the metadata. Thus the design of `HTTPProcessor` is non-invasive to the current design. +When users deal with these built-in artifact types like OCI Image, CNAB or Helm Chart, the workflow **is not affected**, like Fig. 7. For example, the user uploads a Helm Chart to Harbor, we will use Helm Chart processor to abstract the metadata. Thus the design of `HTTPProcessor` is non-invasive to the current design.

-

Fig. 6 Workflow of Pushing an Artifact using the Build-in Processor

+

Fig. 7 Workflow of Pushing an Artifact using the Build-in Processor

#### Processor Extender @@ -415,7 +567,7 @@ It is reasonable to use the same way for processor extender using bearer tokens Refer to scan job using credentials generated by robot account mechanism, we can use the same way to use the robot account mechanism to generate credentials that work with these common OCI/Docker tooling libraries to provide credentialed access to the image data. The lifecycle of the robot account credentials can be bound to the HTTP request. For every HTTP request call remote processor API, a robot account expired at certain time will be created.Additionally, a modification is needed to ensure that the generated credentials have access to bypass the configured policy checks on the image that normal users are subject to if those checks are configured. -## Development Process +### Development Process There are totally three things we need to do to complete the proposal: @@ -425,16 +577,16 @@ There are totally three things we need to do to complete the proposal: Thus we propose to have three iterations. Each of them is self-contained and supposed to be merged into Harbor Core. -### First Iteration: HTTPProcessor and Extender without Auth +#### First Iteration: HTTPProcessor and Extender without Auth At this stage, user defined processor will not register to harbor. So if users want to use processor extender, they still need to hard-code some logic to harbor code to register the type with the corresponding processor manually. Also, ```HTTPProcessor``` will make HTTP request to the extender without providing authentication and Harbor external endpoint. So users need to do some work to generate authentication using other user account. Harbor external endpoint should be configured any way. And policy check interceptor can not be bypassed. -### Second Iteration: Registration +#### Second Iteration: Registration At the second stage, registration logic will be added. Users don't need to modify harbor code any more. A remote processor configuration file is required to register specific processor to harbor. When harbor core starts, it will read the configuration file and register the processor to harbor. -### Third Iteration: Auth in the Processor Extender +#### Third Iteration: Auth in the Processor Extender At the final stage, using robot account mechanism to generate credentials will be finished. Harbor external endpoint and authentication will be passed directly in HTTP POST request body. Users don't need to worry about the authentication problem. But still need to find a way to use authentication properly. diff --git a/proposals/images/artifact-processor-extender/in-tree-workflow.png b/proposals/images/artifact-processor-extender/in-tree-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..34a6c05ee824331ca3a1e4a7d77a57d684c65104 GIT binary patch literal 78686 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
_N`Swn& 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 l%BhUO+~w{rjyK^SjwRax