<commit_before># Required fields within your CSV

## Preparing your CSV for use with OLM

Before you begin, we strongly advise that you follow Operator-Lifecycle-Manager's docs on [building a CSV for the Operator Framework](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/doc/design/building-your-csv.md). These outline the functional purpose of the CSV and which fields are required for installing your Operator CSV through OLM.

## Required fields for OperatorHub

An Operator's CSV must contain the following fields and annotations for it to be displayed properly within OperatorHub.io and OperatorHub in OCP. Below is a guideline, explaining each field and at the bottom of this document is a full example of such a CSV.

```yaml
metadata:
  annotations:
    capabilities: One of the following: Basic Install, Seamless Upgrades, Full Lifecycle, Deep Insights, Auto Pilot. For more information see https://www.operatorhub.io/images/capability-level-diagram.svg
    categories: A comma separated list of categories from the values below. If not set, this will be set to "Other" in the UI
    containerImage: The repository that hosts the operator image. The format should match ${REGISTRYHOST}/${USERNAME}/${NAME}:${TAG}
    createdAt: The date that the operator was created. The format should match yyyy-mm-ddThh:mm:ssZ
    support: The name of the individual, company, or service that maintains this operator
    repository: (Optional) a URL to a source code repository of the Operator, intended for community Operators to direct users where to file issues / bug
    alm-examples: A string of a JSON list of example CRs for the operator's CRDs
    description: |-
      A short description of the operator that will be displayed on the marketplace tile
      If this annotation is not present, the `spec.description` value will be shown instead
      In either case, only the first 135 characters will appear
spec:
  displayName: A short, readable name for the operator
  description: A detailed description of the operator, preferably in markdown format
  icon: 
  - base64data: A base 64 representation of an image or logo associated with your operator
    mediatype: One of the following: image/png, image/jpeg, image/gif, image/svg+xml
  version: The operator version in semver format
  maintainers:
  - name: The name of the individual, company, or service that maintains this operator
    email: Email to reach maintainer
  provider:
    name: The name of the individual, company, or service that provides this operator
  links:
  - name: Title of the link (ex: Blog, Source Code etc.)
    url: url/link
  keywords:
  - 'A list of words that relate to your operator'
  - 'These are used when searching for operators in the UI'
```

### Logo requirements

The logo for your Operator is inlined into the CSV as a base64-encoded string. The height:width ratio should be 1:2. The maximum dimensions are 80px for width and 40px in height.

### Categories

For the best user experience, choose from the following categories:

| Category  |
|-----------|
| AI/Machine Learning |
| Application Runtime |
| Big Data |
| Chaos Engineering |
| Cloud Provider |
| Database |
| Developer Tools |
| Integration & Delivery |
| Logging & Tracing |
| Monitoring |
| Networking |
| OpenShift Optional |
| Security |
| Storage |
| Streaming & Messaging |

If none of these categories fit your operator, please open a PR against this repo to edit this doc and we will work with you to propagate this change to [operator-courier](https://github.com/operator-framework/operator-courier) so that your operator can get through CI tests.<commit_msg>Revert "Add Chaos Engineering Category"<commit_after># Required fields within your CSV

## Preparing your CSV for use with OLM

Before you begin, we strongly advise that you follow Operator-Lifecycle-Manager's docs on [building a CSV for the Operator Framework](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/doc/design/building-your-csv.md). These outline the functional purpose of the CSV and which fields are required for installing your Operator CSV through OLM.

## Required fields for OperatorHub

An Operator's CSV must contain the following fields and annotations for it to be displayed properly within OperatorHub.io and OperatorHub in OCP. Below is a guideline, explaining each field and at the bottom of this document is a full example of such a CSV.

```yaml
metadata:
  annotations:
    capabilities: One of the following: Basic Install, Seamless Upgrades, Full Lifecycle, Deep Insights, Auto Pilot. For more information see https://www.operatorhub.io/images/capability-level-diagram.svg
    categories: A comma separated list of categories from the values below. If not set, this will be set to "Other" in the UI
    containerImage: The repository that hosts the operator image. The format should match ${REGISTRYHOST}/${USERNAME}/${NAME}:${TAG}
    createdAt: The date that the operator was created. The format should match yyyy-mm-ddThh:mm:ssZ
    support: The name of the individual, company, or service that maintains this operator
    repository: (Optional) a URL to a source code repository of the Operator, intended for community Operators to direct users where to file issues / bug
    alm-examples: A string of a JSON list of example CRs for the operator's CRDs
    description: |-
      A short description of the operator that will be displayed on the marketplace tile
      If this annotation is not present, the `spec.description` value will be shown instead
      In either case, only the first 135 characters will appear
spec:
  displayName: A short, readable name for the operator
  description: A detailed description of the operator, preferably in markdown format
  icon: 
  - base64data: A base 64 representation of an image or logo associated with your operator
    mediatype: One of the following: image/png, image/jpeg, image/gif, image/svg+xml
  version: The operator version in semver format
  maintainers:
  - name: The name of the individual, company, or service that maintains this operator
    email: Email to reach maintainer
  provider:
    name: The name of the individual, company, or service that provides this operator
  links:
  - name: Title of the link (ex: Blog, Source Code etc.)
    url: url/link
  keywords:
  - 'A list of words that relate to your operator'
  - 'These are used when searching for operators in the UI'
```

### Logo requirements

The logo for your Operator is inlined into the CSV as a base64-encoded string. The height:width ratio should be 1:2. The maximum dimensions are 80px for width and 40px in height.

### Categories

For the best user experience, choose from the following categories:

| Category  |
|-----------|
| AI/Machine Learning |
| Application Runtime |
| Big Data |
| Cloud Provider |
| Database |
| Developer Tools |
| Integration & Delivery |
| Logging & Tracing |
| Monitoring |
| Networking |
| OpenShift Optional |
| Security |
| Storage |
| Streaming & Messaging |

If none of these categories fit your operator, please open a PR against this repo to edit this doc and we will work with you to propagate this change to [operator-courier](https://github.com/operator-framework/operator-courier) so that your operator can get through CI tests.
{'fraction_non_alphanumeric': 0.06439290586630286, 'fraction_numerical': 0.004092769440654843, 'mean_word_length': 4.073356401384083, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1271279', 'n_tokens_mistral': 1929, 'n_tokens_neox': 1798, 'n_words': 977}