Skip to content
This repository was archived by the owner on Jun 11, 2025. It is now read-only.

Feature/nodejob#22

Merged
karthik1729 merged 3 commits into
kloudlite:release-1.0.5from
abdheshnayak:feature/nodejob
Jun 1, 2023
Merged

Feature/nodejob#22
karthik1729 merged 3 commits into
kloudlite:release-1.0.5from
abdheshnayak:feature/nodejob

Conversation

@abdheshnayak
Copy link
Copy Markdown
Contributor

Description

Due to lots of changes in the operator side and the API codebase. we needed an improved node controller job that can be extended at any level and is easy to maintain for future developers. so I rewrote the node controller with dependency injection and encapsulation with interfaces so it can be maintained at any level.

Type of change

Rewrite of Node Controller Job

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

  • Everything can be tested with the env file defined in the task file

Sample ENV file

All encrypted values are base64 of Yaml files and don't contain any credentials as it is a sample file.

CLOUD_PROVIDER=do
ACTION=create

# do
NODE_CONFIG=bm9kZUlkOiBzYW1wbGUtbm9kZS1kbwpyZWdpb246IGJscjEKc2l6ZTogYzIKaW1hZ2VJZDogInRlbXBpbWFnZWlkIiAK

# aws
# NODE_CONFIG=bm9kZUlkOiBzYW1wbGUtbm9kZQpyZWdpb246IGFwLXNvdXRoLTEKaW5zdGFuY2VUeXBlOiBjNmEtbGFyZ2UKdnBjOiAiIgppbWFnZUlkOiAidGVtcGltYWdlaWQiIAo=

PROVIDER_CONFIG=dGZUZW1wbGF0ZXM6IC9ob21lL3Zpc2lvbi9rbG91ZGxpdGUvYV9yZXBvcy9rbG91ZGxpdGUtYXBpL2FwcHMvbm9kZWN0cmwvdGVycmFmb3JtCmxhYmVsczogIAogIHNhbXBsZToga2sKdGFpbnRzOiAgW10Kc3NoUGF0aDogL2hvbWUvdmlzaW9uLy5zc2gK

DB_URL=mongodb://localhost:27017
DB_NAME=myfiles

AWS_PROVIDER_CONFIG=YWNjZXNzS2V5OiAidGhpc2lzYWNjZXNza2V5IgphY2Nlc3NTZWNyZXQ6ICJ0aGlzaXNhY2Nlc3NzZWNyZXQiCmFjY291bnRJZDogInNhbXBsZS1hY2NvdW50Igo=

AZURE_PROVIDER_CONFIG=""
DO_PROVIDER_CONFIG=YWNjb3VudElkOiAic2FtcGxlLWFjY291bnQiCmFwaVRva2VuOiAiYXBpVG9rZW4iCg==

GCP_PROVIDER_CONFIG=""

Test Configuration:

  • OS: Linux
  • Version: Linux linux 6.1.30-1-lts
  • Go Version: go1.20.4 linux/amd64
  • Terraform Version: Terraform v1.4.6 on linux_amd64

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented on my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

nodectrl with support of digital ocean and aws with feature of creation and deletion added.
@karthik1729 karthik1729 merged commit 087eff2 into kloudlite:release-1.0.5 Jun 1, 2023
@karthik1729 karthik1729 deleted the feature/nodejob branch June 1, 2023 14:23
nxtcoder17 added a commit that referenced this pull request Jun 29, 2023
* message office refactorings (#18)

* [apps/console] msvc templates listing through graphql (#19)

* Bugfix/optional oauth in auth api (#20)

* [cmd/struct-to-graphql] basic grapqhl schema generation now available, with parsing from go struct as well as any json schema if provided through json-schema tag

* [cmd/struct-to-graphql] kind of complete, can successfully generate graphql fields from specified json schema, and inline is also honored

* [cmd/struct-to-graphql] adding tests for validating generated schema, now we should be able to refacator it with confidence

* WIP: trying to come up with GraphQL schema generation from struct itself

* implements provisions for OAuth implementation to be optional for each of the providers

* changes container registry for image building and pushing (#21)

* Feature/nodejob (#22)

* 🚧 wip

* 🚧 wip

* ✨ new improved nodectrl written

nodectrl with support of digital ocean and aws with feature of creation and deletion added.

* Feature/nodejob (#23)

Node Creation, Cluster Creation, Master node, and worker node management with the cloud provider AWS are done.

* 🚧 wip (#24)

Left changes form last pull request

* [apps/nodectrl] taskfile updated to build nodectrl image locally (#26)

* cursor based pagination for console api along with findpaginated for repo

* struct-to-graphql types, input types, enums, common-types are being generated, but still need a stable sorting of generated fields, so that diff among multiple generations is kept at small

* [cmd/struct-to-graphql] better parsing from struct and json-schema

* cmd/struct-to-gql nested structs now have pkgpath prefixed to their name

* [cmd/struct-to-graphql] graphql schema generation and dumping with unique nested structs generation, i.e. no repeating of types

* [cmd/struct-to-graphql] tests are passing, reaching stability

* [cmd/struct-to-graphql] tests are passing, json-schema tests are also passing

* [cmd/struct-to-graphql] using it to generate graphql schema for console

* [cmd/struct-to-graphql] successfully generates graphql types, inputs, enums, handles nested structs, as well as inlining structs

* apps/console mongo repo updated to give out paginated records

* cursor based pagination finally coming through, able to paginate records based on user specified sort key, and page size

* paginated query refactorings ...

* struct-to-graphql types, input types, enums, common-types are being generated, but still need a stable sorting of generated fields, so that diff among multiple generations is kept at small

* [cmd/struct-to-graphql] better parsing from struct and json-schema

* cmd/struct-to-gql nested structs now have pkgpath prefixed to their name

* [cmd/struct-to-graphql] graphql schema generation and dumping with unique nested structs generation, i.e. no repeating of types

* [cmd/struct-to-graphql] tests are passing, reaching stability

* [cmd/struct-to-graphql] tests are passing, json-schema tests are also passing

* [cmd/struct-to-graphql] using it to generate graphql schema for console

* [cmd/struct-to-graphql] successfully generates graphql types, inputs, enums, handles nested structs, as well as inlining structs

* apps/console mongo repo updated to give out paginated records

* cursor based pagination finally coming through, able to paginate records based on user specified sort key, and page size

* paginated query refactorings ...

* implemented pagination for workspaces, routers, apps, projects, configs, secrets, managed services and managed resources

* resolves bugs in apps/nodectrl, and findPaginated method in mongo repo

* removes old files, and comments cleanup

* woker node with spot instance of aws support added in nodectrl (#28)

* updated graphql schema from updated types, and throws error when creation fails for resources

* [apps/infra] api pagination

* infra pagination, and graphql type synchronisation across apollo federation

---------

Co-authored-by: Abdhesh Nayak <abdheshnayak@gmail.com>
abdheshnayak pushed a commit that referenced this pull request Nov 5, 2024
* added webhooks app, and ci updated to act as a consumer for git-webhooks messages pushed by webhooks, and process it and then send it to kloudlite-agent

* just, some build config changes

Former-commit-id: ab339a62b3051a6f0e9fa6af5a80614eb3381e0f
abdheshnayak added a commit that referenced this pull request Nov 5, 2024
* 🚧 wip

* 🚧 wip

* ✨ new improved nodectrl written

nodectrl with support of digital ocean and aws with feature of creation and deletion added.
abdheshnayak added a commit that referenced this pull request Nov 5, 2024
* message office refactorings (#18)

* [apps/console] msvc templates listing through graphql (#19)

* Bugfix/optional oauth in auth api (#20)

* [cmd/struct-to-graphql] basic grapqhl schema generation now available, with parsing from go struct as well as any json schema if provided through json-schema tag

* [cmd/struct-to-graphql] kind of complete, can successfully generate graphql fields from specified json schema, and inline is also honored

* [cmd/struct-to-graphql] adding tests for validating generated schema, now we should be able to refacator it with confidence

* WIP: trying to come up with GraphQL schema generation from struct itself

* implements provisions for OAuth implementation to be optional for each of the providers

* changes container registry for image building and pushing (#21)

* Feature/nodejob (#22)

* 🚧 wip

* 🚧 wip

* ✨ new improved nodectrl written

nodectrl with support of digital ocean and aws with feature of creation and deletion added.

* Feature/nodejob (#23)

Node Creation, Cluster Creation, Master node, and worker node management with the cloud provider AWS are done.

* 🚧 wip (#24)

Left changes form last pull request

* [apps/nodectrl] taskfile updated to build nodectrl image locally (#26)

* cursor based pagination for console api along with findpaginated for repo

* struct-to-graphql types, input types, enums, common-types are being generated, but still need a stable sorting of generated fields, so that diff among multiple generations is kept at small

* [cmd/struct-to-graphql] better parsing from struct and json-schema

* cmd/struct-to-gql nested structs now have pkgpath prefixed to their name

* [cmd/struct-to-graphql] graphql schema generation and dumping with unique nested structs generation, i.e. no repeating of types

* [cmd/struct-to-graphql] tests are passing, reaching stability

* [cmd/struct-to-graphql] tests are passing, json-schema tests are also passing

* [cmd/struct-to-graphql] using it to generate graphql schema for console

* [cmd/struct-to-graphql] successfully generates graphql types, inputs, enums, handles nested structs, as well as inlining structs

* apps/console mongo repo updated to give out paginated records

* cursor based pagination finally coming through, able to paginate records based on user specified sort key, and page size

* paginated query refactorings ...

* struct-to-graphql types, input types, enums, common-types are being generated, but still need a stable sorting of generated fields, so that diff among multiple generations is kept at small

* [cmd/struct-to-graphql] better parsing from struct and json-schema

* cmd/struct-to-gql nested structs now have pkgpath prefixed to their name

* [cmd/struct-to-graphql] graphql schema generation and dumping with unique nested structs generation, i.e. no repeating of types

* [cmd/struct-to-graphql] tests are passing, reaching stability

* [cmd/struct-to-graphql] tests are passing, json-schema tests are also passing

* [cmd/struct-to-graphql] using it to generate graphql schema for console

* [cmd/struct-to-graphql] successfully generates graphql types, inputs, enums, handles nested structs, as well as inlining structs

* apps/console mongo repo updated to give out paginated records

* cursor based pagination finally coming through, able to paginate records based on user specified sort key, and page size

* paginated query refactorings ...

* implemented pagination for workspaces, routers, apps, projects, configs, secrets, managed services and managed resources

* resolves bugs in apps/nodectrl, and findPaginated method in mongo repo

* removes old files, and comments cleanup

* woker node with spot instance of aws support added in nodectrl (#28)

* updated graphql schema from updated types, and throws error when creation fails for resources

* [apps/infra] api pagination

* infra pagination, and graphql type synchronisation across apollo federation

---------

Co-authored-by: Abdhesh Nayak <abdheshnayak@gmail.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants