Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Arjav Desai
    @arjav-desai

    I want to deploy a configmap component and parameterize its value e.g.
    -
    apiVersion: core.oam.dev/v1alpha2
    kind: Component
    metadata:
    name: test-configmap
    namespace: test-config
    spec:
    workload:
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: test-cm
    namespace: test-config
    data:
    config-properties.yaml: |
    greeting: Hello
    parameters:

    - name: config-data
      required: false
      fieldPaths:
        - data

    -
    and
    -
    apiVersion: core.oam.dev/v1alpha2
    kind: ApplicationConfiguration
    metadata:
    name: test-appconf
    namespace: test-config
    annotations:
    version: v1.0.0
    description: "Test Config application"
    spec:
    components:

    - componentName: test-configmap
      parameterValues:
        - name: config-data
          value:
            config-properties.yaml: |
              greeting: Howdy

    -

    But this fails to deploy with

    The ApplicationConfiguration "test-appconf" is invalid:

    • spec.components.parameterValues.value: Invalid value: "object": spec.components.parameterValues.value in body must be of type integer,string: "object"
    • : Invalid value: "": "spec.components.parameterValues.value" must validate at least one schema (anyOf)
    • spec.components.parameterValues.value: Invalid value: "object": spec.components.parameterValues.value in body must be of type integer: "object"
      -
    Yue Wang
    @captainroy-hy
    @arjav-desai according to the schema, only integer and string is acceptable by paramerterValues.value
    Arjav Desai
    @arjav-desai
    Thanks @captainroy-hy, appreciate the quick response! How do you recommend we model the configmap resources as OAM component in this case?
    Lei Zhang (Harry)
    @resouer
    @arjav-desai We in general do not recommend to model ConfigMap/Secret as part of app because they in most cases have independent lifecycles from the app. Though if you insist, I think you just need to declare data value as a string, i.e. "config-properties.yaml: | ....".
    btw, if you are using KubeVela, you could declare ConfigMap/Secret as part of the component via CUE or Helm templates.
    Arjav Desai
    @arjav-desai
    Thanks @resouer , I will try out the string (seems like just " needed). Still using oam-k8s-runtime as library and kubevela.
    Lei Zhang (Harry)
    @resouer
    @arjav-desai Not just ", the value should be decoded. Also, you need to:
    1. parameterize every data item by its key
    - name: config-data
      required: false
      fieldPaths:
        - data.config-properties # do not use config.properties
    1. set its value by string like this:
    - name: config-data
      value: "enemies=aliens\nsecret.code.lives=30 \n"
    Though we never try this before (not aligned with the goal of OAM), so if it dosen't work, let's move to an issue since gitter is hard to discuss examples.
    Arjav Desai
    @arjav-desai
    Thanks @resouer , is this https://github.com/crossplane/oam-kubernetes-runtime/issues right place to file issue, if it comes to that?
    1 reply
    Lei Zhang (Harry)
    @resouer
    Hey @/all OAM community call starts at 10:30 PST. We will finalize reviewing OAM spec v0.3.0 PR in today's meeting.
    Luis Ribeiro
    @lribeiro81
    Hi everyone, I'm having some trouble with some concepts, such as the difference between WorkloadDefinition and ComponentDefinition; could someone clarify?
    Lei Zhang (Harry)
    @resouer
    @lribeiro81 Please check this diagram which explains the OAM resource model: https://kubevela.io/docs/next/concepts#summary
    Lei Zhang (Harry)
    @resouer
    ComponentDef is designed as an abstraction and encapsulation atop of WorkloadDef. So your platform normally have limited number of workload definitions (e.g. stateless, stateful, job), but countless component definitions declared by users (e.g. web-service, tf-training, my-awesome-blog etc).
    11 replies
    Lei Zhang (Harry)
    @resouer
    Hence, the ComponentDef intends to support various ways (raw template, Helm, and CUE) to encapsulate the workload definition.
    Lei Zhang (Harry)
    @resouer
    Hey @/all OAM community call starts at 10:30 PST. We are very close to release OAM spec v0.3.0 in today's meeting.
    Lei Zhang (Harry)
    @resouer
    Hey @/all, OAM community call is in 30mins! We will update the status on spec v0.3.0 releasing and KubeVela (particularly, the revisions of XxxDefinition are now implemented).
    Hongchao Deng
    @hongchaodeng
    Hi @/all . Today's community call is cancelled. Harry has a meeting conflict. I have a sore throat today which came up this morning. No one can host the meeting atm. Thanks all for your interests and attention. Look forward to seeing you next time.
    Kevin Minder
    @kminder

    Was working through the KubeVela 1.0 install and quick start docs. Tried both KinD and minikube versions. The health check is reporting an error.

    $ kubectl get application first-vela-app -o yaml
    ...
      - lastTransitionTime: "2021-05-25T22:14:40Z"
        message: 'app=first-vela-app, comp=express-server, trait=ingress, check health
          error: get template context: failed to get obj express-server with gvk networking.k8s.io/v1beta1,
          Kind=Ingress : ingresses.networking.k8s.io "express-server" not found'
        reason: ReconcileError
        status: "False"
        type: HealthCheck

    The ingress appears to be present.

    $ kubectl get ingresses -n vela-system express-server
    NAME             CLASS    HOSTS                 ADDRESS        PORTS   AGE
    express-server   <none>   testsvc.example.com   192.168.49.2   80      34m

    The app is working.

    $ curl -H "Host:testsvc.example.com" http://192.168.49.2
    <xmp>
    Hello World
    [removed whale ASCII art]
    </xmp>

    Looks like a version mismatch (i.e. v1 vs v1beta1)? Does the ingress trait definition need to be updated or a different ingress-nginx version installed?

    $ kubectl get ingresses -n vela-system express-server -o yaml | more
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    ...
    Lei Zhang (Harry)
    @resouer
    @kminder yes it seems the trait definition needs upgrade, mind to fire an issue on this? it should be a quick fix.
    Kevin Minder
    @kminder
    Created oam-dev/kubevela#1726 Ingress trait definition uses old Ingress CRD
    Kevin Minder
    @kminder

    @resouer Will the issue above prevent rollout from working? I may be misunderstanding how this is supossed to work but I can't make this app roll the pods from image stefanprodan/podinfo:5.2.0 to stefanprodan/podinfo:5.2.1 with these two versions of the application YAML.
    First version

    apiVersion: core.oam.dev/v1beta1
    kind: Application
    metadata:
      name: rollout-app
    spec:
      components:
        - name: rollout-comp
          type: webservice
          properties:
            image: stefanprodan/podinfo:5.2.0
            port: 9898
          traits:
            - type: ingress
              properties:
                domain: rollout.example.com
                http:
                  "/": 9898
      rolloutPlan:
        rolloutStrategy: "IncreaseFirst"
        rolloutBatches:
          - replicas: 50%
          - replicas: 50%
        targetSize: 3

    Second version

    apiVersion: core.oam.dev/v1beta1
    kind: Application
    metadata:
      name: rollout-app
    spec:
      components:
        - name: rollout-comp
          type: webservice
          properties:
            image: stefanprodan/podinfo:5.2.1
            port: 9898
          traits:
            - type: ingress
              properties:
                domain: rollout.example.com
                http:
                  "/": 9898
      rolloutPlan:
        rolloutStrategy: "IncreaseFirst"
        rolloutBatches:
          - replicas: 50%
          - replicas: 50%
        targetSize: 3
    4 replies
    Lei Zhang (Harry)
    @resouer
    @/all In tomorrow's OAM Community Call (10:30 am PST), we will introduce a draft design of "app level operational capabilities", please feel free to add yourself in the agenda doc: https://docs.google.com/document/d/1nqdFEyULekyksFHtFvgvFAYE-0AMHKoS3RMnaKsarjs/edit#heading=h.fxheg997ppgf
    Kevin Minder
    @kminder
    Getting certificate validation errors today on https://kubevela.io/
    Anyone else?
    1 reply
    Edgar Contreras
    @mredvard
    hi, I hope this is the right channel, I'm having issues installing kubevela in my cluster

    ~ >>> helm install --create-namespace -n vela-system kubevela kubevela/vela-core

    Error: unable to build kubernetes objects from release manifest: [unable to recognize "": no matches for kind "ScopeDefinition" in version "core.oam.dev/v1beta1", unable to recognize "": no matches for kind "TraitDefinition" in version "core.oam.dev/v1beta1", unable to recognize "": no matches for kind "WorkloadDefinition" in version "core.oam.dev/v1beta1"]

    3 replies
    Edgar Contreras
    @mredvard
    Solved, I got oam crds definitions from another project
    1 reply
    Lei Zhang (Harry)
    @resouer
    @/all Since tomorrow, OAM Community Call will be moved to 8:00 am PST, and we will continue discussion around policy and workflow design, please feel free to add yourself in the agenda doc: https://docs.google.com/document/d/1nqdFEyULekyksFHtFvgvFAYE-0AMHKoS3RMnaKsarjs/edit#heading=h.fxheg997ppgf
    Lei Zhang (Harry)
    @resouer
    Hey @/all Today, CNCF TOC has accepted KubeVela + OAM spec as a new CNCF Sandbox project, for its onboarding process please track: cncf/toc#677. All artifacts including domains, IPs etc holding by any entity behind OAM will be transferred to CNCF and CNCF will be the new home for the whole OAM project (including spec and KubeVela).
    Lee Calcote
    @leecalcote
    Super exciting. :)
    Lei, will you characterize the intentions for OAM as a spec going forward? It sounded like the spec is positioned as a sub-project of KubeVela and will be diminished in focus. Is that an accurate depiction?
    13 replies
    Hongchao Deng
    @hongchaodeng
    Hi guys. I have a sore throat and cannot host the meeting today. AFAIK no one else is gonna host it so let's cancel this one.
    Bryan Tidd
    @bryantidd
    How does one get added to the ecosystem listings?
    1 reply
    abhishekamte-mx
    @abhishekamte-mx

    hello all, i just started exploring kubevela. Had a noob question. How does one add app configuration declaratively in an app yaml file, I understand that one can use the vela cli. But I am wondering if its possible to app yaml. for example if I have a worker component

      apiVersion: core.oam.dev/v1beta1
      kind: Application
      metadata:
        name: app-worker
      spec:
        components:
          - name: myworker
            type: worker
            properties:
              image: "busybox"
              cmd:
                - sleep
                - "1000"

    how does one add app configuration to this yaml and also how about opaque secrets like passwords like db password?

    3 replies
    Bryan Tidd
    @bryantidd
    What is the OAM way to include configmaps and secrets in applications? Is it via a component, or are there other means.
    5 replies
    Hongchao Deng
    @hongchaodeng
    Hi all. I have to cancel this week's meeting because I am not feeling well.
    We are focused on releasing KubeVela v1.1 features. Will share more in next meeting.
    Brian Bialecki - ACR
    @BBialeckiACR
    On behalf of DICOM Working Group 23, we request review of DICOM Supplement 224, edits, feedback and support from OAM community. I will join todays meeting and have added this to the agenda. Here is the link to the supplement that we are working on to update the DICOM standard to include OAM implementation. https://docs.google.com/document/d/13L7M2AQf0VGBg54J_goMnUd_ZW4v505TDQMC-YNS0xI/edit?usp=sharing
    Chillaso
    @Chillaso
    Hello, I'm trying to deploy kubevela in a raspberry pi's 4 cluster. I'm getting some errors that I guess it's related with the architecture arm64. Do you know if is possible to install there, or any workaround to use?
    1 reply
    Yongguang Zhu
    @heavenwing

    Hi, I tried KubeVela quick-start in AKS, I follow this document to enable ingress. But after I deployed first-vela-app, I got below error:

      services:
      - healthy: true
        name: express-server
        traits:
        - healthy: true
          message: |
            No loadBalancer found, visiting by using 'vela port-forward first-vela-app'
          type: ingress-1-20
        workloadDefinition:
          apiVersion: apps/v1
          kind: Deployment
      status: running

    how do I resolve this issue?

    1 reply
    anders-swanson
    @anders-swanson
    Hi, does Kubevela document its compatible Kubernetes versions? E.g., "Kubevela vA.B.C works on k8s 1.x, 1.y, and 1.x"
    If not, could someone from the community chime in on what the known supported versions are for the latest release?
    3 replies
    Tõnis Ostrat
    @tonisostrat
    heya. is it possible to assign multiple exposed ports in the component section? something like the following:
    components: [
      {
        "name": "my-component",
        "type": "webservice",
        "properties": {
          "image": "my/component",
          "port": [8080, 8081, 9080]
        }
      }
    ]
    2 replies
    Theodore Salvo
    @buzzsurfr
    Hi, does OAM provide for an application to reside in more than one network scope? For example, running the same application in multiple regions.
    Theodore Salvo
    @buzzsurfr
    Similarly, I see oam-dev/spec#434 discussing a catalog design, but the issue was last updated 2021-04-06.
    barnettZQG
    @barnettZQG
    @buzzsurfr you can see the kubevela doc. https://kubevela.io/docs/case-studies/multi-cluster
    Theodore Salvo
    @buzzsurfr
    @barnettZQG My scenario is different than multi-cluster. I’m trying to define the same application across two different network scopes, which may be separated by region (and may not even run on kubernetes). The ClusterSpec only mentions a secret containing the kubeconfig.
    barnettZQG
    @barnettZQG
    @buzzsurfr Scenario 1: Multiple clusters, the document has given use cases. Scenario 2: Multiple Namespaces in the same Kubernetes cluster, which is used in a similar way to scenario 1. Scenario 3: Heterogeneous runtime environment, which needs to define its own component type according to the specific environment to realize heterogeneous access.
    Rajesh Jaluka
    @rjaluka
    Hello guys, sorry if this question has been asked and answered. I recently came across this community and I really like the idea of codifying the whole application model. I understand that the community's core focus is containerized workload, but I would like to leverage this for non-container application. I spent a lot of time searching for a completely example but couldn't find one. I will appreciate someone can share an example of a 3-tier app (web frontend - Node.js; application server - Java, database server - MSSQL). I saw a partial example here - https://www.infoq.com/articles/oam-alibaba/. It would help to see an example showing Application, Component, Workload, Trait etc. Thank you.
    7 replies
    Kirk Hoganson
    @kirkhoganson_twitter
    I'm trying to integrate kubevela and agrocd for gitops CD. There is a demo here: https://www.cncf.io/blog/2020/12/22/argocd-kubevela-gitops-with-developer-centric-experience/ but it has kind of a strange process that involves mounting volumes to get the vela binary into the argocd cluster. Adding kubevela to the cluster and adding components/traits via yaml works. However creating an application that uses those components that is deployed by argocd results in incomplete app information in the argocd GUI. The pods/routes/services are created, but argocd doesn't show them in the argocd interface. Is the vela binary process listed in the demo required to get the proper functionality?
    Jianbo Sun
    @wonderflow
    Sorry for the late response, we are more active in Slack https://slack.cncf.io/ #kubevela channel .
    @kirkhoganson_twitter Sorry for the late response, we have reproduced this issue oam-dev/kubevela#3034 and we're investigating it. Will fix it soon, you can track on that issue.