Skip to content

Project

Prerequisites

  • A Kubernetes cluster with the operator installed using helm, kubectl or kind (for local development).
  • A Kubernetes Secret with an Aiven authentication token.

Required permissions

To create and manage this resource, you must have the appropriate roles or permissions. See the Aiven documentation for details on managing permissions. For more precise access control, use permissions instead of roles.

Permissions

All of these permissions are required to create and manage this resource.

  • organization:projects:write
  • project:services:read

Usage example

apiVersion: aiven.io/v1alpha1
kind: Project
metadata:
  name: my-project
spec:
  authSecretRef:
    name: aiven-token
    key: token

  tags:
    env: prod

  accountId: my-account-id
  billingAddress: NYC
  cloud: aws-eu-west-1

Apply the resource with:

kubectl apply -f example.yaml

Verify the newly created Project:

kubectl get projects my-project

The output is similar to the following:

Name          
my-project    


Project

Project is the Schema for the projects API.

Exposes secret keys

PROJECT_CA_CERT.

Required

  • apiVersion (string). Value aiven.io/v1alpha1.
  • kind (string). Value Project.
  • metadata (object). Data that identifies the object, including a name string and optional namespace.
  • spec (object). ProjectSpec defines the desired state of Project. See below for nested schema.

spec

Appears on Project.

ProjectSpec defines the desired state of Project.

Optional

  • accountId (string, MaxLength: 32). Account ID.
  • authSecretRef (object). Authentication reference to Aiven token in a secret. See below for nested schema.
  • billingAddress (string, MaxLength: 1000). Billing name and address of the project.
  • billingCurrency (string, Enum: AUD, CAD, CHF, DKK, EUR, GBP, NOK, SEK, USD). Billing currency.
  • billingEmails (array of strings, MaxItems: 10). Billing contact emails of the project.
  • billingExtraText (string, MaxLength: 1000). Extra text to be included in all project invoices, e.g. purchase order or cost center number.
  • billingGroupId (string, Immutable, MinLength: 36, MaxLength: 36). BillingGroup ID.
  • cardId (string, MaxLength: 64). Credit card ID; The ID may be either last 4 digits of the card or the actual ID.
  • cloud (string, MaxLength: 256). Target cloud, example: aws-eu-central-1.
  • connInfoSecretTarget (object). Secret configuration. See below for nested schema.
  • connInfoSecretTargetDisabled (boolean, Immutable). When true, the secret containing connection information will not be created, defaults to false. This field cannot be changed after resource creation.
  • copyFromProject (string, Immutable, MaxLength: 63). Project name from which to copy settings to the new project.
  • countryCode (string, MinLength: 2, MaxLength: 2). Billing country code of the project.
  • tags (object, AdditionalProperties: string). Tags are key-value pairs that allow you to categorize projects.
  • technicalEmails (array of strings, MaxItems: 10). Technical contact emails of the project.

authSecretRef

Appears on spec.

Authentication reference to Aiven token in a secret.

Required

  • key (string, MinLength: 1).
  • name (string, MinLength: 1).

connInfoSecretTarget

Appears on spec.

Secret configuration.

Required

  • name (string, Immutable). Name of the secret resource to be created. By default, it is equal to the resource name.

Optional

  • annotations (object, AdditionalProperties: string). Annotations added to the secret.
  • labels (object, AdditionalProperties: string). Labels added to the secret.
  • prefix (string). Prefix for the secret's keys. Added "as is" without any transformations. By default, is equal to the kind name in uppercase + underscore, e.g. KAFKA_, REDIS_, etc.