Git Product home page Git Product logo

openengine's Introduction

Maintainability codecov release lint Go Report Card License PkgGoDev

Getting started

go get github.com/abraverm/openengine/cli/oe
git clone https://github.com/abraverm/openengine
cd openengine/examples
oe deploy -d -v

openengine's People

Contributors

abraverm avatar junqizhang0 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

openengine's Issues

init function

Should implement init command to create a standard workspace containing standard workspace structure and standard **provider.yml provisioner.yml tools.yml **

Create workspace structure standard

We should have something like

[xx@xx oeWorkSpace]$ tree
.
├── apis
│   └── provider.yml
├── bdsl.yml
├── credentials
│   └── clouds.yml
├── provisioners
│   └── terraform.yml
└── tools
├── json_path.sh
├── json_sort.sh
└── tool.yml

spec.go to spec.cue

GO lang 1.16, expected to be released in February 2021, will support [embeded files|https://tip.golang.org/doc/go1.16#library-embed] and that will allow moving specification to a cue file instead of having it as a string variable. Having the specifications in cue file will make it more developer friendly.

update cue to 0.3.0-beta.2

New version of cue was released and OpenEngine tests are failing. There are changes in cue regarding lists, 'close' builtin and cycle issues. The failing tests return empty list or reference "group" not found.

Terminology description

We should have a documentation for developer:
something like:


---
Server:
  implicit:
    _memory:
      type: string
    _disk:
      type: string
  providers:
    - action: create
      match:
        type: object
        properties:
          providerType:
            type: string
      parameters:
        imageRef:
          required: true
          explicit:
            type: string

DSL.API:
description: This is the place where stores the path of the api in bdsl.yaml
example:
api:
- provider.yaml

ProviderAPI: (type ProviderAPI map[string]ProviderAPIResources)
description:
below is how ProviderAPI is filled with information
data, err := getSource(provider:TYPE(DSL.API)) //data is the variable containing all provider information from bdsl.yml
yaml.UnmarshalWithOptions(data, &parsedData:TYPE(engine.ProviderAPI), yaml.Strict())
e.AddProvider(parsedData)

ProviderAPIResources:
description:
It has two fields, Implcit:TYPE(map[string]Schema) , Providers :TYPE([]Provider). This is exactly where the information from
provider.yml (inside bdsl.yml) will go via the deserialization

engine documentation

Documentation that should cover the following topics:

  • Highlevel description \ Introduction
  • The provisioning domain
  • Provisioning use cases
  • How the engine works
  • Interfaces
  • Constrains
  • Solutions
  • Implicit properties
  • Decouple solutions
  • Resource and solution grouping
  • Limitations

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.