kubevela.github.io/docs/end-user/labels.md

2.0 KiB

title
Labels and Annotations

We will introduce how to add labels and annotations to your Application.

List Traits

$ kubectl get trait -n vela-system
NAME          APPLIES-TO                DESCRIPTION
annotations   ["webservice","worker"]   Add annotations for your Workload.
cpuscaler     ["webservice","worker"]   configure k8s HPA with CPU metrics for Deployment
ingress       ["webservice","worker"]   Configures K8s ingress and service to enable web traffic for your service. Please use route trait in cap center for advanced usage.
labels        ["webservice","worker"]   Add labels for your Workload.
scaler        ["webservice","worker"]   Configures replicas for your service by patch replicas field.
sidecar       ["webservice","worker"]   inject a sidecar container into your app

You can use label and annotations traits to add labels and annotations for your workload.

Apply Application

Let's use label and annotations traits in your Application.

# myapp.yaml
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
  name: myapp
spec:
  components:
    - name: express-server
      type: webservice
      properties:
        image: crccheck/hello-world
        port: 8000
      traits:
        - type: labels
          properties:
            "release": "stable"
        - type: annotations
          properties:
            "description": "web application"

Apply this Application.

kubectl apply -f myapp.yaml

Check the workload has been created successfully.

$ kubectl get deployments
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
express-server   1/1     1            1           15s

Check the labels trait.

$ kubectl get deployments express-server -o jsonpath='{.spec.template.metadata.labels}'
{"app.oam.dev/component":"express-server","release": "stable"}

Check the annotations trait.

$ kubectl get deployments express-server -o jsonpath='{.spec.template.metadata.annotations}'
{"description":"web application"}