README
¶
Asset Store Controller Manager
Overview
Asset Store is a Kubernetes-native solution for storing assets, such as documentation, images, API specifications, and client-side applications. It consists of the Asset Controller and the Bucket Controller.
Prerequisites
Use the following tools to set up the project:
Usage
Run a local version
To run the application outside the cluster, run this command:
make run
Build a production version
To build the production Docker image, run this command:
IMG={image_name}:{image_tag} make docker-build
The variables are:
{image_name}
which is the name of the output image. Useasset-store-controller-manager
for the image name.{image_tag}
which is the tag of the output image. Uselatest
for the tag name.
Environmental Variables
Use the following environment variables to configure the application:
Name | Required | Default | Description |
---|---|---|---|
APP_CLUSTER_ASSET_RELIST_INTERVAL | No | 30s |
The period of time after which the controller refreshes the status of a ClusterAsset CR |
APP_ASSET_RELIST_INTERVAL | No | 30s |
The period of time after which the controller refreshes the status of an Asset CR |
APP_BUCKET_RELIST_INTERVAL | No | 30s |
The period of time after which the controller refreshes the status of a Bucket CR |
APP_CLUSTER_BUCKET_RELIST_INTERVAL | No | 30s |
The period of time after which the controller refreshes the status of a ClusterBucket |
APP_STORE_ENDPOINT | No | minio.kyma.local |
The address of the content storage server |
APP_STORE_EXTERNAL_ENDPOINT | No | https://minio.kyma.local |
The external address of the content storage server |
APP_STORE_ACCESS_KEY | Yes | The access key required to sign in to the content storage server | |
APP_STORE_SECRET_KEY | Yes | The secret key required to sign in to the content storage server | |
APP_STORE_USE_SSL | No | true |
The variable that enforces the use of HTTPS for the connection with the content storage server |
APP_WEBHOOK_MUTATION_TIMEOUT | No | 1m |
The period of time after which mutation is canceled |
APP_WEBHOOK_METADATA_EXTRACTION_TIMEOUT | No | 1m |
The period of time after which metadata extraction is canceled |
APP_WEBHOOK_VALIDATION_TIMEOUT | No | 1m |
The period of time after which validation is canceled |
APP_LOADER_VERIFY_SSL | No | true |
The variable that verifies SSL certificate before downloading source files |
APP_LOADER_TEMPORARY_DIRECTORY | No | /tmp |
The path to the directory used to temporarily store data |
APP_MAX_ASSET_CONCURRENT_RECONCILES | No | 1 |
The maximum number of asset reconciles that can run in parallel |
APP_MAX_CLUSTER_ASSET_CONCURRENT_RECONCILES | No | 1 |
The maximum number of cluster asset reconciles that can run in parallel |
APP_STORE_UPLOAD_WORKER_COUNT | No | 10 |
The number of workers that will be used to upload files to storage bucket in parallel |
Development
Install dependencies
This project uses dep
as a dependency manager. To install all required dependencies, use the following command:
make resolve
Run tests
To run all unit tests, use the following command:
make test
Directories
¶
Path | Synopsis |
---|---|
cmd
|
|
pkg
|
|
apis
Package apis contains Kubernetes API groups.
|
Package apis contains Kubernetes API groups. |
apis/assetstore
Package assetstore contains assetstore API versions
|
Package assetstore contains assetstore API versions |
apis/assetstore/v1alpha2
Package v1alpha2 contains API Schema definitions for the assetstore v1alpha2 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kyma-project/kyma/components/asset-store-controller-manager/pkg/apis/assetstore +k8s:defaulter-gen=TypeMeta +groupName=assetstore.kyma-project.io Package v1alpha2 contains API Schema definitions for the assetstore v1alpha2 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kyma-project/kyma/components/asset-store-controller-manager/pkg/apis/assetstore +k8s:defaulter-gen=TypeMeta +groupName=assetstore.kyma-project.io
|
Package v1alpha2 contains API Schema definitions for the assetstore v1alpha2 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kyma-project/kyma/components/asset-store-controller-manager/pkg/apis/assetstore +k8s:defaulter-gen=TypeMeta +groupName=assetstore.kyma-project.io Package v1alpha2 contains API Schema definitions for the assetstore v1alpha2 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/kyma-project/kyma/components/asset-store-controller-manager/pkg/apis/assetstore +k8s:defaulter-gen=TypeMeta +groupName=assetstore.kyma-project.io |
assethook/automock
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
|
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 |
assethook/engine/automock
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
|
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 |
loader/automock
Code generated by mockery v1.0.0
|
Code generated by mockery v1.0.0 |
store/automock
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
|
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 |
Click to show internal directories.
Click to hide internal directories.