Code Monkey home page Code Monkey logo

nocloud's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

nocloud's Issues

[BUG] Fix complete cleanup DNS Records

Describe the bug

Deleting dns zone from Admin UI leaves an empty key. So i case there are two records

A *       10.0.0.0
A test  172.0.0.0

And we delete the test record from FE, it actually stays in the backend as test: {}.
In such situation, attempts on resolving test. subdomain, will end up failed with no such host error

Front-end Used

  • Admin UI
  • CLI
  • Cloud App
  • Other

Implement Accounting Service

  • Accounts Model
  • Namespaces Model
  • Permissions Graph
  • Credentials Model
  • Credentials Graph
  • Accounts Proto
  • Accounts API
    • Authorize
    • Create Account
    • #15
    • Get Account
    • #14
    • Delete Account
    • #16
    • Update Credentials
  • Namespaces API
    • Create Namespace
    • Add Account to Namespace
    • List Namespaces
    • Get Namespace
    • Update Account -> Namespace access
    • Remove Account -> Namespace access
    • Delete Namespace
    • Give Namespace to Account
    • Update Namespace -> Account access
    • Delete Namespace -> Account access
  • Authorization mechanism
  • #13

Make centralised Permissions Controller

Methods:

  • Create/Update => Upsert permission between any Nodes
  • Delete => Delete permission
  • Transfer Ownership
  • Check Access (to use in other controllers instead of direct HasAccess and AccessLevel functions calls)

Instance Model

Instance:

{
 "uuid": "UUID | string",
 "title": "Instance title | string",
 "state": { init, create, deploy, boot, runn, shut, off, deleted },
 "deploy_id": "Instance ID at back-end(KVM/Docker/etc)",
 "permissions": [ // One to Many
    Permission
 ],
 "host": Host, // One to One
 "resources": { // Instance Resources description per each type
    "type": Object<any>{} // like "aws": { "tier": "tierType" } or/and "kvm": { "cpu": "2", "ram": "4", ... }
 },
 "attributes": { // Other attributes description per each type
    "type": Object<any>{} // like "docker": { "container_name": "not_default_name" }
 }
}

This is not final Instance schema, and can be extended further

Implement Database Controller(s)

  • Create Cursor/Connector
  • Models packages
    • VMs(Deployable)
    • Accounts
    • Groups
  • DB & DB Connection Health Probe
  • Indexes
    • Standard Credentials by Username

Implement Drivers

  • Basic Driver Package
  • Basic Driver Listen Deploy Action Example
  • Service to User IONe Driver

Host Model

Host:

{
 "uuid": "UUID | string",
 "title": "Instance title | string",
 "permissions": [ // One to Many
    Permission
 ],
 "type": "End Host service type(example/KVM/Docker)"
}

Resource Permission Model

Resource Permission:

{
    "account": "UUID of User account or Group | string",
    "resource": "UUID of Resource(Instance, Network, Datastore, etc)",
    "access": { none, read, write, admin }
}

Implement Billing Machine

  • Generate bills (accounting data) per instance, pre group and per Service
  • Store bills in TS
  • Create User role - Wallet(user which has balance, which can be used for debiting bills)
  • Make transactions to Wallet Users and store them

Implement Resources TS

  • Gather Resources state info (cpu-ram time, drives, etc)
  • Store Resources state info into TimeSeries DB

Implement CRON

  • Monitor instances states every N seconds
  • Monitor ServicesProviders state every N seconds
  • Configure N in settings

Implement Instances Service

  • #18
  • #19
  • Service Model
    • Title
    • Config
    • Config Hash
    • Balance
  • Service API
    • Validate Instances
    • Create Service and Instances
    • Update Service and Instances
    • Delete Service and Instances
    • Perform Service Action
    • Perform Instance Action
  • Instance Model
    • Title
    • State
    • Config
    • Config Hash
    • Logs

Update and Up

  • Add new instances
  • Delete removed instances
  • Update existing instances

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.