Reference
12 minute read
Packages:
sme.sap.com/v1alpha1
Resource Types:CAPApplication
CAPApplication is the schema for capapplications API
Field | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
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
| ||||||||||
status CAPApplicationStatus | CAPApplication status |
CAPApplicationVersion
CAPApplicationVersion defines the schema for capapplicationversions API
Field | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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
| ||||||||||||
status CAPApplicationVersionStatus | CAPApplicationVersion status |
CAPTenant
CAPTenant defines the schema for captenants API
Field | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
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
| ||||||||
status CAPTenantStatus | CAPTenant status |
CAPTenantOperation
CAPTenantOperation defines the schema for captenantoperations API
Field | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
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
| ||||||||
status CAPTenantOperationStatus | CAPTenantOperation status |
CAPTenantOutput
CAPTenantOutput is the schema for captenantoutputs API
Field | Description | ||
---|---|---|---|
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
|
ApplicationDomains
(Appears on: CAPApplicationSpec)
Application domains
Field | Description |
---|---|
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)
Field | Description |
---|---|
services []ServiceInfo | Details of BTP Services |
BTPTenantIdentification
(Appears on: CAPApplicationSpec, CAPTenantOperationSpec, CAPTenantSpec)
Identifies an SAP BTP subaccount (tenant)
Field | Description |
---|---|
subDomain string | BTP subaccount subdomain |
tenantId string | BTP subaccount Tenant ID |
CAPApplicationSpec
(Appears on: CAPApplication)
CAPApplicationSpec defines the desired state of CAPApplication
Field | Description |
---|---|
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)
Value | Description |
---|---|
"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)
Field | Description |
---|---|
GenericStatus GenericStatus | (Members of |
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)
Value | Description |
---|---|
"AllTenantsReady" | |
"LatestVersionReady" |
CAPApplicationVersionSpec
(Appears on: CAPApplicationVersion)
CAPApplicationVersionSpec specifies the desired state of CAPApplicationVersion
Field | Description |
---|---|
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)
Value | Description |
---|---|
"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)
Field | Description |
---|---|
GenericStatus GenericStatus | (Members of |
state CAPApplicationVersionState | State of CAPApplicationVersion |
finishedJobs []string | List of finished Content Jobs |
CAPTenantOperationSpec
(Appears on: CAPTenantOperation)
Field | Description |
---|---|
operation CAPTenantOperationType | Scope of the tenant lifecycle operation. One of ‘provisioning’, ‘deprovisioning’ or ‘upgrade’ |
BTPTenantIdentification BTPTenantIdentification | (Members of 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)
Value | Description |
---|---|
"Completed" | CAPTenantOperation steps completed |
"Deleting" | CAPTenantOperation deletion has been triggered |
"Failed" | CAPTenantOperation steps have failed |
"Processing" | CAPTenantOperation is being processed |
CAPTenantOperationStatus
(Appears on: CAPTenantOperation)
Field | Description |
---|---|
GenericStatus GenericStatus | (Members of |
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)
Field | Description |
---|---|
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)
Value | Description |
---|---|
"deprovisioning" | Deprovision tenant |
"provisioning" | Provision tenant |
"upgrade" | Upgrade tenant |
CAPTenantOutputSpec
(Appears on: CAPTenantOutput)
Field | Description |
---|---|
subscriptionCallbackData string |
CAPTenantSpec
(Appears on: CAPTenant)
CAPTenantSpec defines the desired state of the CAPTenant
Field | Description |
---|---|
capApplicationInstance string | Denotes to which CAPApplication the current tenant belongs |
BTPTenantIdentification BTPTenantIdentification | (Members of 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)
Value | Description |
---|---|
"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)
Field | Description |
---|---|
GenericStatus GenericStatus | (Members of |
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
Field | Description |
---|---|
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)
Field | Description |
---|---|
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
Field | Description |
---|---|
CommonDetails CommonDetails | (Members of |
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
Value | Description |
---|---|
"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
Field | Description |
---|---|
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
Field | Description |
---|---|
CommonDetails CommonDetails | (Members of |
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
Value | Description |
---|---|
"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>
Field | Description |
---|---|
name string | Prometheus metric. For example |
type MetricType | Type of Prometheus metric which can be either |
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
Value | Description |
---|---|
"Counter" | Prometheus Metric type Counter |
"Gauge" | Prometheus Metric type Gauge |
MonitoringConfig
(Appears on: WorkloadMonitoring)
Field | Description |
---|---|
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
Field | Description |
---|---|
name string | |
value string |
PortNetworkPolicyType
(string
alias)
(Appears on: Ports)
Type of NetworkPolicy for the port
Value | Description |
---|---|
"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
Field | Description |
---|---|
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
Field | Description |
---|---|
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)
Value | Description |
---|---|
"Ready" |
TenantOperationWorkloadReference
(Appears on: TenantOperations)
Field | Description |
---|---|
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
Field | Description |
---|---|
provisioning []TenantOperationWorkloadReference | Tenant provisioning steps |
upgrade []TenantOperationWorkloadReference | Tenant upgrade steps |
deprovisioning []TenantOperationWorkloadReference | Tenant deprovisioning steps |
VersionUpgradeStrategyType
(string
alias)
(Appears on: CAPTenantSpec)
Value | Description |
---|---|
"always" | Always (default) |
"never" | Never |
WorkloadDetails
(Appears on: CAPApplicationVersionSpec)
WorkloadDetails specifies the details of the Workload
Field | Description |
---|---|
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 |
deploymentDefinition DeploymentDetails | Definition of a deployment |
jobDefinition JobDetails | Definition of a job |
WorkloadMonitoring
(Appears on: DeploymentDetails)
WorkloadMonitoring specifies the metrics related to the workload
Field | Description |
---|---|
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
.