Reference

API reference

Packages:

sme.sap.com/v1alpha1

Resource Types:

CAPApplication

CAPApplication is the schema for capapplications API

FieldDescription
apiVersion
string
sme.sap.com/v1alpha1
kind
string
CAPApplication
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CAPApplicationSpec

CAPApplication spec



domains
ApplicationDomains

Domains used by the application

globalAccountId
string

SAP BTP Global Account Identifier where services are entitles for the current application

btpAppName
string

Short name for the application (similar to BTP XSAPPNAME)

provider
BTPTenantIdentification

Provider subaccount where application services are created

btp
BTP

SAP BTP Services consumed by the application

status
CAPApplicationStatus

CAPApplication status

CAPApplicationVersion

CAPApplicationVersion defines the schema for capapplicationversions API

FieldDescription
apiVersion
string
sme.sap.com/v1alpha1
kind
string
CAPApplicationVersion
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CAPApplicationVersionSpec

CAPApplicationVersion spec



capApplicationInstance
string

Denotes to which CAPApplication the current version belongs

version
string

Semantic version

registrySecrets
[]string

Registry secrets used to pull images of the application components

workloads
[]WorkloadDetails

Information about the Workloads

tenantOperations
TenantOperations

Tenant Operations may be used to specify how jobs are sequenced for the different tenant operations

contentJobs
[]string

Content Jobs may be used to specify the sequence of content jobs when several jobs exist

status
CAPApplicationVersionStatus

CAPApplicationVersion status

CAPTenant

CAPTenant defines the schema for captenants API

FieldDescription
apiVersion
string
sme.sap.com/v1alpha1
kind
string
CAPTenant
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CAPTenantSpec

CAPTenant spec



capApplicationInstance
string

Denotes to which CAPApplication the current tenant belongs

BTPTenantIdentification
BTPTenantIdentification

(Members of BTPTenantIdentification are embedded into this type.)

Details of consumer sub-account subscribing to the application

version
string

Semver that is used to determine the relevant CAPApplicationVersion that a CAPTenant can be upgraded to (i.e. if it is not already on that version)

versionUpgradeStrategy
VersionUpgradeStrategyType

Denotes whether a CAPTenant can be upgraded. One of (‘always’, ‘never’)

status
CAPTenantStatus

CAPTenant status

CAPTenantOperation

CAPTenantOperation defines the schema for captenantoperations API

FieldDescription
apiVersion
string
sme.sap.com/v1alpha1
kind
string
CAPTenantOperation
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CAPTenantOperationSpec

CAPTenantOperation spec



operation
CAPTenantOperationType

Scope of the tenant lifecycle operation. One of ‘provisioning’, ‘deprovisioning’ or ‘upgrade’

BTPTenantIdentification
BTPTenantIdentification

(Members of BTPTenantIdentification are embedded into this type.)

BTP sub-account (tenant) for which request is created

capApplicationVersionInstance
string

Reference to CAPApplicationVersion for executing the operation

steps
[]CAPTenantOperationStep

Steps (jobs) to be executed for the operation to complete

status
CAPTenantOperationStatus

CAPTenantOperation status

CAPTenantOutput

CAPTenantOutput is the schema for captenantoutputs API

FieldDescription
apiVersion
string
sme.sap.com/v1alpha1
kind
string
CAPTenantOutput
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CAPTenantOutputSpec

CAPTenantOutputData spec



subscriptionCallbackData
string

ApplicationDomains

(Appears on: CAPApplicationSpec)

Application domains

FieldDescription
primary
string

Primary application domain will be used to generate a wildcard TLS certificate. In project “Gardener” managed clusters this is (usually) a subdomain of the cluster domain

secondary
[]string

Customer specific domains to serve application endpoints (optional)

dnsTarget
string

Public ingress URL for the cluster Load Balancer

istioIngressGatewayLabels
[]NameValue

Labels used to identify the istio ingress-gateway component and its corresponding namespace. Usually {“app”:“istio-ingressgateway”,“istio”:“ingressgateway”}

BTP

(Appears on: CAPApplicationSpec)

FieldDescription
services
[]ServiceInfo

Details of BTP Services

BTPTenantIdentification

(Appears on: CAPApplicationSpec, CAPTenantOperationSpec, CAPTenantSpec)

Identifies an SAP BTP subaccount (tenant)

FieldDescription
subDomain
string

BTP subaccount subdomain

tenantId
string

BTP subaccount Tenant ID

CAPApplicationSpec

(Appears on: CAPApplication)

CAPApplicationSpec defines the desired state of CAPApplication

FieldDescription
domains
ApplicationDomains

Domains used by the application

globalAccountId
string

SAP BTP Global Account Identifier where services are entitles for the current application

btpAppName
string

Short name for the application (similar to BTP XSAPPNAME)

provider
BTPTenantIdentification

Provider subaccount where application services are created

btp
BTP

SAP BTP Services consumed by the application

CAPApplicationState (string alias)

(Appears on: CAPApplicationStatus)

ValueDescription

"Consistent"

CAPApplication has been reconciled and is now consistent

"Deleting"

Deletion has been triggered

"Error"

An error occurred during reconciliation

"Processing"

CAPApplication is being reconciled

CAPApplicationStatus

(Appears on: CAPApplication)

FieldDescription
GenericStatus
GenericStatus

(Members of GenericStatus are embedded into this type.)

state
CAPApplicationState

State of CAPApplication

domainSpecHash
string

Hash representing last known application domains

lastFullReconciliationTime
Kubernetes meta/v1.Time

The last time a full reconciliation was completed

CAPApplicationStatusConditionType (string alias)

ValueDescription

"AllTenantsReady"

"LatestVersionReady"

CAPApplicationVersionSpec

(Appears on: CAPApplicationVersion)

CAPApplicationVersionSpec specifies the desired state of CAPApplicationVersion

FieldDescription
capApplicationInstance
string

Denotes to which CAPApplication the current version belongs

version
string

Semantic version

registrySecrets
[]string

Registry secrets used to pull images of the application components

workloads
[]WorkloadDetails

Information about the Workloads

tenantOperations
TenantOperations

Tenant Operations may be used to specify how jobs are sequenced for the different tenant operations

contentJobs
[]string

Content Jobs may be used to specify the sequence of content jobs when several jobs exist

CAPApplicationVersionState (string alias)

(Appears on: CAPApplicationVersionStatus)

ValueDescription

"Deleting"

Deletion has been triggered

"Error"

An error occurred during reconciliation

"Processing"

CAPApplicationVersion is being processed

"Ready"

CAPApplicationVersion is now ready for use (dependent resources have been created)

CAPApplicationVersionStatus

(Appears on: CAPApplicationVersion)

FieldDescription
GenericStatus
GenericStatus

(Members of GenericStatus are embedded into this type.)

state
CAPApplicationVersionState

State of CAPApplicationVersion

finishedJobs
[]string

List of finished Content Jobs

CAPTenantOperationSpec

(Appears on: CAPTenantOperation)

FieldDescription
operation
CAPTenantOperationType

Scope of the tenant lifecycle operation. One of ‘provisioning’, ‘deprovisioning’ or ‘upgrade’

BTPTenantIdentification
BTPTenantIdentification

(Members of BTPTenantIdentification are embedded into this type.)

BTP sub-account (tenant) for which request is created

capApplicationVersionInstance
string

Reference to CAPApplicationVersion for executing the operation

steps
[]CAPTenantOperationStep

Steps (jobs) to be executed for the operation to complete

CAPTenantOperationState (string alias)

(Appears on: CAPTenantOperationStatus)

ValueDescription

"Completed"

CAPTenantOperation steps completed

"Deleting"

CAPTenantOperation deletion has been triggered

"Failed"

CAPTenantOperation steps have failed

"Processing"

CAPTenantOperation is being processed

CAPTenantOperationStatus

(Appears on: CAPTenantOperation)

FieldDescription
GenericStatus
GenericStatus

(Members of GenericStatus are embedded into this type.)

state
CAPTenantOperationState

State of CAPTenantOperation

currentStep
uint32

Current step being processed from the sequence of specified steps

activeJob
string

Name of the job being executed for the current step

CAPTenantOperationStep

(Appears on: CAPTenantOperationSpec)

FieldDescription
name
string

Name of the workload from the referenced CAPApplicationVersion

type
JobType

Type of job. One of ‘TenantOperation’ or ‘CustomTenantOperation’

continueOnFailure
bool

Indicates whether the operation can continue in case of step failure. Relevant only for type ‘CustomTenantOperation’

CAPTenantOperationType (string alias)

(Appears on: CAPTenantOperationSpec)

ValueDescription

"deprovisioning"

Deprovision tenant

"provisioning"

Provision tenant

"upgrade"

Upgrade tenant

CAPTenantOutputSpec

(Appears on: CAPTenantOutput)

FieldDescription
subscriptionCallbackData
string

CAPTenantSpec

(Appears on: CAPTenant)

CAPTenantSpec defines the desired state of the CAPTenant

FieldDescription
capApplicationInstance
string

Denotes to which CAPApplication the current tenant belongs

BTPTenantIdentification
BTPTenantIdentification

(Members of BTPTenantIdentification are embedded into this type.)

Details of consumer sub-account subscribing to the application

version
string

Semver that is used to determine the relevant CAPApplicationVersion that a CAPTenant can be upgraded to (i.e. if it is not already on that version)

versionUpgradeStrategy
VersionUpgradeStrategyType

Denotes whether a CAPTenant can be upgraded. One of (‘always’, ‘never’)

CAPTenantState (string alias)

(Appears on: CAPTenantStatus)

ValueDescription

"Deleting"

Deletion has been triggered

"Provisioning"

Tenant is being provisioned

"ProvisioningError"

Tenant provisioning ended in error

"Ready"

Tenant has been provisioned/upgraded and is now ready for use

"UpgradeError"

Tenant upgrade failed

"Upgrading"

Tenant is being upgraded

CAPTenantStatus

(Appears on: CAPTenant)

FieldDescription
GenericStatus
GenericStatus

(Members of GenericStatus are embedded into this type.)

state
CAPTenantState

State of CAPTenant

currentCAPApplicationVersionInstance
string

Specifies the current version of the tenant after provisioning or upgrade

previousCAPApplicationVersions
[]string

Previous versions of the tenant (first to last)

lastFullReconciliationTime
Kubernetes meta/v1.Time

The last time a full reconciliation was completed

CommonDetails

(Appears on: DeploymentDetails, JobDetails)

CommonDetails specifies the common details of the Container/Pod that may be relevant for both Deployments and Jobs

FieldDescription
image
string

Image info for the container

imagePullPolicy
Kubernetes core/v1.PullPolicy

Pull policy for the container image

command
[]string

Entrypoint array for the container

args
[]string

Arguments to the entrypoint

env
[]Kubernetes core/v1.EnvVar

Environment Config for the Container

volumes
[]Kubernetes core/v1.Volume

Volume Configuration for the Pod

volumeMounts
[]Kubernetes core/v1.VolumeMount

Volume Mount Configuration for the Container

serviceAccountName
string

Name of the ServiceAccount to use to run the Pod

resources
Kubernetes core/v1.ResourceRequirements

Resources

securityContext
Kubernetes core/v1.SecurityContext

SecurityContext for the Container

podSecurityContext
Kubernetes core/v1.PodSecurityContext

SecurityContext for the Pod

nodeName
string

The name of the node to which the Pod should be assigned to. See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename

nodeSelector
map[string]string

The label selectors using which node for the Pod would be determined. See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector

priorityClassName
string

Priority class name mapping used to prioritize and schedule the Pod. See: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass

affinity
Kubernetes core/v1.Affinity

Affinity/anti-affinity used to provide more constraints for node selection. See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity

tolerations
[]Kubernetes core/v1.Toleration

Tolerations used to schedule the Pod. See: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

topologySpreadConstraints
[]Kubernetes core/v1.TopologySpreadConstraint

The Topology spread constraints used to control how Pods are spread across regions, zones, nodes etc. See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#pod-topology-spread-constraints

initContainers
[]Kubernetes core/v1.Container

List of containers executed before the main container is started

restartPolicy
Kubernetes core/v1.RestartPolicy

Restart policy for the Pod. See: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

DeletionRules

(Appears on: WorkloadMonitoring)

FieldDescription
metrics
[]MetricRule
expression
string

A promQL expression that evaluates to a scalar boolean (1 or 0). Example: scalar(sum(avg_over_time(demo_metric{job=“cav-demo-app-4-srv-svc”,namespace=“demo”}[2m]))) <= bool 0.1

DeploymentDetails

(Appears on: WorkloadDetails)

DeploymentDetails specifies the details of the Deployment

FieldDescription
CommonDetails
CommonDetails

(Members of CommonDetails are embedded into this type.)

type
DeploymentType

Type of the Deployment

replicas
int32

Number of replicas

ports
[]Ports

Port configuration

livenessProbe
Kubernetes core/v1.Probe

Liveness probe

readinessProbe
Kubernetes core/v1.Probe

Readiness probe

monitoring
WorkloadMonitoring

Workload monitoring specification

DeploymentType (string alias)

(Appears on: DeploymentDetails)

Type of deployment

ValueDescription

"Additional"

Additional deployment type

"CAP"

CAP backend server deployment type

"Router"

Application router deployment type

Duration (string alias)

(Appears on: MetricRule, MonitoringConfig)

Duration is a valid time duration that can be parsed by Prometheus Supported units: y, w, d, h, m, s, ms Examples: 30s, 1m, 1h20m15s, 15d

GenericStatus

(Appears on: CAPApplicationStatus, CAPApplicationVersionStatus, CAPTenantOperationStatus, CAPTenantStatus)

Custom resource status

FieldDescription
observedGeneration
int64

Observed generation of the resource where this status was identified

conditions
[]Kubernetes meta/v1.Condition

State expressed as conditions

JobDetails

(Appears on: WorkloadDetails)

JobDetails specifies the details of the Job

FieldDescription
CommonDetails
CommonDetails

(Members of CommonDetails are embedded into this type.)

type
JobType

Type of Job

backoffLimit
int32

Specifies the number of retries before marking this job failed.

ttlSecondsAfterFinished
int32

Specifies the time after which the job may be cleaned up.

JobType (string alias)

(Appears on: CAPTenantOperationStep, JobDetails)

Type of Job

ValueDescription

"Content"

job for deploying content or configuration to (BTP) services

"CustomTenantOperation"

job for custom tenant operation e.g. pre/post hooks for a tenant operation

"TenantOperation"

job for tenant operation e.g. deploying relevant data to a tenant

MetricRule

(Appears on: DeletionRules)

MetricRule specifies a Prometheus metric and rule which represents a cleanup condition. Metrics of type Gauge and Counter are supported.

Rule evaluation for Gauge type metric: The time series data of the metric (restricted to the current workload by setting job label as workload service name) is calculated as an average over the specified period. A sum of the calculated average from different time series is then compared to the provided threshold value to determine whether the rule has been satisfied. Evaluation: sum(avg_over_time(<gauge-metric>{job=<workload-service-name>}[<lookback-duration>])) <= <lower0threshold-value>

Rule evaluation for Counter type metric: The time series data of the metric (restricted to the current workload by setting job label as workload service name) is calculated as rate of increase over the specified period. The sum of the calculated rates from different time series is then compared to the provided threshold value to determine whether the rule has been satisfied. Evaluation: sum(rate(<counter-metric>{job=<workload-service-name>}[<lookback-duration>])) <= <lower0threshold-value>

FieldDescription
name
string

Prometheus metric. For example http_request_count

type
MetricType

Type of Prometheus metric which can be either Gauge or Counter

calculationPeriod
Duration

Duration of time series data used for the rule evaluation

thresholdValue
string

The threshold value which is compared against the calculated value. If calculated value is less than or equal to the threshold the rule condition is fulfilled.

MetricType (string alias)

(Appears on: MetricRule)

Type of Prometheus metric

ValueDescription

"Counter"

Prometheus Metric type Counter

"Gauge"

Prometheus Metric type Gauge

MonitoringConfig

(Appears on: WorkloadMonitoring)

FieldDescription
interval
Duration

Interval at which Prometheus scrapes the metrics from the target.

port
string

Name of the port (specified on the workload) which will be used by Prometheus server to scrape metrics

path
string

HTTP path from which to scrape for metrics.

scrapeTimeout
Duration

Timeout after which Prometheus considers the scrape to be failed.

NameValue

(Appears on: ApplicationDomains)

Generic Name/Value configuration

FieldDescription
name
string
value
string

PortNetworkPolicyType (string alias)

(Appears on: Ports)

Type of NetworkPolicy for the port

ValueDescription

"Application"

Expose the port for the current application versions pod(s) scope

"Cluster"

Expose the port for any pod(s) in the overall cluster scope

Ports

(Appears on: DeploymentDetails)

Configuration of Service Ports for the deployment

FieldDescription
appProtocol
string

App protocol used by the service port

name
string

Name of the service port

networkPolicy
PortNetworkPolicyType

Network Policy of the service port

port
int32

The port number used for container and the corresponding service (if any)

routerDestinationName
string

Destination name which may be used by the Router deployment to reach this backend service

ServiceInfo

(Appears on: BTP)

Service information

FieldDescription
name
string

A unique name of service based on usage in the app (this may be the name of the instance or binding)

secret
string

Secret containing service access credentials

class
string

Type of service

StatusConditionType (string alias)

ValueDescription

"Ready"

TenantOperationWorkloadReference

(Appears on: TenantOperations)

FieldDescription
workloadName
string

Reference to a specified workload of type ‘TenantOperation’ or ‘CustomTenantOperation’

continueOnFailure
bool

Indicates whether to proceed with remaining operation steps in case of failure. Relevant only for ‘CustomTenantOperation’

TenantOperations

(Appears on: CAPApplicationVersionSpec)

Configuration used to sequence tenant related jobs for a given tenant operation

FieldDescription
provisioning
[]TenantOperationWorkloadReference

Tenant provisioning steps

upgrade
[]TenantOperationWorkloadReference

Tenant upgrade steps

deprovisioning
[]TenantOperationWorkloadReference

Tenant deprovisioning steps

VersionUpgradeStrategyType (string alias)

(Appears on: CAPTenantSpec)

ValueDescription

"always"

Always (default)

"never"

Never

WorkloadDetails

(Appears on: CAPApplicationVersionSpec)

WorkloadDetails specifies the details of the Workload

FieldDescription
name
string

Name of the workload

consumedBTPServices
[]string

List of BTP services consumed by the current application component workload. These services must be defined in the corresponding CAPApplication.

labels
map[string]string

Custom labels for the current workload

annotations
map[string]string

Annotations for the current workload, in case of Deployments this also get copied over to any Service that may be created

deploymentDefinition
DeploymentDetails

Definition of a deployment

jobDefinition
JobDetails

Definition of a job

WorkloadMonitoring

(Appears on: DeploymentDetails)

WorkloadMonitoring specifies the metrics related to the workload

FieldDescription
deletionRules
DeletionRules

DeletionRules specify the metrics conditions that need to be satisfied for the version to be deleted automatically. Either a set of metrics based rules can be specified, or a PromQL expression which evaluates to a boolean scalar.

scrapeConfig
MonitoringConfig

Configuration to be used to create ServiceMonitor for the workload service. If not specified, CAP Operator will not attempt to create a ServiceMonitor for the workload


Generated with gen-crd-api-reference-docs on git commit e7e07d8.