ContainerApp API reference

Following ContainerApp resource fields are likely to be configured as part of the app configuration process:

apiVersion: apps.tanzu.vmware.com/v1
kind: ContainerApp
metadata:
  name: my-app
spec:
  # Short description for the application
  description: "WFD Java Microservice"

  # Contact information about the application owners
  contact:
    email: [email protected]
    slack: relevant-channel
    pagerduty: https://url...

  # Specifies build instructions for this app
  build:
    path: ..            # relative to the location of ContainerApp definition
    buildpacks: {}
    nonSecretEnv:       # non-secret vars for build time
    - name: BP_JAVA_VERSION
      value: "17"

  # List of named service bindings the app accepts
  acceptedServiceBindings:
  - name: db
    types:
    - mysql
    - postgresql

  # Environment-independent env variables
  nonSecretEnv:
  - name: spring_profiles_active
    value: mysql

  # Default number of replicas
  replicas: 1

  # Default resources for each replica
  resources:
    cpu: 300m
    memory: 1Gi

  # The named network ports of the App
  ports:
  - name: main
    port: 8080

  # Used to determine the health of the replicas
  probes:
    liveness:
      httpGet:
        path: /livez
        port: 8080
        scheme: HTTP
    readiness:
      httpGet:
        path: /readyz
        port: 8080
        scheme: HTTP
    startup:
      failureThreshold: 120
      httpGet:
        path: /readyz
        port: 8080
        scheme: HTTP
      initialDelaySeconds: 1
      periodSeconds: 1

Following ContainerApp resource fields are likely to be augmented by a build process:

apiVersion: apps.tanzu.vmware.com/v1
kind: ContainerApp
metadata:
  name: my-app
  annotations:
    containerapp.apps.tanzu.vmware.com/class: kubernetes
spec:
  # Contains details about the app contents: source repository, revision, build dates, etc.
  content:
    buildTimestamp: "2024-05-08T18:16:01Z"
    gitCommit: d05e219000b79a30a96dfbcded4807a4729cd429
    gitURL: github.com/vmware-tanzu/application-accelerator-samples.git
    packageRefName: my-app.apps.local
    summary: "git:d05e219 @ 2024-05-08T18:16:01Z"
    version: 20240508.1816.1580

  # The image of the app
  image: ttl.sh/my-app:20240508.1816.1580@sha256:8cb600e62d84fb9169d313bb0ca9b342e7fb6cd4ae9acca4305f3a9fbb606504

  # References to associated resources so that modifications
  # to spec.replicas, spec.resources and spec.secretEnv
  # can be transferred appropriately to related live resources
  relatedRefs:
  - for: kubernetes.list-replicas
    kind: Pod
    labelSelector: containerapp.apps.tanzu.vmware.com/app-name=my-app
  - apiGroup: apps
    for: kubernetes.service-binding-target
    kind: Deployment
    name: my-app
  # ...

Following ContainerApp resource fields are likely to changed at runtime:

apiVersion: apps.tanzu.vmware.com/v1
kind: ContainerApp
metadata:
  name: my-app
spec:
  # Environment-dependent env variables (mutable)
  secretEnv:
  - name: TWILIO_SECRET
    secretKeyRef:
      # name of Secret resource deployed in the app's space
      name: my-secret
      # valid key within the Secret resource's data, holding the environment variable value
      key: TWILIO_SECRET

  # Wanted number of replicas
  replicas: 10

  # Wanted resources for each replica
  resources:
    cpu: 300m
    memory: 1Gi

status:
  # Represent the latest available observations of a ContainerApp's current state
  conditions:
  - type: DeploySucceeded
    status: "True"

  # List of live replicas
  replicas:
  - name: my-app-75675f5897-7ci7o
    # Represents the server time when this replica was created. It is in RFC3339 form and is in UTC
    creationTimestamp: "2020-12-31T00:00:00+08:00"
    contentSummary: "git:d05e219 @ 2024-05-08T18:16:01Z"
    availabilityTarget: dev-clusters-eu-east
    conditions:
    - type: Running
      status: "True"
check-circle-line exclamation-circle-line close-line
Scroll to top icon