github.com/kyma-project/kyma/components/asset-store-controller-manager@v0.0.0-20191203152857-3792b5df17c5/README.md (about)

     1  # Asset Store Controller Manager
     2  
     3  ## Overview
     4  
     5  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.
     6  
     7  ## Prerequisites
     8  
     9  Use the following tools to set up the project:
    10  
    11  * [Go](https://golang.org)
    12  * [Docker](https://www.docker.com/)
    13  * [Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder)
    14  
    15  ## Usage
    16  
    17  ### Run a local version
    18  
    19  To run the application outside the cluster, run this command:
    20  
    21  ```bash
    22  GO111MODULE=on make run
    23  ```
    24  
    25  ### Build a production version
    26  
    27  To build the production Docker image, run this command:
    28  
    29  ```bash
    30  IMG={image_name}:{image_tag} make docker-build
    31  ```
    32  
    33  The variables are:
    34  
    35  * `{image_name}` which is the name of the output image. Use `asset-store-controller-manager` for the image name.
    36  * `{image_tag}` which is the tag of the output image. Use `latest` for the tag name.
    37  
    38  ### Environmental Variables
    39  
    40  Use the following environment variables to configure the application:
    41  
    42  | Name | Required | Default | Description |
    43  |------|----------|---------|-------------|
    44  | **APP_CLUSTER_ASSET_RELIST_INTERVAL** | No | `30s` | The period of time after which the controller refreshes the status of a ClusterAsset CR |
    45  | **APP_CLUSTER_ASSET_MAX_CONCURRENT_RECONCILES** | No | `1` | The maximum number of cluster asset reconciles that can run in parallel |
    46  | **APP_ASSET_RELIST_INTERVAL** | No | `30s` | The period of time after which the controller refreshes the status of an Asset CR |
    47  | **APP_ASSET_MAX_CONCURRENT_RECONCILES** | No | `1` | The maximum number of asset reconciles that can run in parallel |
    48  | **APP_BUCKET_RELIST_INTERVAL** | No | `30s` | The period of time after which the controller refreshes the status of a Bucket CR |
    49  | **APP_BUCKET_MAX_CONCURRENT_RECONCILES** | No | `1` | The maximum number of bucket reconciles that can run in parallel |
    50  | **APP_CLUSTER_BUCKET_RELIST_INTERVAL** | No | `30s` | The period of time after which the controller refreshes the status of a ClusterBucket |
    51  | **APP_CLUSTER_BUCKET_MAX_CONCURRENT_RECONCILES** | No | `1` | The maximum number of cluster bucket reconciles that can run in parallel |
    52  | **APP_STORE_ENDPOINT** | No | `minio.kyma.local` | The address of the content storage server |
    53  | **APP_STORE_EXTERNAL_ENDPOINT** | No | `https://minio.kyma.local` | The external address of the content storage server |
    54  | **APP_STORE_ACCESS_KEY** | Yes | None | The access key required to sign in to the content storage server |
    55  | **APP_STORE_SECRET_KEY** | Yes | None | The secret key required to sign in to the content storage server |
    56  | **APP_STORE_USE_SSL** | No | `true` | The variable that enforces the use of HTTPS for the connection with the content storage server |
    57  | **APP_STORE_UPLOAD_WORKERS_COUNT** | No | `10` | The number of workers used in parallel to upload files to the storage bucket |
    58  | **APP_WEBHOOK_MUTATION_TIMEOUT** | No | `1m` | The period of time after which mutation is canceled |
    59  | **APP_WEBHOOK_MUTATION_WORKERS_COUNT** | No | `10` | The number of workers used in parallel to mutate files |
    60  | **APP_WEBHOOK_METADATA_EXTRACTION_TIMEOUT** | No | `1m` | The period of time after which metadata extraction is canceled |
    61  | **APP_WEBHOOK_VALIDATION_TIMEOUT** | No | `1m` | The period of time after which validation is canceled |
    62  | **APP_WEBHOOK_VALIDATION_WORKERS_COUNT** | No | `10` | The number of workers used in parallel to validate files |
    63  | **APP_LOADER_VERIFY_SSL** | No | `true` | The variable that verifies SSL certificate before downloading source files |
    64  | **APP_LOADER_TEMPORARY_DIRECTORY** | No | `/tmp` | The path to the directory used to temporarily store data |
    65  
    66  ## Development
    67  
    68  ### Install dependencies
    69  
    70  This project uses `dep` as a dependency manager. To install all required dependencies, use the following command:
    71  
    72  ```bash
    73  make resolve
    74  ```
    75  
    76  ### Run tests
    77  
    78  To run all unit tests, use the following command:
    79  
    80  ```bash
    81  make test
    82  ```