* updated go mod in auth and gql
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* updated go mod in auth and gql
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
---------
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
Signed-off-by: BoGyum Kim | 김보겸 <109015852+seedspirit@users.noreply.github.com>
Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com>
* feat: add otel-demo tutorial
Co-authored-by: Suhyen Im <suhyenim.kor@gmail.com>
Co-authored-by: Jaeyeon Park <donionbs7@gmail.com>
Signed-off-by: Suhyen Im <suhyenim.kor@gmail.com>
Signed-off-by: Jaeyeon Park <donionbs7@gmail.com>
* feat: add otel-demo screenshots
Co-authored-by: Suhyen Im <suhyenim.kor@gmail.com>
Co-authored-by: Jaeyeon Park <donionbs7@gmail.com>
Signed-off-by: Suhyen Im <suhyenim.kor@gmail.com>
Signed-off-by: Jaeyeon Park <donionbs7@gmail.com>
* chore: update tutorial and architecture image
Co-authored-by: Suhyen Im <suhyenim.kor@gmail.com>
Co-authored-by: Jaeyeon Park <donionbs7@gmail.com>
Signed-off-by: Suhyen Im <suhyenim.kor@gmail.com>
Signed-off-by: Jaeyeon Park <donionbs7@gmail.com>
---------
Signed-off-by: Suhyen Im <suhyenim.kor@gmail.com>
Signed-off-by: Jaeyeon Park <donionbs7@gmail.com>
Co-authored-by: Jaeyeon Park <donionbs7@gmail.com>
Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com>
* Fix an error creating a project when the password is default
Signed-off-by: DongYoung Kim <kwx4957@gmail.com>
* Separate logic into a single if block for better readability
Signed-off-by: DongYoung Kim <kwx4957@gmail.com>
* Fix condition not returning error during initial login
Signed-off-by: DongYoung Kim <kwx4957@gmail.com>
---------
Signed-off-by: DongYoung Kim <kwx4957@gmail.com>
* Add error msg to the log
Signed-off-by: DongYoung Kim <kwx4957@gmail.com>
* Change error to log message for better debugging
Signed-off-by: DongYoung Kim <kwx4957@gmail.com>
---------
Signed-off-by: DongYoung Kim <kwx4957@gmail.com>
Removed 3 broken links in the community blogs section as the corresponding pages appear to have been removed from the websites. No suitable replacements were found.
Signed-off-by: Richard Boisvert <rboisvert@devolutions.net>
* bugfix: CIFuzz fail due to timeout on FuzzReadExperimentFile
* Since we're testing for non-existent files in our unit tests, we'll skip the unnecessary tests.
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* bugfix: Delete the FuzzReadExperimentFile test case
* Deleting test cases due to timeouts
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* bugfix: CIFuzz fail due to timeout on FuzzProcessExperimentRunDelete
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
---------
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com>
* Support for delete/abort when experiment is stuck in Queued state
Signed-off-by: Baalekshan <baalekshan@gmail.com>
* Support for delete/abort when experiment is stuck in Queued state
Signed-off-by: Baalekshan <69910615+Baalekshan@users.noreply.github.com>
---------
Signed-off-by: Baalekshan <baalekshan@gmail.com>
Signed-off-by: Baalekshan <69910615+Baalekshan@users.noreply.github.com>
* fix: fetch image registry data correctly in StudioOverviewView
Fixes an issue where the image registry data was not being fetched
Why:
Previously, the image registry data was not being fetched, even though ExperimentMetadata has a field ‘imageRegistry’. This change ensures that the form receives the correct image registry data.
How:
Added a check for loading state by disabling the ‘next’ button and assigned the fetched image registry data to a variable before form submission. This ensures the `values.imageRegistry` field is populated correctly.
Signed-off-by: Aditya Sridasyam <sridasyamaditya@gmail.com>
* fix: passed imageRegistry in kubernetesBlankCanvasTemplate
Fixes an issue where the image registry data was not being passed in the kubernetesBlankCanvasTemplate function
Why:
kubernetesBlankCanvasTemplate is expecting imageRegistry but never being passed, it is overridden always by default imageRegistry values.
Signed-off-by: Aditya Sridasyam <sridasyamaditya@gmail.com>
* Rectified import order
imported @utils before `./StudioOverview.module.scss`, rectified as per the frontend check pipeline error
Signed-off-by: aditya3103 <85363167+aditya3103@users.noreply.github.com>
* Fixed max character limit warning - kubernetesBlankCanvasTemplate function
Signed-off-by: aditya3103 <85363167+aditya3103@users.noreply.github.com>
* Fixed max character limit & trailing comma warning
Signed-off-by: aditya3103 <85363167+aditya3103@users.noreply.github.com>
* Fixed trailing comma warning - kubernetesBlankCanvasTemplate
Signed-off-by: Aditya Sridasyam <sridasyamaditya@gmail.com>
Signed-off-by: aditya3103 <85363167+aditya3103@users.noreply.github.com>
---------
Signed-off-by: Aditya Sridasyam <sridasyamaditya@gmail.com>
Signed-off-by: aditya3103 <85363167+aditya3103@users.noreply.github.com>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* Converted an extended operation type to a root type in the GraphQL schema
Signed-off-by: Suyeon Jung <suyeonjungdev@gmail.com>
* Refactored GraphQL schema to use Query and Mutation root types in chaos_experiment.graphqls for gqlgen compatibility
Signed-off-by: Suyeon Jung <suyeonjungdev@gmail.com>
* Update github.com/99designs/gqlgen version 0.17.42 to 0.17.49
Signed-off-by: Suyeon Jung <suyeonjungdev@gmail.com>
---------
Signed-off-by: Suyeon Jung <suyeonjungdev@gmail.com>
Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com>
* Create a seperate function to get Namespace in subscriber
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Update graphql server to include KubeNamespace call (model not generated)
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Update graphqls to include KubeNamespace model
Update objectmodel and subscriber to incldue KubeNamespace
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Fix issue in graphqls and adding KubeNamespace type.
Regenerating model with gqlgen.
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Update model to includude missing field in KubeNamespaceData
Rename getKubeNamespace function that didn't match graphqls operation in Subscription
Add missing function for the graphql server to retrieve list of namespace
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Add remaining function in k8s pkg and requests to return list of namespace
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Update graphql/subscriber to transform KubeObject to not be a array since subscriber will only return one element.
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Update web server to seperate call for KubeObject and KubeNamespace.
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Fix import with goimports
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Reverting upgrade of webpack-dev-server so it's compatible with github workflow
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Run gofmt with correct version.
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Bumping ubi-minimal:8.8 to 8.10 to fix some HIGH CVE severity detected by trivy.
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Updating chaos_infrastructure mock to include KubeNamespace.
Fix a comment
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Fix issue from Codacy
Removing some unused code
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Fix codacy issue:
- Add some trailing comma
- Trying transform subscription function to resolve "non-arrow functions are forbidden"
- Add null check
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
* Continue fix Codacy issue
- Adding trailing comma
- Re-ordering by alphabetic order some parameters
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
---------
Signed-off-by: Calvin Audier <calvinaudier@gmail.com>
Signed-off-by: Calvinaud <calvinaudier@gmail.com>
Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* test: add fuzz test to GetChartsPath function in handler
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* test: add fuzz test to FuzzReadExperimentFile function in handler
* Removed the ./types.go example in unit test handler_test.go/TestReadExperimentFile because it returns a file does not exist error, not the file is not a yaml error that the test is intended to return.
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* * test: Add the FuzzReadExperimentYAMLFile test in the handler_fuzz_test.go file
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* test: add fuzz test to FuzzIsFileExisting function in handler
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* test: add fuzz test to FuzzGetExperimentData, FuzzUnzipRemoteHub function in handler
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* refactor: remove unused imported library
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* fix: check yaml: control characters are not allowed
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* refactor: save goimport order
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
---------
Signed-off-by: Soyeon Park <sypark9646@gmail.com>
* Force infra/subscriber disconnection when is already connected
Signed-off-by: Bruno Ledesma <led.bruno@gmail.com>
* Force infra/subscriber disconnection when is already connected
Signed-off-by: Bruno Ledesma <led.bruno@gmail.com>
---------
Signed-off-by: Bruno Ledesma <led.bruno@gmail.com>
* ci: version up actions/checkout@v2 to v4
Signed-off-by: JiHoon Bae <hahawjstk@gmail.com>
* ci: version up actions/setup-go@v2 to v5
Signed-off-by: JiHoon Bae <hahawjstk@gmail.com>
* ci: version up actions/setup-node@v3 to v4
Signed-off-by: JiHoon Bae <hahawjstk@gmail.com>
* ci: version up dorny/paths-filter@v2 to v3
Signed-off-by: JiHoon Bae <hahawjstk@gmail.com>
---------
Signed-off-by: JiHoon Bae <hahawjstk@gmail.com>
Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com>
* Modified db schema of Owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added new API GetProjectOwners.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fix: return type error.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* chore(deps): Bump golang.org/x/crypto in /chaoscenter/authentication (#4527)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.18.0 to 0.21.0.
- [Commits](https://github.com/golang/crypto/compare/v0.18.0...v0.21.0)
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): Bump follow-redirects in /chaoscenter/web (#4529)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.5 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6)
---
updated-dependencies:
- dependency-name: follow-redirects
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): Bump github.com/golang/protobuf (#4493)
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.5.3 to 1.5.4.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.5.3...v1.5.4)
---
updated-dependencies:
- dependency-name: github.com/golang/protobuf
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raj Das <mail.rajdas@gmail.com>
* Modified SendInvitation API.
This modification unables to send invite with the role as owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Modified LeaveProject API.
This modification checks if the User is the last owner of the project and if not User can leave the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* RBAC modification `LeaveProject`.
Allows Owner to be able to leave the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `UpdateMemberRole` API.
This API is used for updating role of the member in the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Fixed some syntax errors.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Updated roles for owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added new API `DeleteProject`.
Owner can delete project with help of this API.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added mocks.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* modified go.sum
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added condition `UpdateMemberRole`.
User cannot change role of their own, so that it will avoid edge cases like
1. User is the last owner of the project.
2. User accidentally losing owner access to the projects.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* made suggested changes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Changed DeleteProject endpoint to have url parameter.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Minor fixes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* [WIP] : Multiple project owner backend. (#4536)
* Modified db schema of Owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added new API GetProjectOwners.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fix: return type error.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* chore(deps): Bump golang.org/x/crypto in /chaoscenter/authentication (#4527)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.18.0 to 0.21.0.
- [Commits](https://github.com/golang/crypto/compare/v0.18.0...v0.21.0)
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): Bump follow-redirects in /chaoscenter/web (#4529)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.5 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6)
---
updated-dependencies:
- dependency-name: follow-redirects
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): Bump github.com/golang/protobuf (#4493)
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.5.3 to 1.5.4.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.5.3...v1.5.4)
---
updated-dependencies:
- dependency-name: github.com/golang/protobuf
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raj Das <mail.rajdas@gmail.com>
* Modified SendInvitation API.
This modification unables to send invite with the role as owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Modified LeaveProject API.
This modification checks if the User is the last owner of the project and if not User can leave the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* RBAC modification `LeaveProject`.
Allows Owner to be able to leave the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `UpdateMemberRole` API.
This API is used for updating role of the member in the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Fixed some syntax errors.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Updated roles for owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added new API `DeleteProject`.
Owner can delete project with help of this API.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added mocks.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* modified go.sum
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added condition `UpdateMemberRole`.
User cannot change role of their own, so that it will avoid edge cases like
1. User is the last owner of the project.
2. User accidentally losing owner access to the projects.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* made suggested changes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Changed DeleteProject endpoint to have url parameter.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Minor fixes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
---------
Signed-off-by: aryan <aryan1bhokare@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Aryan Bhokare <92683836+aryan-bhokare@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raj Das <mail.rajdas@gmail.com>
* Added new route .
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `CreateProject` modal.
Added a modal CreateProject with it's controller and views.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Some changes in `CreateProjectView`.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `ProjectDashboardCardMenu`.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `ProjectDashboardCard`.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `DeleteProject` API mutations.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `ProjectDashboard`.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added image and strings.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Modified `project entities`.
Added new fields in `Project` struct.
Added fields for filters, pagination, and some constants.
Modified `CreateProjectInput`.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* [Backend] Modification in Backend for the UI.
Added Filters and pagination in Backend.
Modified API's and added a pipeline for the aggregation of results.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `project_util` for validation of input request.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Indent Fixes
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Modification for Frontend Hook of `CreateProject` API.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Modified `ListProject` Query frontend hook.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Removed string constants and some minor changes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added Project Filters.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added pagination and filter subheader in Dashboard.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* modified auth-api swagger file.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added tags section in create-project modal.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Changes due to modification of API and addition of new strings
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* minor changes and resolved some errors.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added routing when clicked on the card.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Modifications in backend tests as per API updates.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Fix: NoProjects Element and NoFilteredProject Results element.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added scroll for the project list.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Some changes in UI w.r.t Multiple Project Owner Feature.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Made search text type insensitive.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Update chaoscenter/web/src/controllers/ProjectDashboard/ProjectFilters.tsx
Co-authored-by: Hrishav <hrishav.kumar@harness.io>
Signed-off-by: Aryan Bhokare <92683836+aryan-bhokare@users.noreply.github.com>
* requested changes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* removed unnecessary handle function
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* requested backend changes and small fixes
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Changed folder structure.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* requested changes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fixed import orders
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fixing RoleEditor to RoleExecuter
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* removed redundant deleteprojectinput
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fixed bug caused in merging
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fixed bug caused in merging
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* removed duplicate struct
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Fix: frontend chaoshub test
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fix: tag rendering issue in project dashboard
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fix: Less user details in createProject
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fix: import orders
Signed-off-by: aryan <aryan1bhokare@gmail.com>
---------
Signed-off-by: aryan <aryan1bhokare@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Aryan Bhokare <92683836+aryan-bhokare@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raj Das <mail.rajdas@gmail.com>
Co-authored-by: Hrishav <hrishav.kumar@harness.io>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* Modified db schema of Owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added new API GetProjectOwners.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fix: return type error.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* chore(deps): Bump golang.org/x/crypto in /chaoscenter/authentication (#4527)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.18.0 to 0.21.0.
- [Commits](https://github.com/golang/crypto/compare/v0.18.0...v0.21.0)
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): Bump follow-redirects in /chaoscenter/web (#4529)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.5 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6)
---
updated-dependencies:
- dependency-name: follow-redirects
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): Bump github.com/golang/protobuf (#4493)
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.5.3 to 1.5.4.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.5.3...v1.5.4)
---
updated-dependencies:
- dependency-name: github.com/golang/protobuf
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raj Das <mail.rajdas@gmail.com>
* Modified SendInvitation API.
This modification unables to send invite with the role as owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Modified LeaveProject API.
This modification checks if the User is the last owner of the project and if not User can leave the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* RBAC modification `LeaveProject`.
Allows Owner to be able to leave the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added `UpdateMemberRole` API.
This API is used for updating role of the member in the project.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Fixed some syntax errors.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Updated roles for owner.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added new API `DeleteProject`.
Owner can delete project with help of this API.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added mocks.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* modified go.sum
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Added condition `UpdateMemberRole`.
User cannot change role of their own, so that it will avoid edge cases like
1. User is the last owner of the project.
2. User accidentally losing owner access to the projects.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* made suggested changes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Changed DeleteProject endpoint to have url parameter.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Minor fixes.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fixed import orders
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* fixing RoleEditor to RoleExecuter
Signed-off-by: aryan <aryan1bhokare@gmail.com>
---------
Signed-off-by: aryan <aryan1bhokare@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Aryan Bhokare <92683836+aryan-bhokare@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raj Das <mail.rajdas@gmail.com>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* fix: Not getting experiment pod logs in the UI during experiment execution
Signed-off-by: Baalekshan <baalekshan@gmail.com>
* made changes
Signed-off-by: Baalekshan <69910615+Baalekshan@users.noreply.github.com>
* made changes
Signed-off-by: Baalekshan <69910615+Baalekshan@users.noreply.github.com>
---------
Signed-off-by: Baalekshan <baalekshan@gmail.com>
Signed-off-by: Baalekshan <69910615+Baalekshan@users.noreply.github.com>
* Refactor editor to executer in Authentication service.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Refactor editor to executer in GraphQl servers.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Changing executor roles.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Updation in frontend hooks corresponding to backend refactor.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Executer role implementation.
Converted editor roles to executer role in frontend files. And Changed rbacs of the new Executer role.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* modification of api specs for executor
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* removed executor role from userInfraRegistration and fixed import orders.
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* refactor executer to executor
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* Removing exector permission from launch experiment FE
Signed-off-by: aryan <aryan1bhokare@gmail.com>
* minor fix
Signed-off-by: aryan <aryan1bhokare@gmail.com>
---------
Signed-off-by: aryan <aryan1bhokare@gmail.com>
Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com>
* upgrade go version in all the modules
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* upgrade go version in dockerfiles
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* upgrade go version in github actions
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* updated go sum
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* updated subscriber dockerfile
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
---------
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
- some conditional expressions have been simplified.
Signed-off-by: Youngjun <yj.yoo@okestro.com>
Co-authored-by: Namkyu Park <53862866+namkyu1999@users.noreply.github.com>
* added fuzzy test for subscriber
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* removed print statements
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* chore: [#4362]: Fixed experiment run execution even if runExperiment is disabled
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* fixed test case
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
- Update the chown command for openshift need
- Combine the 3 RUN for chown command into a single one to reduce number of layers
Signed-off-by: Calvin Audier <calvin.audier@gmail.com>
Co-authored-by: Calvin Audier <calvin.audier@gmail.com>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* Update package.json
While fixing CSS conflict between UICore V3 (from harness-core-ui) and UICore V4, I accidentally unpublished `4.0.0-beta.1`. This action is unrecoverable per NPMJS Support team.
This leads to packages that depends on `4.0.0-beta.1` (Limus and Gitness) fail to build.
To fix this issue, a change from `4.0.0-beta.1` to `4.0.0-beta.1a` is needed. `4.0.0-beta.1a` is exact the same as `4.0.0-beta.1`.
Signed-off-by: Tan Nhu <tan@harness.io>
* Update yarn.lock
---------
Signed-off-by: Tan Nhu <tan@harness.io>
Co-authored-by: Tan Nhu <tnhu@users.noreply.github.com>
* chore: [chaoscenter]: Added git ops functionality in experiment handlers
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* chore: [chaoscenter]: Gofmt fix
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* go mod tidy
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Co-authored-by: Sarthak Jain <sarthak.jain@harness.io>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* added fuzz tests for subscriber
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* fixed go fmt
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Co-authored-by: Vedant Shrotria <vedant.shrotria@harness.io>
Signed-off-by: William Johnson dos Santos Okano <williamokano@gmail.com>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
Co-authored-by: Sarthak Jain <sarthak.jain@harness.io>
* chore: Added UI changes for enable and disable cron feature
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* added util function to validate cron and minor fixes
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* minor fix
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* fixed import order
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* fixed linting issues
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* fixed linting issues
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
Signed-off-by: Mehmet Mustafa Guersul <mehmetgursul@gmail.com>
Signed-off-by: Saranya Jena <saranya.jena@harness.io>
Co-authored-by: Mehmet Mustafa Guersul <mehmetgursull@gmail.com>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* Added check to prevent duplicate experiments with same name
* Added duplicate experiment name check in chaos center
* minor fix
Signed-off-by: Sarthak Jain <sarthak.jain@harness.io>
---------
Signed-off-by: Sarthak Jain <sarthak.jain@harness.io>
* feat:[chaos-center]: Updated subscriber status changes
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* feat:[chaos-center]: Updated types and chaosdata result fix in gql server
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* chore: [mentorship]: Updated mentorship docs
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* chore: [mentorship]: Added blog details
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Added user level RBACs in auth APIs
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Updated required parameters in api responses in swagger
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* minor change in swagger
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* minor change in swagger
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* minor change in swagger
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
---------
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
Co-authored-by: Hrishav <hrishav.kumar@harness.io>
* Added swagger.json file for auth APIs
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* updated api fielda from snake case to camel case
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* test commit to check if required field is working
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* updated required fields correctly
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
---------
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* feat: Litmus 3.0: Added subscriber base setup
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* feat: Litmus 3.0: Added events for chaosengine and workflows
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* feat: Litmus 3.0: Added logs and minor changes
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* updated logs
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Co-authored-by: Saranya Jena <saranya.jena@harness.io>
* Added base setup for graphql and authentication protos
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Added graphql schemas
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Added cluster and namespace scope manifests
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Added utilities and environment variables
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Added logger and authentication middleware
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Added api and mongodb handler functions for chaos experiments, experiment runs and infra
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Added api and mongodb handler functions for chaoshub, environment, grpc and project
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Added api and mongodb handler functions for image registry, gitopns and file handlers
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Updated go version
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Removed unused packages and chaoshub test suite
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
---------
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Adding gitattributes to show golang as the default lang for litmus
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding previous and current mentorship records
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
---------
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Updated version in 3.0.0-beta6 manifest
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Updated readme
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Updated version in upgrade agent
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Updated version in readme
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
---------
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Making VERSION env as a required env
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Making VERSION env as a required env
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Making VERSION env as a required env
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Making VERSION env as a required env
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Making VERSION env as a required env
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Making VERSION env as a required env
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
---------
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Improve the env vars management in the graphql-server
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Improve the env vars management in the graphql-server
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Improve the env vars management in the graphql-server
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Update init.go
---------
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Added empty string check for retry in probes
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Fixed issue with analytics graph
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Co-authored-by: Vedant Shrotria <vedant.shrotria@harness.io>
* Chore(docs): Update the psp docs with comments on each field
Signed-off-by: Udit Gaurav <udit.gaurav@harness.io>
* Chore(docs): Update the psp docs with comments on each field
Signed-off-by: Udit Gaurav <udit.gaurav@harness.io>
* fix volume to add hostPath in it
Signed-off-by: Udit Gaurav <udit.gaurav@harness.io>
Signed-off-by: Udit Gaurav <udit.gaurav@harness.io>
* Updated docs for response body in status code and content encodng and type addition
Signed-off-by: avaakash <as86414@gmail.com>
* added 'container' in target service port explanation
Signed-off-by: avaakash <as86414@gmail.com>
* removed containerd,crio references from pod-dns docs
Signed-off-by: avaakash <as86414@gmail.com>
Signed-off-by: avaakash <as86414@gmail.com>
* Fixed executed_by issue in subscriber
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Updated upgrade agent
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Added warning text
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Removed config from workflow controller
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Added ingress in namespace scope manifest
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Minor fix in ChaosHub auth
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Updated gql manifest with REMOTE_HUB_MAX_SIZE env
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Added fixes for comparison plot & logs for install experiments step
Signed-off-by: Vedant <vedant.srotria@harness.io>
* Added description in workflows page and minor fixes
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Signed-off-by: Vedant <vedant.srotria@harness.io>
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
Co-authored-by: Vedant <vedant.srotria@harness.io>
Co-authored-by: Amit Kumar Das <amit.das@harness.io>
* alter email to base64, because the regex enconding
Signed-off-by: Deivid <deivid.dgm@gmail.com>
* add comment in methode create
Signed-off-by: Deivid <deivid.dgm@gmail.com>
Signed-off-by: Deivid <deivid.dgm@gmail.com>
Co-authored-by: Raj Das <mail.rajdas@gmail.com>
* Fixed error handling and minor change in synchub
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* updated go.mod
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* updated go.mod
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Minor fix in build script
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Removed the duplicate words
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* minor text fixes
Signed-off-by: Saranya-jena <saranya.jena@harness.io>
* Minor fix in env config
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Updated Okteto manifest
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Added imagePullSecret in chaos engine and minor change in probe
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Added runner image pull secret
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Updated env name from LITMUS_CORE_VERSION to WORKFLOW_HELPER_IMAGE_VERSION
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Minor fix in pipeline
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* adding CHAOS_CENTER_UI_ENDPOINT available for cluster and namespace scope
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Renaming PORTAL_SCOPE to CHAOS_CENTER_SCOPE
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Renaming PORTAL_SCOPE to CHAOS_CENTER_SCOPE
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Seperating GetEndpoint function to be use in agent register mutation
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Seperating GetEndpoint function to be use in agent register mutation
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* updating endpoint of manifest
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Adding the same changes to GetManifestWithClusterID
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Replace with chaoscenter scope
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Added required field to criteria
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Minor fix in promProbe
Signed-off-by: Amit Kumar Das <amit.das@harness.io>
* Updated readme to 2.9.0
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Removed run.sh and updated readme
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added namespace scope links
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor change
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* fix event tracker gitops api
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* upgrading crypto
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* fixing go mod
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Fixed dashboard and gitops related issues
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Reverting a minor change
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added LITMUS_CORE_VERSION and fixed issues with image registry
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added chaosexp kind check
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed deepscan issue
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added agents,workflows, hubs and workflow management docs
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added favicon and auth redirect link
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed delete hub issue
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed disable schedule issue
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated the directory version
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added v2.0.0 dir back
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added cpu load tunable to node and pod cpu hog experiment; Added yaml example for CPU in node-io-stress experiment
Signed-off-by: Akash Shrivastava <as86414@gmail.com>
* Fixed env tunables and manifest links
Signed-off-by: Akash Shrivastava <as86414@gmail.com>
* Fix for pipeline requirement for doc changes
Signed-off-by: Akash Shrivastava <as86414@gmail.com>
* Update cluster-k8s-manifest.yml
* Update namespaced-k8s-template.yml
* Fixing eventtracker to retrieve CLUSTER_ID and ACCESS_KEY from agent-secret
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Fixing eventtracker to retrieve CLUSTER_ID and ACCESS_KEY from agent-secret
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Fixing subscriber to update CLUSTER_ID and ACCESS_KEY to the agent-secret
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* minor fix
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* adding secrets to rbac of agents
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* minor fix
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* ads
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* test
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* test -2
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* fix workflow logs
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* formatting logs
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* undo manifest
Signed-off-by: Raj Babu Das <raj@chaosnative.com>
* Added workflow type filter and pre-define workflow redirect URL
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated observability to analytics and changed routes
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added fix for workflow failure issue while adding experiments with the same name in the workflow
* Added workflow step name checks
Signed-off-by: Saranya-jena <saranya@chaosnative.com>
Co-authored-by: Amit Kumar Das <amit@chaosnative.com>
* updated hub mountPath and minor fix in deleteAgent
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed label related issue in subscriber
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed goimports
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated MyHub Rbacs and optimized filetype for fetching hub data
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Made projectID required parameter for MyHub DB operations
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Disabled auto mounting of default SA
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Disabled auto mounting of default SA
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added changes for separate server deployments
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added changes for separate server deployments
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added control-plant upgrade script and minor UI fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated go imports
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated go imports
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Removed commented code
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* feat: add audit to workflows and workflow runs
Signed-off-by: Victor Martinelli <victorlcm93@gmail.com>
* fix: improve some code
Signed-off-by: Victor Martinelli <victorlcm93@gmail.com>
* fix: add docs to public functions
Signed-off-by: Victor Martinelli <victorlcm93@gmail.com>
* fix: fix doc in GetUsername
Signed-off-by: Victor Martinelli <victorlcm93@gmail.com>
* feat: add last updated by and executed by columns in frontend
Signed-off-by: Victor Martinelli <victorlcm93@gmail.com>
* fix: fix reliability test classname
Signed-off-by: Victor Martinelli <victorlcm93@gmail.com>
* fix: improve empty data display
Signed-off-by: Victor Martinelli <victorlcm93@gmail.com>
* Added RBAC to rerunworkflow
Signed-off-by: Bruno Barin <bruno.barin@ifood.com.br>
* Revert "Added RBAC to rerunworkflow"
This reverts commit ca492e9871.
* Changes after code review
Signed-off-by: Bruno Barin <bruno.barin@ifood.com.br>
* Changes after code review
Signed-off-by: Bruno Barin <bruno.barin@ifood.com.br>
* Fix after review
Signed-off-by: Bruno Barin <bruno.barin@ifood.com.br>
* Fixed linted issues
Signed-off-by: Bruno Barin <bruno.barin@ifood.com.br>
* Revert "Added RBAC to rerunworkflow"
This reverts commit ca492e9871.
Signed-off-by: Bruno Barin <bruno.barin@ifood.com.br>
* Reuse the existing function
Signed-off-by: Bruno Barin <bruno.barin@ifood.com.br>
Co-authored-by: Bruno Barin <bruno.barin@ifood.com.br>
Signed-off-by: Tuan Anh Tran <me@tuananh.org>
fix: use copy instead of add as per hadolint recommendations
Signed-off-by: Tuan Anh Tran <me@tuananh.org>
* Add cy parameters for data source
Signed-off-by: DhananjayPurohit <dhananjaypurohit7@gmail.com>
* Fix cypress parameters of components for data source
Signed-off-by: DhananjayPurohit <dhananjaypurohit7@gmail.com>
* Update cy parameter for dashboard
* Update cy parameter name for delete dashboard
* adding change policy operator to event trcker
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* changes
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* changes in utils of et
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* changes in utils of et
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* Added upload functionality for basic argo workflows
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor fix with workflow settings
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added advanced tune section in workflow creation step
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor change in border
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added version field in cluster collection
Signed-off-by: Saranya-jena <saranya@chaosnative.com>
* Added FE check for agent upgrade
Signed-off-by: Saranya-jena <saranya@chaosnative.com>
* Added quotes around project and cluster id
Signed-off-by: Saranya-jena <saranya@chaosnative.com>
* add CNF Test Suite to adopters
Signed-off-by: Lucina Stricko <lucina@vulk.coop>
* Create cnftestsuite.md
Signed-off-by: Lucina Stricko <lucina@vulk.coop>
* add link to cnf test suite repo
Signed-off-by: Lucina Stricko <lucina@vulk.coop>
* Added get manifest query
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* Added getAgentDetails query to fetch agent details by name and project id
Signed-off-by: Saranya-jena <saranya@chaosnative.com>
* Added start time to server
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* Error handling
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* Replaced agent name with cluster ID
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
Co-authored-by: Saranya-jena <saranya@chaosnative.com>
* Adding toleration field to the cluster registration mutation
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* Adding toleration field to the cluster registration mutation
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* Adding toleration field to the cluster registration mutation
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* graphql-server: add env var validation using envconfig package
Signed-off-by: Vivek R <123vivekr@gmail.com>
* event-tracker: add env var validation using envconfig package
Signed-off-by: Vivek R <123vivekr@gmail.com>
* subscriber: add env var validation using envconfig package
Signed-off-by: Vivek R <123vivekr@gmail.com>
* authentication: add env var validation using envconfig package
Signed-off-by: Vivek R <123vivekr@gmail.com>
* upgrade-agents: add env var validation using envconfig package
Signed-off-by: Vivek R <123vivekr@gmail.com>
* Feat: Added feature to display previos values of users fullname and email set in accounts tab
To discuss-
1) box at top right doesnt load new email when changed immediately
2) both values must be set and then save button gets activated
Signed-off-by: Aniruddha Amit Dutta <duttaaniruddha31@gmail.com>
* Chore : Remove unused comments
Signed-off-by: Aniruddha Amit Dutta <duttaaniruddha31@gmail.com>
* Feat: Modified approach as mentioned here -
https://github.com/litmuschaos/litmus/pull/3210#issuecomment-922632883
Signed-off-by: Aniruddha Amit Dutta <duttaaniruddha31@gmail.com>
* Feat: Dropdown now updates email without refreshing
Signed-off-by: Aniruddha Amit Dutta <duttaaniruddha31@gmail.com>
* Added view manifest, alert for re-run
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor icon fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed minor bug in agents table
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
Co-authored-by: Soumya Ghosh Dastidar <44349253+gdsoumya@users.noreply.github.com>
* Fixed links to ChaosHub, added textButton component
* Added Modal for no run condition in analytics, sorted workflow dashboards, tooltip fixes
* Math rounding fix
* Minor fix
* Added translations, icons from litmus-UI, used sorting util
Signed-off-by: Vansh Bhatia <vansh@chaosnative.com>
* Added view experiment runs and edit icon in workflow table
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added icons from Litmus-UI
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor change
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
Co-authored-by: Sayan Mondal <sayan@chaosnative.com>
* Added initContainer in server deployment to wait for MongoDB.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added required changes.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Addec check for slicing bounds for cases when chaos is not injected successfully
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* Updated scrape job and service monitor for chaos-exporter to relabel instance for filtering out unique events and metrics for queries
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* updated default chaos event and verdict queries
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* reverting go sum changes
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* schema fix
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
Co-authored-by: Raj Babu Das <mail.rajdas@gmail.com>
* Updated API docs to v2.0.0
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated auth API to v2.0.0
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated API urls
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
Co-authored-by: Vedant Shrotria <40681425+Jonsy13@users.noreply.github.com>
* Adding delete permission to the RC1 manifest for deleting subscriber
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* Adding delete permission to the RC1 manifest for deleting subscriber
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* Added Manifests for 2.0.0 Chaos Center & downgraded the Beta Manifests to Beta9.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Changed the version to 2.0.0-RC1.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Changed the litmus version to v1.13.6
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Upgraded versions in ci k8s manifests
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Upgraded versions in docs manifests
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Fixed the issue in deletion of chaosengines.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added the permissions for server
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Removed permissions for namespaced mode
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Fixing logs of event tracker
Signed-off-by: rajdas98 <mail.rajdas@gmail.com>
* adding AGENT_SCOPE var to check list
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* adding black-box exporter and scrape job, service monitor with updates to litmus version and exporter manifests
* updating kublr readme.
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* litmus ui version update
* styling fixes for top and bottom margin for all pages
* styling fix for overflow
Signed-off-by: Ritik Srivastava <ritik@chaosnative.com>
* Added Auth REST API docs and analytics docs
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
Co-authored-by: Soumya Ghosh Dastidar <44349253+gdsoumya@users.noreply.github.com>
* text corrections for analytics/application dashboard creation
* create dashboard/select metric definition correction
* untitled panel and panel group removed from translation due to error in querying
* handle function revert
Signed-off-by: Ritik Srivastava <ritik@chaosnative.com>
* Added separate struct to for /update/details API
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* Added ID to struct
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* upgrading go-mongo-driver to 1.5.3
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* upgrading go-mongo-driver to 1.5.3
Signed-off-by: Raj Babu Das <mail.rajdas@gmail.com>
* Added API docs with the updated apis
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor change
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Add /status api route to check if API is ready or not
Signed-off-by: Rémi ZIOLKOWSKI <remi.ziolkowski-ext@pole-emploi.fr>
* Fix codacy issues
Signed-off-by: Rémi ZIOLKOWSKI <remi.ziolkowski-ext@pole-emploi.fr>
* fix double \n\n in user.go
Signed-off-by: Rémi ZIOLKOWSKI <remi.ziolkowski-ext@pole-emploi.fr>
Co-authored-by: Raj Babu Das <mail.rajdas@gmail.com>
* bug fix for dashboard list and comparison table
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* minor fix
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* Minor CSS fixes
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* Updated translations in stats page and fixed icon issue for pre-defined workflows
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
Co-authored-by: Amit Kumar Das <amit@chaosnative.com>
* added viewed at field for application dashboards
* minor update
* minor fix
* minor codacy fix
* fixes after review
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* adding rbac permissions for workflow
Signed-off-by: Oum Kale <oumkale@chaosnative.com>
* adding for namespace scope
Signed-off-by: Oum Kale <oumkale@chaosnative.com>
* Upgraded myhub package to latest and minor change in myhub api
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed go-imports
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor change in client
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* minor fixes
* updates
* minor fix
* fixed time based sorting
* minor fix
* updates
* updated litmus ui version for sub data
* deep scan fixes
* minor deepscan fix
* minor fix
* bug fix
* changes after review
* minor fix
* changes after review
* minor fix
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* modifying frontend to run on any path passed as env vars during build
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* Fixed image paths and routing (#2)
* image paths changed from / to ./
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* reloading fix by considering the subPath when routing on project check
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* fixed more src from / to ./
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* Adding empty and duplicate project name check
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* code chanes
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* minor changes
Signed-off-by: genesys <mail.rajdas@gmail.com>
* Updated probes ui, fixed node selector issue and fixed image registry ux issue
* Fixed deepscan issue and minor fix in probe
* Added is_default field with image registry apis
* Fixed deepscan
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated the tags for argo-workflow controller and executor with v2.11.0.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Updated the tags in okteto manifest.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added env tunables, date range for usage stats and fixed logs issues
* Minor theme change
* Minor translations fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed the usage statistics page with lazy query
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added redux state for myhub tabs
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed label selection and workflow settings
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated subject, context and fixed the experiment runs in usage section
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Get pre-defined workflow manifest of selected hub
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* adding env check condition in event tracker and subscriber
Signed-off-by: Raj Das <raj@chaosnative.com>
* removing START_TIME env from the constant env
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Added global stats cards
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Moved inline styles to styles file
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Making Litmus Cards Reusable and Modular
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* Added project details query and basic table
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Adding Header for table
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* Adding Search for table
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* Fixed search functionality
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added tarnslation for main page + Usage Cards
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* Added projects table and refactoring
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* 🔨 Changed Active SVG stroke and Fixed DeepScan 🔧
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* Addsort functionality
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
Co-authored-by: Sayan Mondal <sayan@chaosnative.com>
* added other experiment states, truncated all percentages to 2 decimal and decoupled workflow metrics with execution data
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* added stopped experiments to analytics
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* added workflow_id filter support for getWorkflowRuns API
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* Minor Changes for Smoke Test and Loader Alignment
* Fixing Radio Button selection issue
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* Added minor checks
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
Co-authored-by: Amit Kumar Das <amit@chaosnative.com>
* updated the Control plane to version 2.0.0-Beta8.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* updated operator, runner and exporter to v1.13.5.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Update README.md
Co-authored-by: Raj Babu Das <mail.rajdas@gmail.com>
* Removin Argo server deployment from the agent list
Signed-off-by: Raj Das <raj@chaosnative.com>
* Removing Argo server env from the okteto manifest
Signed-off-by: Raj Das <raj@chaosnative.com>
* removing argoserver from agent-config
Signed-off-by: Raj Das <raj@chaosnative.com>
* Updated MyHub UI and minor change in jobCleanUpPolicy and removed templates tab
* Removed files related to templates
* Minor styles fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added sync and terminate workflow and checks for upload manifest
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed the delete schedule/workflow mutation
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added minor UX fixes
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor styles fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed Loader to Center + Added alert on Editor not being saved and trying to proceed
* Updating status colors and package lock
* Formatted Code
* Fetched latest and formatted
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* Adding workflow delete and sync option
Signed-off-by: Raj Das <raj@chaosnative.com>
* gofmt and gomod
Signed-off-by: Raj Das <raj@chaosnative.com>
* gofmt and gomod
Signed-off-by: Raj Das <raj@chaosnative.com>
* converting log to logrus
Signed-off-by: Raj Das <raj@chaosnative.com>
* converting log to logrus
Signed-off-by: Raj Das <raj@chaosnative.com>
* Adding isRemoved filter to getWorkflowRun Query
Signed-off-by: Raj Das <raj@chaosnative.com>
* minor change
Signed-off-by: Raj Das <raj@chaosnative.com>
* minor change
Signed-off-by: Raj Das <raj@chaosnative.com>
* minor change
Signed-off-by: Raj Das <raj@chaosnative.com>
* Added delete option in exp table, fixed select agent radio buttons and minor ux change
* Minor Radio Group Fix
* Minor CSS change
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Chore(multiarch): Build multiarch images for litmus portal components
Signed-off-by: uditgaurav <udit@chaosnative.com>
* Simplify Buildx command in push.yml and make PLATFORM tunable
Signed-off-by: uditgaurav <udit@chaosnative.com>
* Add go env in Dockerfile
Signed-off-by: uditgaurav <udit@chaosnative.com>
* Add README guide for the building portal images
* Add README guide for the building portal images
Signed-off-by: uditgaurav <udit@chaosnative.com>
* Adding support for workflow_delete and workflow_sync and resturing directory structure
Signed-off-by: Raj Das <raj@chaosnative.com>
* Adding support for workflow_delete and workflow_sync and resturing directory structure
Signed-off-by: Raj Das <raj@chaosnative.com>
* Adding support for workflow_delete and workflow_sync and resturing directory structure
Signed-off-by: Raj Das <raj@chaosnative.com>
* go imports
Signed-off-by: Raj Das <raj@chaosnative.com>
* added pagination for QueryWorkflowRuns
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* filtering workflowRuns based on workflowRunIDs
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* changed the API for getWorkflowRuns in frontend
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* added pagination for frontend and refactored code to accomodate the changes
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* Added Sorting and Filtering
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* sorting added from backend api call
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* filtering removed from frontend and used backend APIs to filter data
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* typed execution data in backend and sent common metadata from execution data in workflowruns hence reducing the data size in frontend; sorting based on workflowrun phase done in backend
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* changing resiliency score to null in case of running workflows
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* WIP: filtering and sorting done, pagination remaining
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* pagination completed in database
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* reverted ID -> String changes
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* changed the sortStage
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* Added condition to check no workflows
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* Pagination bug fix (#1)
* bug fix trails #1
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* reverting local dev changes
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* fixed the workflow subscription bugs...EVERYTHING FINALLY WORKS
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* removed comments from config
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* resolved review comments: translations, formatting and removing binary file
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* fixed some bugs and added Execution data to types.go
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* go fmt project
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
Co-authored-by: SarthakJain26 <sarthak@chaosnative.com>
* Added validation in probes modal and minor fix
* Minor change in directory structure and fixed template graph not rendering issue
* Minor regex change for validating ssh links
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added kubeobj fix for namespace mode, agent-config fix and isCustomworkflow field
* Added authorization for api
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added time pop-over and download logs functionality
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor translation fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Updated the UI of MyHub and added add-hub drawer
* Added data-cy tags for e2e
* Minor css changes
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed revert chaos not working after returning to tune worklfow and adding a new experiment
* Removed extra comment
Signed-off-by: Sayan Mondal <sayan@chaosnative.com>
* added agent component live check
Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>
* go imports
Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>
* moved to env var for component list
Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>
* updated status check to use container status
Signed-off-by: Soumya Ghosh Dastidar <gdsoumya@gmail.com>
* Added image-registry changes in workflow manifest
* Minor edge case
* Minor edge case
* Fixed edge case for revert chaos image registry change
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* removed chaos selection table, mongoDB and prometheus data mapping from frontend and interleaving for chaos events.
* minor fix
* updates
* adding seriesList API
* Removed unused variable.
* schema update
* minor updates for styles
* normalised schema
* Updates after review.
* minor fixes
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* Adding in memory cache, error handling, data filtering and validation, api for fetching labels and values for a prometheus series.
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* minor fix
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* minor fix
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* minor fix
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* minor fix
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* minor fixes
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* adding seriesList API
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* Timestamps converted to float64
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* minor update for response schema
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* normalised schema and changed cache file directory
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* Readme fix and pre loaded dashboard update.
* Sock shop dashboard, readme update and service nodePort update for grafana.
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* Updated workflow generation logic and added predefined myhub apis
* Minor lint change
* Minor change
* Added eslint disable
* Changed the logic for revert chaos
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* added mongo interface; created addtional file for switching between the collections and one for all db CRUD operations
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* modified usermanagement and projects with the new mongo structure; made logging and errors and comments consistent
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* added the changes for workflow db operations
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* added the changes for myHub db operations
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* added the changes for gitops db operations
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* minor changes for gitops db operations
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* added the changes for cluster db operations
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* added the changes for analytics db operations and added comments to the operations.go file
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* calling the initialize function and instantiating the mongo client
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* import order fixed
Signed-off-by: arkajyotiMukherjee <arko@chaosnative.com>
* Fixed workflow persistence issue for MyHub and fixed the workflow sequencing
* Added context for pre-defined workflows and minor changes in vertical stepper
* Minor fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added subject and context while workflow creation and minor bug fixes
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed deepscan issue and minor changes
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Minor style fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added validation in probes modal and fixed the type issue while probes creation
* Added error text in tune workflow step and delete experiment functionality
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* adding argument for forcing the CNE to user given value instead of docker/default.
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* update for argument passing
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* (chore)version-update: update versions of portal components to 2.0.0Beta4
Signed-off-by: ksatchit <karthik.s@mayadata.io>
* (chore)readme: update readme with latest version numbers for beta
Signed-off-by: ksatchit <karthik.s@mayadata.io>
* fix for frontend svc port on okteto
* fix for prod. frontend svc port on okteto
* adding missing envs.
* update to cluster scope.
* fixed bugs and added env for container runtime executor
* fixes and updates.
* added the portal_scope env back and minor readme update.
* minor fix
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* (fix)annotation-injector-validation: fix the validation flags in CRD as per new names in chaoscngine API
Signed-off-by: ksatchit <karthik.s@mayadata.io>
* (fix)crds: update chaosengine schema validation for annotations based on latest api changes
Signed-off-by: ksatchit <karthik.s@mayadata.io>
* Made the tabs consistent, minor translation fix
Signed-off-by: Saranya-jena <saranya@chaosnative.com>
* Updated ui for Login page, style fixes in settings
Signed-off-by: Saranya-jena <saranya@chaosnative.com>
* Making event-tracker as controller to run by policy
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* adding condition check
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* removing unused manifests
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* adding rbac
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* adding rbac
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* adding rbac
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Changing event-tracker dockerfile path
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* comparing old and new manifest change
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* fix goimports
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* removing unused commands from the manifest
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* adding event tracker crds
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* convert some conditions to switch cases
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* minor changes
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Fixed probes modal for http/probes
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added type and translations
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added Minor updates for test identifiers for new onboarding tests.
* Added Minor CSS updates.
* Fixed deepscan issues.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added save template functionality in frontend 💾
* Minor alert and translation fix
* Fixed stepper labels issue
* minor fix
* minor translation fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added kubernetes obj integration, fixed chaos engine name, fixed probes and minor fixes 🌟
* Updated YAML generation logic and minor fixes
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* minor fix to readme for making kube state metrics exporter optional
* updates for kublr and README fix
* minir fix
* Minor updates
Signed-off-by: ishangupta-ds <ishan@chaosnative.com>
* Added Fix for some edge cases and replaced Status Succeeded with Completed for workflow and Nodes.
* Added required changes
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added workflow template operations api
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Gofmt fix
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Added description field in templates
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Fixed goimports
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
* Removed uuid2
Signed-off-by: Amit Kumar Das <amit@chaosnative.com>
Co-authored-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fix failing CI backend tests
- Go imports test in the backend check is failing due to unformatted code
- Fix it
Signed-off-by: specter25 <ujjwalcoding012@gmail.com>
* Remove go imports check from push.yml workflow
- As the go imports check is already included in build.yml remove it from
push.yml
Signed-off-by: specter25 <ujjwalcoding012@gmail.com>
* Add goimports CI check and format exiting imports
- Add Check in github actions workflows to check for goimports format
- Format existing go imports
Signed-off-by: specter25 <ujjwalcoding012@gmail.com>
* Include goimports checks in backend checks in CI
- Put the go-imports CI check step in backend checks
- Change path to ./litmus-portal
- Add goimports check in push.yml
Signed-off-by: specter25 <ujjwalcoding012@gmail.com>
* Remove repeated check of authentication filter in CI
- In the backend check authentication filter is checked twice in the or condition , make it a single check .
Signed-off-by: specter25 <ujjwalcoding012@gmail.com>
* Removed local tab-panel component and resiliency score calculation in frontend for Dagre graph screen.
* Fixed Deepscan issues.
* Removed the state for R-score.
* Made required changes.
Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
* Added Kubernetes Objects API with dynamic client
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added request ID
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added permissions for namespace
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
Co-authored-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Adding user to litmusDB at the time of login
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* Updated the condition to call mutation
Signed-off-by: SarthakJain26 <sarthak@chaosnative.com>
* Refactoring portal backend to accommodate external configmap
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* go fmt and rename config map to agent-config
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Filter steps based on the changed files
Signed-off-by: Maria Kotlyarevskaya <jasssstkn@yahoo.com>
* Test frontend
Signed-off-by: Maria Kotlyarevskaya <jasssstkn@yahoo.com>
* Configure push workflow
Signed-off-by: Maria Kotlyarevskaya <jasssstkn@yahoo.com>
* Revert push.yml changes
Signed-off-by: Maria Kotlyarevskaya <jasssstkn@yahoo.com>
* Add paths to the workflow, remove unused output in the changes
Signed-off-by: Maria Kotlyarevskaya <jasssstkn@yahoo.com>
* Revert outputs
Signed-off-by: Maria Kotlyarevskaya <jasssstkn@yahoo.com>
* (chore)GSoD: Project Proposal Page
Signed-off-by: ksatchit <karthik.s@mayadata.io>
* (chore)GSoD: Clarify scope of work and provide budget info
Signed-off-by: ksatchit <karthik.s@mayadata.io>
* Updated the Linear Progressbar component and minor change
* Minor bug fixes and updated RR score for running phase
* Minor translation fix
* Updated image during custom chaos generation
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Adding portal pipeline script to github workflows
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* removing hack and .circleci directory
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* changing checkout action version to v2
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* changing checkout action version to v2
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Directory restructuring of few components in settings, minor UI fixes
Signed-off-by: Saranya-jena <saranya.jena@mayadata.io>
* Added translations
Signed-off-by: Saranya-jena <saranya.jena@mayadata.io>
* updating delete targets to disconnect
Signed-off-by: Oum Kale <oumkale@chaosnative.com>
* removed state variable
Signed-off-by: Oum Kale <oumkale@chaosnative.com>
* Updated the fetch policy for getting experiment and engine yaml
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added a check to disable viewers to update MyHub
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor change
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added loader in verify and commit finish button
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Updated Buttonfilled from litmus-ui
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
Co-authored-by: Raj Babu Das <mail.rajdas@gmail.com>
* Change the method of connection to a cluster agent using litmusctl and refactored the code for targets page
Signed-off-by: arkajyotiMukherjee <arkajyoti.mukherjee@mayadata.io>
* Added React.FC type to target component and used history API instead of window
Signed-off-by: arkajyotiMukherjee <arkajyoti.mukherjee@mayadata.io>
* implemented review changes
Signed-off-by: arkajyotiMukherjee <arkajyoti.mukherjee@mayadata.io>
* Fixed the MyHubs typo and updated the Gitops section
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor change
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed deepscan issue
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* adding version to analytics report
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* npm run format
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* npm run format
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Added error handling in workflow creation and alert text for ssh
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Removed commented code
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed default error state for password fields and fixed modal padding
Signed-off-by: SarthakJain26 <sarthak.jain@mayadata.io>
* added text to translation
Signed-off-by: SarthakJain26 <sarthak.jain@mayadata.io>
* Added edit gitops functionality and updated images to non root
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor fix
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added text in translations
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor css fix in targets
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added enable/disable revert chaos, chaos result and minor fixes
* Changing to unique ChaosEngine name in editor and minor fix in logs modal
* Fixed an edge case
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Adding {version, buildtime} to frontend ui and respective changes to {circleci, Dockerfile}
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* remove comment
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* adding go info in server, event tracker and subscriber log
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* adding go info in server, event tracker and subscriber log
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* go fmt
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Upgraded to Litmus-UI
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
Co-authored-by: Amit Kumar Das <40661238+amityt@users.noreply.github.com>
* upgrading litmusportal to 1.13
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* upgrading litmusportal to 1.13
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* upgrade analytics
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Changing logic in event-tracker for update event
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* adding non empty workflowid in add event
Signed-off-by: Raj Das <mail.rajdas@gmail.com>
* Added private hub support and crud operation in myhub
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor fixes
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed deepscan issue
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* seperating subscriber manifest into individual files and changing its respective code
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
* go fmt
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
* updated the workflow representation to remove major desisgn limitations
* added all svg icons to the dag graph, tested for both horizontal and vertical layouts, made small changes in appollo client creation
* changed arrow and stepgroup colors and made the spinning animation for running nodes
* made some style changes and modified the layout button styles to match the design
* removed commented code
* minor fix
Signed-off-by: arkajyotiMukherjee <arkajyoti.mukherjee@mayadata.io>
* Added annotationCheck and fixed workflow deletion for viewer
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor change
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Adding go routine to cloning default myhub function
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
* Adding context.background
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
* Removed my_hub parameter
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Removed cluster_type from targets
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added changes for myhub with project id association.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Added RBAC for myhub.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Added download functionality
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added one Bugfix.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
Co-authored-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Migrated myhub from users collection to myhub collection
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Updated go-routine and default hub and some changes.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Minor fix
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Removed unnecessary prints
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added updated at and created at in myhub
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
Co-authored-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Updated graphql query and added cron support for custom workflow
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor fix
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed deepscan issue
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* patch to keep workflow runs on schedules delete
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* go fmt
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Removed delete operation and changes in get workflow query
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added upload YAML feature
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor change in translations
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed deepscan issues
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added Endpoints for experiment yamls.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Added support for default public hub.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Added error handling
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
Co-authored-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Bug fixes in custom workflow section and added autocomplete search for experiments
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed some known issues and minor change in translations
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* fixed deepscan issues
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed experiment duration display and translations
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* changed agent_scope to cluster in cluster reg mutation
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added initial screens for custom workflow
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added env variables functionality for custom workflows.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Added custom workflow with public hub and updated redux
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor CSS change and deepscan fixes
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor change in translations
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor changes
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
Co-authored-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Added my hub experiment screen and components
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added myhub status screen and minor fixes
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor fix for e2e test
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed deepscan issues
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor CSS changes after review
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added translations and minor CSS changes
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor Change
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* minor fix in directory structure and readme
Signed-off-by: ishangupta-ds <ishan.gupta@mayadata.io>
* minor fix
Signed-off-by: ishangupta-ds <ishan.gupta@mayadata.io>
* minor fix
Signed-off-by: ishangupta-ds <ishan.gupta@mayadata.io>
* Added initial screens for MyHub
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Integrated the database with frontend.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Added getCharts schema and Myhub charts page
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Modified query and mutations for hub name.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Added models and redux for MyHub Section
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Integrated MyHub Screens with Backend
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Added translations and minor CSS fixes
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed deepscan issues
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Modified URL for icons to be used with other platforms.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
* Minor CSS changes
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor change
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Minor change
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Removed line breaks and minor CSS changes
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
Co-authored-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
- Backend Implementation for My Hub.
- GitHub Clone feature for My Hub.
- Graphql endpoints for charts and experiment details.
Signed-off-by: Vedant Shrotria <vedant.shrotria@mayadata.io>
Co-authored-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Changing version to 1.9
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
* Changing version to 1.9 [skip-ci]
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
Signed-off-by: alpha2320 <58825698+alpha2320@users.noreply.github.com>
* Changing version to 1.9
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
* Changing version to 1.9 [skip-ci]
Signed-off-by: Raj Babu Das <raj.das@mayadata.io>
* Added timezone generation for cron workflows
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* Fixed dropdown in schedules page
Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
* refactoring of targets
Signed-off-by: Oum Nivrathi Kale <oum.kale@mayadata.io>
* refactoring of targets
Signed-off-by: Oum Nivrathi Kale <oum.kale@mayadata.io>
* refactoring of targets
Signed-off-by: Oum Nivrathi Kale <oum.kale@mayadata.io>
* refactoring of targets
Signed-off-by: Oum Nivrathi Kale <oum.kale@mayadata.io>
* refactoring of targets
Signed-off-by: Oum Nivrathi Kale <oum.kale@mayadata.io>
* refactoring of targets
Signed-off-by: Oum Nivrathi Kale <oum.kale@mayadata.io>
Signed-off-by: Parshant Sharma <parshantsharma360@gmail.com>
/litmus-portal/frontend/public/icons/edit.svg is obsolete and causes path collisions on case-sensitive systems like Windows, OSX
2020-10-03 23:52:49 +05:30
3037 changed files with 856031 additions and 99322 deletions
The litmusportal runs on top of Kubernetes and is built on a set of docker containers it provides you the flexibility to build a custom image to visualize/check
your changes. Here are the components for which you can create your custom Docker images from this repository:
- GraphQL Server
- Cluster Agents: Subscriber, Event Tracker
- Web UI (Frontend)
Follow the given steps to build custom Docker images:
**Clone litmus repository**
- We need to clone (forked or base) the litmus repository and make the required changes (if any).
```bash
git clone http://github.com/litmuschaos/litmus
cd litmus/litmus-portal
```
- The litmus portal component also supports the multiarch builds that are the builds on different `OS` and `ARCH`. Currently, the images are tested to be working
for `linux/amd64` and `linux/arm64`builds.
#### Docker Image Build Tunables
<table>
<tr>
<th> Variables </th>
<th> Description </th>
<th> Example </th>
</tr>
<tr>
<td> REPONAME </td>
<td> Provide the DockerHub user/organisation name of the image. </td>
<td><code>REPONAME=example-repo-name</code><br> used as <code>example-repo-name/litmusportal-server:ci</code></td>
</tr>
<tr>
<td> IMAGE_NAME </td>
<td> Provide the custom image name for the specific component. </td>
<td><code>IMAGE_NAME=example-image-name</code><br> used as <code>litmuschaos/example-image-name:ci</code></td>
</tr>
<tr>
<td> IMAGE_TAG </td>
<td> Provide the custom image tag for the specific build. </td>
<td><code>IMAGE_TAG=example-tag</code><br> used as <code>litmuschaos/litmusportal-server:example-tag</code></td>
</tr>
<tr>
<td> PLATFORMS </td>
<td> Provide the target platforms for the image as CSV. <br>The tested ones are <code>linux/amd64</code> and <code>linux/arm64</code></td>
- For building multi-arch image setup [docker buildx](https://docs.docker.com/buildx/working-with-buildx/) in your system. You can also check out this [blog](https://dev.to/uditgaurav/multiarch-support-in-litmuschaos-34da) for the same.
- Once the docker buildx is setup export all the target platforms on which you want to deploy your images as a CSV Like `export PLATFORMS=linux/amd4,linux/arm64` along with the ENVs mentioned
in the above table.
- Build and push the multi-arch image using:
```bash
make push-portal-component
```
- For frontend image export the `timestamp` ENV with the current time and run `make push-frontend`.
OR
- Fill the ENVs from the above table in the given command and execute it.
### Here are the different commands that can be used for triggering Tests using github-actions:
<table>
<tr>
<th>Commands</th>
<th>Description</th>
<th>Time Taken</th>
</tr>
<tr>
<td>/run-unit</td>
<td>This command is used for executing all unit tests using Cypress.</td>
<td>Moderate</td>
</tr>
<tr>
<td>/run-e2e-AuthTests</td>
<td>This Command is used for executing all Auth-Related e2e-tests (Login and Welcome Modal functionalities) using Cypress by building and deploying the respective PR in a KinD Cluster.</td>
<td>Depends on Changes in the PR ( If changes are done in frontend, It can take more than 11 mins.), moderate in other cases.</td>
</tr>
<tr>
<td>/run-e2e-Settings</td>
<td>This Command is used for executing all Settings and Teaming Related e2e-tests using Cypress by building and deploying the respective PR in a KinD Cluster.</td>
<td>Depends on Changes in the PR ( If changes are done in frontend, It can take more than 11 mins.), moderate in other cases.</td>
</tr>
<tr>
<td>/run-e2e-all</td>
<td>This Command is used for executing all e2e-tests using Cypress by building and deploying the respective PR in a KinD Cluster.</td>
<td>Depends on Changes in the PR ( If changes are done in frontend, It can take more than 11 mins.), moderate in other cases.</td>
about: Request to become a maintianer in LitmusChaos Org
title: "REQUEST: Promote <your-GH-handle> to maintainer for LitmusChaos"
labels: type/maintainer-request
assignees: ""
---
### GitHub Username
@<your-GH-handle>
### Requirements
- [ ] I have reviewed [the community role guidelines](/community-roles.md)
- [ ] I have [enabled 2FA on my GitHub account](https://github.com/settings/security)
- [ ] I am an active member of 1 or more LitmusChaos subprojects for atleast the last 6 months.
- [ ] I am an active participant in issue/PR reviews for atleast 2 subprojects and for the past 6 months.
- [ ] I have been involved in technical and project discussions with other maintainers.
- [ ] I have atleast one sponsor that meet the sponsor requirements listed in the community role guidelines
- [ ] I have spoken to my sponsor ahead of this application, and they have agreed to sponsor my application
- [ ] I understand that I can [make my membership public](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) if I'd like to once I am invited to the organization
### Sponsors
- @<sponsor-1>
- @<sponsor-2>
### List of contributions to the LitmusChaos project
title: "REQUEST: New member request for <your-GH-handle>"
labels: type/member-request
assignees: ""
---
### GitHub Username
@<your-GH-handle>
### Requirements
- [ ] I have reviewed [the community role guidelines](/community-roles.md)
- [ ] I have [enabled 2FA on my GitHub account](https://github.com/settings/security)
- [ ] I am actively contributing to 1 or more LitmusChaos subprojects
- [ ] I have atleast one sponsor that meet the sponsor requirements listed in the community role guidelines
- [ ] I have spoken to my sponsor ahead of this application, and they have agreed to sponsor my application
- [ ] I understand that I can [make my membership public](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) if I'd like to once I am invited to the organization
### Sponsors
- @<sponsor-1>
- @<sponsor-2>
### List of contributions to the LitmusChaos project
about: Request reviewer membership in LitmusChaos Org
title: "REQUEST: Promote <your-GH-handle> to reviewer for LitmusChaos"
labels: type/reviewer-request
assignees: ""
---
### GitHub Username
@<your-GH-handle>
### Requirements
- [ ] I have reviewed [the community role guidelines](/community-roles.md)
- [ ] I have [enabled 2FA on my GitHub account](https://github.com/settings/security)
- [ ] I am an active member of 1 or more LitmusChaos subprojects for atleast the last 3 months.
- [ ] I am an active participant in issue/PR reviews for atleast 1 month.
- [ ] I have reviewed or authored atleast 5 significant PRs.
- [ ] I have atleast one sponsor that meet the sponsor requirements listed in the community role guidelines
- [ ] I have spoken to my sponsor ahead of this application, and they have agreed to sponsor my application
- [ ] I understand that I can [make my membership public](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) if I'd like to once I am invited to the organization
### Sponsors
- @<sponsor-1>
- @<sponsor-2>
### List of contributions to the LitmusChaos project
about: Report the potential vulnerability or security issue
title: 'seclog: [Event Description] '
labels: security, vulnerability
assignees: Saranya-jena, Jonsy13, SarthakJain26
---
### Summary
_Short summary of the problem. Make the impact and severity as clear as possible. For example: An unsafe deserialization vulnerability allows any unauthenticated user to execute arbitrary code on the server._
### Details
_Give all details on the vulnerability. Pointing to the incriminated source code is very helpful for the maintainer._
### PoC
_Complete instructions, including specific configuration details, to reproduce the vulnerability._
### Impact
_What kind of vulnerability is it? Who is impacted?_
### Remediation
_Propose a remediation suggestion if you have one. Make it clear that this is just a suggestion, as the maintainer might have a better idea to fix the issue._
This is the list of organizations and users that publicly shared details of how they are using LitmusChaos for running chaos experiments.
Please send PRs to add or remove organizations/users.
This is a list of organizations that have publicly acknowledged usage of LitmusChaos and shared details of how they are leveraging it for chaos engineering.
Please send a PR to this file (along with details in a respective [org](./adopters/organizations) folder) to add/remove entries. If you are an independent user
and wish to to share your adoption story, please raise a PR against the [users](USERS.md) file.
| Organization | Applications/Workloads | Success Story |
These organizations have been broadly classified on the basis of how they contribute to the ecosystem: as vendors, as solution providers or as pure end-users of
cloud-native technologies. Also included in this list are CNCF (or other) open-source projects that have integrated with Litmus or use it as part of their release/delivery process.
| User | Applications/Workloads | Success Story |
| :--- | :--- | :--- |
| [Laura Henning](https://github.com/LaumiH) | reasearch on how to do chaos engineering in minikube demo clusters like [these](https://github.com/LaumiH/k8sstuff) | [my story](https://github.com/litmuschaos/litmus/tree/master/adopters/Laura_Henning_Research_Project.md) |
| [Jayesh Kumar Tank](https://github.com/k8s-dev) | Create Cloud Native Validation Suite on [Demo Application](https://github.com/k8s-dev/microservices-demo)| [my story](https://github.com/litmuschaos/litmus/tree/master/adopters/Jayesh_Kumar_CloudNative_Validation.md)|
| [Bhaumik Shah](https://github.com/Bhaumik1802) | Use LitmusChaos for Kafka Resiliency on Dev/Staging| [my story](https://github.com/litmuschaos/litmus/tree/master/adopters/Bhaumik_Shah_Kafka_Chaos.md)|
| [Jayadeep KM](https://github.com/kmjayadeep) | Ensure reliability of microservices| [my story](https://github.com/litmuschaos/litmus/tree/master/adopters/jayadeep_microservices.md)|
### Cloud-Native End Users
The companies listed here conform to [CNCF's definition of end-users](https://github.com/cncf/enduser-public#cncf-end-user-community).
| [AnutaNetworks](https://www.anutanetworks.com/) | Chaos Engineering as part of SRE practices in QA environments | [Our Story](adopters/organizations/anutanetworks.md) |
| [AkriData](https://www.akridata.com/) | Pod Chaos Experiments in AWS & Azure | [Our Story](adopters/organizations/akridata.md) |
| [Halodoc](https://www.halodoc.com/) | Resiliency Validation of Kubernetes Workloads and Infra on AWS | [Our Story](adopters/organizations/halodoc.md) |
| [Adidas](https://adidas.com/) | Implementing Chaos Engineering as a practice at Adidas | [Our Story](adopters/organizations/adidas.md) |
| [Cyren](https://www.cyren.com/) | Implementing Chaos Engineering as a practice at Cyren | [Our Story](https://www.infoq.com/articles/chaos-engineering-cloud-native/) |
| [AB-Inbev](https://www.ab-inbev.com/) | Implementing Chaos Engineering as a practice at AB-Inbev | [Our Story](adopters/organizations/abinbev.md) |
| [Group Baobab](https://baobab.com/en/home/) | Orchestrating Chaos using LitmusChaos at Baobab | [Our Story](https://github.com/litmuschaos/litmus/issues/2191#issuecomment-1647648343) |
| [Amadeus](https://amadeus.com/) | Enhance the resilience and reliability in Amadeus through Chaos Engineering | [Our Story](adopters/organizations/amadeus.md) |
### Cloud-Native Vendors
The companies listed here sell cloud-native products/technologies. They use LitmusChaos as part of the resiliency validation of these products OR as part of other
devops/reliability pipelines (such as for customer portals/websites etc.,) within the company.
The companies listed here provide solutions around cloud-native technologies to other organizations/clients and are often involved in their implementation/offer services.
They use LitmusChaos as the tool of choice for carrying out chaos experiments in a client environment or in some cases use it as a building block of a larger bespoke software/devops platform.
| [Iter8](https://iter8.tools) | [SLO validation with chaos injection](https://iter8.tools/0.7/tutorials/deployments/slo-validation-chaos/) | To Be Added |
| [CNF Test Suite](https://github.com/cncf/cnf-testsuite) | To validate the resilience of Cloud Native Network Functions (CNFs) | [Our Story](adopters/organizations/cnftestsuite.md) |
| [APACHE APISIX](https://apisix.apache.org/) | Practicing Chaos Engineering using Litmus in the Apache APISIX Ingress. | [Our Story](adopters/organizations/apisix.md) |
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
Examples of behavior that contributes to a positive environment for our
community include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior by participants include:
Examples of unacceptable behavior include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
## Enforcement Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing or otherwise unacceptable behavior may be reported by contacting the project team at support@mayadata.io. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
sayan.mondal@harness.io.
All complaints will be reviewed and investigated promptly and fairly.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
Here is a list of third-party companies and individuals who provide products or services related to LitmusChaos. LitmusChaos is a CNCF project which does not endorse any company.
If you are a commercial support provider for LitmusChaos and wish to add your company, please raise a PR against this document.
Litmus is an Apache 2.0 Licensed project and uses the standard GitHub pull requests process to review and accept contributions.
---
There are several areas of Litmus that could use your help. For starters, you could help in improving the sections in this document by either creating a new issue describing the improvement or submitting a pull request to this repository.
Thanks for your interest in contributing to Litmus and help improve the project! ⚡️✨
* If you are a first-time contributor, please see [Steps to Contribute](#steps-to-contribute).
* If you would like to suggest new tests to be added to litmus, please go ahead and [create a new issue](https://github.com/litmuschaos/litmus/issues/new) describing your test. All you need to do is specify the workload type and the operations that you would like to perform on the workload.
* If you would like to work on something more involved, please connect with the Litmus Contributors.
* If you would like to make code contributions, all your commits should be signed with Developer Certificate of Origin. See [Sign your work](#sign-your-work).
## Where to Begin!
## Steps to Contribute :
If you have any queries or requests about Litmus please [create an issue](https://github.com/litmuschaos/litmus/issues/new) on GitHub. If you want to comment or ask questions to the contributors start by [joining our community](http://slack.litmuschaos.io) and drop your questions in the **#litmus** channel.
* Find an issue to work on or create a new issue. The issues are maintained at [litmuschaos/litmus](https://github.com/litmuschaos/litmus/issues). You can pick up from a list of [good-first-issues](https://github.com/litmuschaos/litmus/labels/good%20first%20issue).
* Claim your issue by commenting your intent to work on it to avoid duplication of efforts.
* Fork the repository on GitHub.
* Create a branch from where you want to base your work (usually master).
* Make your changes.
* Relevant coding style guidelines are the [Go Code Review Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments) and the _Formatting and style_ section of Peter Bourgon's [Go: Best Practices for Production Environments](https://peter.bourgon.org/go-in-production/#formatting-and-style).
* Commit your changes by making sure the commit messages convey the need and notes about the commit.
* Push your changes to the branch in your fork of the repository.
* Submit a pull request to the original repository. See [Pull Request checklist](#pull-request-checklist)
If you want to do code contributions but you are fairly new to the tech stack we are using! Check out the [Local Development Guide](https://github.com/litmuschaos/litmus/wiki/ChaosCenter-Development-Guide) and [Development Best Practices](https://github.com/litmuschaos/litmus/wiki/Development-Best-Practices) to get a reference and help get started.
We welcome contributions of all kinds
- Development of features, bug fixes, and other improvements.
- Documentation including reference material and examples.
- Bug and feature reports.
---
## Steps to Contribute
Fixes and improvements can be directly addressed by sending a Pull Request on GitHub. Pull requests will be reviewed by one or more maintainers and merged when acceptable.
We ask that before contributing, please make the effort to coordinate with the maintainers of the project before submitting large or high impact PRs. This will prevent you from doing extra work that may or may not be merged.
Use your judgement about what constitutes a large change. If you aren't sure, send a message to the **#litmus-dev** slack or submit an issue on GitHub.
<br/>
### **Sign your work with Developer Certificate of Origin**
To contribute to this project, you must agree to the Developer Certificate of Origin (DCO) for each commit you make. The DCO is a simple statement that you, as a contributor, have the legal right to make the contribution.
See the [DCO](https://developercertificate.org/) file for the full text of what you must agree to.
To successfully sign off your contribution you just add a line to every git commit message:
```git
Signed-off-by: Joe Smith <joe.smith@email.com>
```
Use your real name (sorry, no pseudonyms or anonymous contributions.)
If you set your `user.name` and `user.email` git configs, you can sign your commit automatically with `git commit -s`. You can also use git [aliases](https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases) like `git config --global alias.ci 'commit -s'`. Now you can commit with git ci and the commit will be signed.
<br/>
### **Submitting a Pull Request**
To submit any kinds of improvements, please consider the following:
- Submit an [issue](https://github.com/litmuschaos/litmus/issues) describing your proposed change. If you are just looking to pick an open issue do so from a list of [good-first-issues](https://github.com/litmuschaos/litmus/labels/good%20first%20issue) maintained [here](https://github.com/litmuschaos/litmus/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
- We would promptly respond back to your issue
- Fork this repository, develop and test your code changes. See the Highlighted Repositories section below to choose which area you would like to contribute to.
- Create a `feature branch` from your forked repository and submit a pull request against this repo’s main branch.
- If you are making a change to the user interface (UI), include a screenshot of the UI changes.
- Follow the relevant coding style guidelines
- For backend contributions, popular ones are the [Go Code Review Comments](https://code.google.com/p/go-wiki/wiki/CodeReviewComments) and the _Formatting_ and _style_ section of Peter Bourgon's [Go: Best Practices for Production Environments](https://peter.bourgon.org/go-in-production/#formatting-and-style).
- If you are making any changes in backend, make sure you have run and tested the code locally, the reviewers might ask for relevant screenshots in the comments.
- For frontend contributions, we follow the [Airbnb style guide](https://airbnb.io/javascript/react/)
- Your branch may be merged once all configured checks pass, including:
- The branch has passed tests in CI.
- A review from appropriate maintainers (see [MAINTAINERS.md](https://github.com/litmuschaos/litmus/blob/master/MAINTAINERS) and [GOVERNANCE.md](https://github.com/litmuschaos/litmus/blob/master/GOVERNANCE.md))
If you are new to Go, consider reading [Effective Go](https://golang.org/doc/effective_go.html) and [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments) for guidance on writing idiomatic Go code.
### Generating/Updating Mocks for `chaoscenter/graphql/server`
To generate new mocks or update existing mocks:
- Follow the instructions to install [mockery](https://vektra.github.io/mockery/latest/installation/).
- If generating mocks for existing interface simply run `mockery`.
- If generating mocks for new interface update [`.mockery.yaml`](././chaoscenter/graphql/server/.mockery.yaml) and run `mockery`.
---
## Pull Request Checklist :
* Rebase to the current master branch before submitting your pull request.
* Commits should be as small as possible. Each commit should follow the checklist below:
- Rebase to the current master branch before submitting your pull request.
- Commits should be as small as possible. Each commit should follow the checklist below:
- For code changes, add tests relevant to the fixed bug or new feature
- Pass the compile and tests - includes spell checks, formatting, etc
- Pass the compile and tests in CI
- Commit header (first line) should convey what changed
- Commit body should include details such as why the changes are required and how the proposed changes
- DCO Signed
* If your PR is not getting reviewed or you need a specific person to review it, please reach out to the Litmus contributors at the [Litmus slack channel](https://app.slack.com/client/T09NY5SBT/CNXNB0ZTN)
- DCO Signed
- If your PR is not getting reviewed or you need a specific person to review it, please reach out to the Litmus contributors at the [Litmus slack channel](https://app.slack.com/client/T09NY5SBT/CNXNB0ZTN)
## Sign your work
## Highlighted Repositories
We use the Developer Certificate of Origin (DCO) as an additional safeguard for the LitmusChaos project. This is a well established and widely used mechanism to assure that contributors have confirmed their right to license their contribution under the project's license. Please add a line to every git commit message:
You can choose from a list of sub-dependent repos to contribute to, a few highlighted repos that Litmus uses are:
```
Signed-off-by: Random J Developer <random@developer.example.org>
```
Use your real name (sorry, no pseudonyms or anonymous contributions). The email id should match the email id provided in your GitHub profile.
If you set your `user.name` and `user.email` in git config, you can sign your commit automatically with `git commit -s`.
You can also use git [aliases](https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases) like `git config --global alias.ci 'commit -s'`. Now you can commit with `git ci` and the commit will be signed.
This document outlines the governance structure for the LitmusChaos project, a CNCF Incubating project. It describes the roles, responsibilities, decision-making processes, and mechanisms for community involvement.
We abide by the [Code of Conduct](./CODE_OF_CONDUCT.md) for all the projects maintained under the LitmusChaos Organization.
For specific guidance on practical contribution steps for any LitmusChaos sub-project please
see our [CONTRIBUTING.md](./CONTRIBUTING.md) guide and the sub-project specific contributing guides
see our [CONTRIBUTING.md](./CONTRIBUTING.md) guide and the sub-project specific contributing guides
in the respective GitHub repositories.
## Maintainership
## Roles and Membership
There are different types of maintainers, with different responsibilities, but
all maintainers have 3 things in common:
Roles and their responsibilities are detailed in the [Community Membership](./community-roles.md) document.
1) They share responsibility in the project's success.
2) They have made a long-term, recurring time investment to improve the project.
3) They spend that time doing whatever needs to be done, not necessarily what
is the most interesting or fun.
The list of current maintainers and their organizational affiliations is maintained in the [MAINTAINERS.md](./MAINTAINERS.md) file.
Maintainers are often under-appreciated, because their work is harder to appreciate.
It's easy to appreciate a really cool and technically advanced feature. It's harder
to appreciate the absence of bugs, the slow but steady improvement in stability,
or the reliability of a release process. But those things distinguish a great
project from a good one.
## Conflict Resolution and Voting
## Reviewers
Most issues within the project are resolved by consensus. When consensus cannot be reached, a voting process is initiated. All decisions are documented publicly, either in GitHub or in meeting notes.
A reviewer is a core role within the project.
They share in reviewing issues and pull requests and their LGTM counts towards the
required LGTM count to merge a code change into the project.
### Voting Process
Reviewers are part of the organization but do not have write access.
Becoming a reviewer is a core aspect in the journey to becoming a maintainer.
## Adding maintainers
Maintainers are first and foremost contributors that have shown they are
committed to the long term success of a project. Contributors wanting to become
maintainers are expected to be deeply involved in contributing code, pull
request review, and triage of issues in the project for more than three months.
Just contributing does not make you a maintainer, it is about building trust
with the current maintainers of the project and being a person that they can
depend on and trust to make decisions in the best interest of the project.
Periodically, the existing maintainers curate a list of contributors that have
shown regular activity on the project over the prior months. From this list,
maintainer candidates are selected and proposed maintainers slack channel.
After a candidate has been announced on the maintainers slack channel, the
existing maintainers are given five business days to discuss the candidate,
raise objections and cast their vote. The Votes take place via the pull request
comment. Candidates must be approved by at least 66% of the
current maintainers by adding their vote on the mailing list. The reviewer role
has the same process but only requires 33% of current maintainers. Only
maintainers of the repository that the candidate is proposed for are allowed to
vote.
If a candidate is approved, a maintainer will contact the candidate to invite
the candidate to open a pull request that adds the contributor to the
MAINTAINERS file. The voting process may take place inside a pull request if a
maintainer has already discussed the candidacy with the candidate and a
maintainer is willing to be a sponsor by opening the pull request. The candidate
becomes a maintainer once the pull request is merged.
## Adding sub-projects
Similar to adding maintainers, new sub projects can be added to LitmusChaos
GitHub organization as long as they adhere to the LitmusChaos vision and mission.
New projects are discussed in either the Contributor Meeting or the Community
slack and requires at least 1 maintainer approval.
If a project is approved, a maintainer will add the project to the LitmusChaos
GitHub organization, and make an announcement on a public forum.
## Stepping down policy
Life priorities, interests, and passions can change. If you're a maintainer but
feel you must remove yourself from the list, inform other maintainers that you
intend to step down, and if possible, help find someone to pick up your work.
At the very least, ensure your work can be continued where you left off.
After you've informed other maintainers, create a pull request to remove
yourself from the MAINTAINERS file.
## Removal of inactive maintainers
Similar to the procedure for adding new maintainers, existing maintainers can
be removed from the list if they do not show significant activity on the
project. Periodically, the maintainers review the list of maintainers and their
activity over the last three months.
If a maintainer has shown insufficient activity over this period, a neutral
person will contact the maintainer to ask if they want to continue being
a maintainer. If the maintainer decides to step down as a maintainer, they
open a pull request to be removed from the MAINTAINERS file.
- **Threshold:** A vote passes with a simple majority.
- **Quorum:** At least 30% of maintainers must participate in the vote.
- **Voting Method:** Votes are cast by adding +1 or -1 to the associated GitHub issue or PR.
- **Binding Votes:** Each maintainer has one binding vote. Non-binding votes from the community are encouraged.
- **Organizational Limit:** No single organization can cast more than 40% of the eligible votes. Organizations with more than 40% of maintainers must designate voting members.
- **Duration:** Voting remains open for one week.
## How are decisions made?
LitmusChaos is an open-source project with an open design philosophy. This means
that the repository is the source of truth for EVERY aspect of the project,
including its philosophy, design, road map, and APIs. *If it's part of the
project, it's in the repo. If it's in the repo, it's part of the project.*
including its philosophy, design, road map, and APIs. _If it's part of the
project, it's in the repo. If it's in the repo, it's part of the project._
As a result, all decisions can be expressed as changes to the repository. An
implementation change is a change to the source code. An API change is a change
@ -108,12 +41,39 @@ manifesto, and so on.
All decisions affecting LitmusChaos, big and small, follow the same 3 steps:
* Step 1: Open a pull request. Anyone can do this.
- Step 1: Open a pull request. Anyone can do this.
- Step 2: Discuss the pull request. Anyone can do this.
- Step 3: Merge or refuse the pull request. Who does this depends on the nature
of the pull request and which areas of the project it affects.
* Step 2: Discuss the pull request. Anyone can do this.
## Decision-Making Process
* Step 3: Merge or refuse the pull request. Who does this depends on the nature
of the pull request and which areas of the project it affects.
Most decisions are made through consensus. If consensus cannot be reached, maintainers may initiate a vote.
### Voting
- **Threshold:** A vote passes with a simple majority.
- **Quorum:** At least 30% of maintainers must participate in the vote.
- **Method:** Votes are cast using +1 (approve) or -1 (reject) in the relevant GitHub PR or issue.
- **Duration:** Voting remains open for one week.
## Community Support and Transparency
LitmusChaos aims for full transparency and inclusion in all governance activities. All decisions are made publicly and documented in the GitHub repositories or public meetings.
### Recurring Public Meetings
- #### Maintainers and Contributors Meeting
Covers technical issues, future milestones, and roadmaps. Also focused on governance, membership, and the future direction of the project.
- #### Community Meeting
Engages end users and the community with project updates, user presentations, and open discussions.
- #### Meeting Calendar
Please fill [this invite form](https://forms.gle/AsuXB2hbTG2TyD2d9) to be added to the calendar
## Helping contributors with the DCO
@ -137,10 +97,12 @@ When you add someone's DCO, please also add your own to keep a log.
Yes. Nobody should ever push to master directly. All changes should be
made through a pull request.
## Conflict Resolution
## Adding sub-projects
If you have a technical dispute that you feel has reached an impasse with a
subset of the community, any contributor may open an issue, specifically
calling for a resolution vote of the current maintainers to resolve the dispute.
The same voting quorums required (2/3) for adding and removing maintainers
will apply to conflict resolution.
Similar to adding maintainers, new sub projects can be added to LitmusChaos
GitHub organization as long as they adhere to the LitmusChaos vision and mission.
New projects are discussed in either the Contributor Meeting or the Community
slack and requires at least 1 maintainer approval.
If a project is approved, a maintainer will add the project to the LitmusChaos
GitHub organization, and make an announcement on a public forum.
Hello All! This doc contains the "project proposal" for LitmusChaos's participation in the 2021 [Google Season of Docs](https://developers.google.com/season-of-docs). We look forward to a productive and fun experience working with the technical writers that come on board!
## About LitmusChaos
Litmus is a Cloud-Native Chaos Engineering platform that helps SREs & Developers identify and fix weaknesses in their system. It is a CNCF
Sandbox project with adoption across several organizations. Litmus has a thriving community that lives in [Kubernetes Slack](https://kubernetes.slack.com/?redir=%2Farchives%2FCNXNB0ZTN). You can find out more about Litmus and it's evolution from the [blog](https://dev.to/t/litmuschaos) or [videos](https://www.youtube.com/playlist?list=PLmM1fgu30seVGFyNIEyDgAq6KnzgW2p3m).
## State of LitmusChaos Documentation
The steps for getting started with Litmus & procedure for running individual chaos experiments are available in the [Docs Website](https://docs.litmuschaos.io). The Litmus architecture is available in the [Wiki](https://github.com/litmuschaos/litmus/wiki/Litmus-Architecture), with contribution docs
spread across the different sub-projects/repositories contained within the [LitmusChaos](https://github.com/litmuschaos) GitHub organization. This includes
guides detailing how developers can contribute to the [Chaos Experiment suite](https://github.com/litmuschaos/litmus-go/tree/master/contribute/developer-guide) and the [documentation](https://github.com/litmuschaos/litmus-docs/blob/master/CONTRIBUTING.md) itself.
Like minded folks from the community interested in improving documentation have formed a special interest group (SIG-Docs), that meets at every Monday @8PM IST on the community [zoom meet](https://zoom.us/j/91358162694).
Litmus is undergoing a major version change (to 2.0. Currently in beta). The community plans to move to Docusaurus-2 as the platform of choice for hosting the documentation.
## Project Idea: Create Tutorials for Litmus 2.0
### Problems
- The current docs are helpful for intermediate-level chaos-practitioners. We still lack enough simple, easy-to-navigate guides that help beginners
or support quick evaluation.
- Litmus 2.0 offers a newer approach to chaos experimentation compared to the 1.x releases. It uses a portal/dashboard driven approach that allows for
several user flows. These are still not documented.
- Litmus integrates with a wide-variety of tools/frameworks in the CNCF ecosystem - monitoring tools, CI/CD systems etc., which are not documented fully
### Scope of Work
One of the solutions mooted by the community and maintainers team is to create an initial set of "tutorials" based on [GoogleCodeLabs](https://github.com/googlecodelabs/tools) for a list of common user flows - that include usage of the litmus portal (2.0) & integration with other cloud native tools. These tutorials will be featured on the LitmusChaos project/docs website.
While the existing documentation framework (and upcoming one based on docusaurus-2) is expected to contain architecture, experiment and other conceptual
details that will help intermediate-level/advanced chaos practitioners build out their usecases, the tutorials are expected to be what the users will most
benefit from to get started and familiarize themselves with Litmus.
The GSoD collaborator is expected to work on tutorials in the following areas and publish them, while setting up the source artifacts for further scale
and easy contributions from the community.
- How to Get Started: Installation of Litmus via Helm, Portal Set-up, Execution of a Simple Chaos Worflow on a local/remote Target
- How to Construct Custom Chaos Workflows (Using Portal, LitmusCtl)
- How to create teams & manage users
- How to enable GitOps driven Chaos Workflow Management and Execution
- How to Visualize Chaos Using Chaos-Interleaved Application Dashboards
- How to setup Automated Hypothesis Validation using Litmus Probes
- How to use Resilience Grading & Chaos Analytics
- How to Integrate with Gitlab, GitHubActions, Spinnaker, Keptn
### How would we measure success
- Decrease in the number of basic usage related questions on the slack community
- Decrease in the number of GitHub issues related to queries/missing information
- Better SEO for LitmusChaos related concepts
- Increase in non-code/docs contributors to enhance the tutorials (improvements to existing ones or contribute new ones)
### Skills Needed
- The participant is expected to be comfortable in following steps/docs provided by the Litmus developers, following instructions to test them
for correctness & re-write in the tutorial format. This involves basic Git usage, setting up a local development environment for docs and using
a Kubernetes cluster (the instructions and assistance for last requirement will be provided by a volunteer team from the community)
This document serves as a comprehensive record of mentees, mentors, issues, and blogs associated with prominent open source programs such as LFX Mentorship, Google Summer of Code, Google Season of Docs, and Outreachy. Its primary objective is to provide an organized overview of mentoring activities and effectively track the progress made within the project.
| LFX Mentorship | March 1st - April 31st, 2024 | [M R DHANUSH](https://github.com/Dhanush0369) | [Raj Babu Das](https://github.com/imrajdas), [Shubham Chaudhary](https://github.com/ispeakc0de), [NamKyu Park](https://github.com/namkyu1999) | https://github.com/litmuschaos/litmus/issues/4406 | -- |
> Refer to the [CNCF Mentoring](https://github.com/cncf/mentoring) repository for more details.
We sincerely thank all the mentors, mentees, organizations, and programs involved in this project for their invaluable support and contributions. Their dedication and commitment play a vital role in the success of our mentoring initiatives.
Litmus is a toolset to do cloud-native chaos engineering. Litmus provides tools to orchestrate chaos on Kubernetes to help SREs find weaknesses in their deployments. SREs use Litmus to run chaos experiments initially in the staging environment and eventually in production to find bugs, vulnerabilities. Fixing the weaknesses leads to increased resilience of the system.
LitmusChaos is an open source Chaos Engineering platform that enables teams to identify weaknesses & potential outages in infrastructures by
inducing chaos tests in a controlled way. Developers & SREs can practice Chaos Engineering with LitmusChaos as it is easy to use, based on modern
Chaos Engineering principles & community collaborated. It is 100% open source & a CNCF project.
Litmus takes a cloud-native approach to create, manage and monitor chaos. Chaos is orchestrated using the following Kubernetes Custom Resource Definitions (**CRDs**):
LitmusChaos takes a cloud-native approach to create, manage and monitor chaos. The platform itself runs as a set of microservices and uses Kubernetes
custom resources (CRs) to define the chaos intent, as well as the steady state hypothesis.
- **ChaosEngine**: A resource to link a Kubernetes application or Kubernetes node to a ChaosExperiment. ChaosEngine is watched by Litmus' Chaos-Operator which then invokes Chaos-Experiments
- **ChaosExperiment**: A resource to group the configuration parameters of a chaos experiment. ChaosExperiment CRs are created by the operator when experiments are invoked by ChaosEngine.
- **ChaosResult**: A resource to hold the results of a chaos-experiment. The Chaos-exporter reads the results and exports the metrics into a configured Prometheus server.
At a high-level, Litmus comprises of:
Chaos experiments are hosted on <ahref="https://hub.litmuschaos.io"target="_blank">hub.litmuschaos.io</a>. It is a central hub where the application developers or vendors share their chaos experiments so that their users can use them to increase the resilience of the applications in production.
- **Chaos Control Plane**: A centralized chaos management tool called chaos-center, which helps construct, schedule and visualize Litmus chaos workflows
- **Chaos Execution Plane Services**: Made up of a chaos agent and multiple operators that execute & monitor the experiment within a defined
At the heart of the platform are the following chaos custom resources:
- **ChaosExperiment**: A resource to group the configuration parameters of a particular fault. ChaosExperiment CRs are essentially installable templates
that describe the library carrying out the fault, indicate permissions needed to run it & the defaults it will operate with. Through the ChaosExperiment, Litmus supports BYOC (bring-your-own-chaos) that helps integrate (optional) any third-party tooling to perform the fault injection.
- **ChaosEngine**: A resource to link a Kubernetes application workload/service, node or an infra component to a fault described by the ChaosExperiment.
It also provides options to tune the run properties and specify the steady state validation constraints using 'probes'. ChaosEngine is watched by the
Chaos-Operator, which reconciles it (triggers experiment execution) via runners.
The ChaosExperiment & ChaosEngine CRs are embedded within a Workflow object that can string together one or more experiments in a desired order.
- **ChaosResult**: A resource to hold the results of the experiment run. It provides details of the success of each validation constraint,
the revert/rollback status of the fault as well as a verdict. The Chaos-exporter reads the results and exposes information as prometheus metrics.
ChaosResults are especially useful during automated runs.
ChaosExperiment CRs are hosted on <ahref="https://hub.litmuschaos.io"target="_blank">hub.litmuschaos.io</a>. It is a central hub where the
application developers or vendors share their chaos experiments so that their users can use them to increase the resilience of the applications
in production.
## Use cases
- **For Developers**: To run chaos experiments during application development as an extension of unit testing or integration testing.
- **For CI pipeline builders**: To run chaos as a pipeline stage to find bugs when the application is subjected to fail paths in a pipeline.
- **For SREs**: To plan and schedule chaos experiments into the application and/or surrounding infrastructure. This practice identifies the weaknesses in the system and increases resilience.
- **For CI/CD pipeline builders**: To run chaos as a pipeline stage to find bugs when the application is subjected to fail paths in a pipeline.
- **For SREs**: To plan and schedule chaos experiments into the application and/or surrounding infrastructure. This practice identifies the weaknesses
in the deployment system and increases resilience.
## Getting Started with Litmus
[](https://youtu.be/W5hmNbaYPfM)
Check out the <ahref="https://docs.litmuschaos.io/docs/next/getstarted.html"target="_blank">Litmus Docs</a> to get started.
To get started, check out the <ahref="https://docs.litmuschaos.io/docs/introduction/what-is-litmus"target="_blank">Litmus Docs</a> and specifically the <ahref="https://docs.litmuschaos.io/docs/getting-started/installation#prerequisites"target="_blank">Installation section</a> of the <ahref="https://docs.litmuschaos.io/docs/getting-started/installation"target="_blank">Getting Started with Litmus</a> page.
## Contributing to Chaos Hub
Check out the <ahref="https://github.com/litmuschaos/community-charts/blob/master/CONTRIBUTING.md"target="_blank">Contributing Guildelines for the Chaos Hub</a>
Check out the <ahref="https://github.com/litmuschaos/community-charts/blob/master/CONTRIBUTING.md"target="_blank">Contributing Guidelines for the Chaos Hub</a>
## Community
### Community Resources:
Feel free to reach out if you have any queries,concerns, or feature requests
- Give us a star ⭐️ - If you are using LitmusChaos or think it is an interesting project, we would love a star ❤️
- Follow LitmusChaos on Twitter [@LitmusChaos](https://twitter.com/LitmusChaos).
- Subscribe to the [LitmusChaos YouTube channel](https://www.youtube.com/channel/UCa57PMqmz_j0wnteRa9nCaw) for regular updates & meeting recordings.
- To join our [Slack Community](https://slack.litmuschaos.io/) and meet our community members, put forward your questions & opinions, join the #litmus channel on the [Kubernetes Slack](https://slack.k8s.io/).
### Community Meetings
1. Community Meetings
These will be hosted every 3rd Wednesday of every month at 5:30 PM GMT /6:30 PM CEST /10 PM IST
The community meetings will involve discussing community updates, sharing updates on new features/releases and discussing user/adopter stories. Everyone in the community is invited for the same to participate in the LitmusChaos community meetings.
2. Contributor Meetings
These will be hosted every second & last Thursday of every month at 2:30 PM GMT /3:30 PM CEST /7 PM IST
The contributor meetings are only meant to discuss technical and non-technical contributions to LitmusChaos. Maintainers, present Contributors and aspiring contributors are invited to participate in the LitmusChaos contributor meetings to discuss issues, fixes, enhancements and future contributions
Fill out the [LitmusChaos Meetings invite form](https://forms.gle/xYZyZ2gTWMqz7xSs7) to get your Calendar invite!
- [Sync Up Meeting Link](https://harness-io.zoom.us/j/95100368978?pwd=b2VrdCtaakE5U3dhOElFMUJOaXVOUT09)
- [Sync Up Agenda & Meeting Notes](https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q)
- [What if Your System Experiences an Outage? Let's Build a Resilient Systems with Chaos Engineering](https://www.youtube.com/watch?v=3mjGEh905u4&t=1s) @ [CNCF](https://www.youtube.com/@cncf)
- [Enhancing Cyber Resilience Through Zero Trust Chaos Experiments in Cloud Native Environments](https://youtu.be/BelNIk4Bkng) @ [CNCF](https://www.youtube.com/@cncf)
- [LitmusChaos, with Karthik Satchitanand](https://www.youtube.com/watch?v=ks2R57hhFZk&t=503s) @ [The Kubernetes Podcast from Google](https://www.youtube.com/@TheKubernetesPodcast)
- [Cultural Shifts: Fostering a Chaos First Mindset in Platform Engineering](https://www.youtube.com/watch?v=WUXFKxgZRsk) @ [CNCF](https://www.youtube.com/@cncf)
- [Fire in the Cloud: Bringing Managed Services Under the Ambit of Cloud-Native Chaos Engineering](https://www.youtube.com/watch?v=xCDQp5E3VUs) @ [CNCF](https://www.youtube.com/@cncf)
- [Security Controls for Safe Chaos Experimentation](https://www.youtube.com/watch?v=whCkvLKAw74) @ [CNCF](https://www.youtube.com/@cncf)
- [Chaos Engineering For Hybrid Targets With LitmusChaos](https://www.youtube.com/watch?v=BZL-ngvbpbU&t=751s) @ [CNCF](https://www.youtube.com/@cncf)
- [Cloud Native Live: Litmus Chaos Engine and a microservices demo app](https://youtu.be/hOghvd9qCzI)
- [Chaos Engineering hands-on - An SRE ideating Chaos Experiments and using LitmusChaos | July 2022](https://youtu.be/_x_7SiesjF0)
- [Achieve Digital Product Resiliency with Chaos Engineering](https://youtu.be/PQrmBHgk0ps)
- [Case Study: Bringing Chaos Engineering to the Cloud Native Developers](https://youtu.be/KSl-oKk6TPA) @ [CNCF](https://www.youtube.com/@cncf)
- [Cloud Native Chaos Engineering with LitmusChaos](https://www.youtube.com/watch?v=ItUUqejdXr0) @ [CNCF](https://www.youtube.com/@cncf)
- [How to create Chaos Experiments with Litmus | Litmus Chaos tutorial](https://youtu.be/mwu5eLgUKq4) @ [Is it Observable](https://www.youtube.com/c/IsitObservable)
- [Cloud Native Chaos Engineering Preview With LitmusChaos](https://youtu.be/pMWqhS-F3tQ)
- [Get started with Chaos Engineering with Litmus](https://youtu.be/5CI8d-SKBfc) @ [Containers from the Couch](https://www.youtube.com/c/ContainersfromtheCouch)
- CNCF: [Introduction to LitmusChaos](https://www.cncf.io/blog/2020/08/28/introduction-to-litmuschaos/)
- Hackernoon: [Manage and Monitor Chaos via Litmus Custom Resources](https://hackernoon.com/solid-tips-on-how-to-manage-and-monitor-chaos-via-litmus-custom-resources-5g1s33m9)
- [Observability Considerations in Chaos: The Metrics Story](https://dev.to/ksatchit/observability-considerations-in-chaos-the-metrics-story-6cb)
Community Blogs:
- LiveWyer: [LitmusChaos Showcase: Chaos Experiments in a Helm Chart Test Suite](https://livewyer.io/blog/2021/03/22/litmuschaos-showcase-chaos-experiments-in-a-helm-chart-test-suite/)
- Jessica Cherry: [Test Kubernetes cluster failures and experiments in your terminal](https://opensource.com/article/21/6/kubernetes-litmus-chaos)
- Yang Chuansheng(KubeSphere): [KubeSphere 部署 Litmus 至 Kubernetes 开启混沌实验](https://kubesphere.io/zh/blogs/litmus-kubesphere/)
- Saiyam Pathak(Civo): [Chaos Experiments on Kubernetes using Litmus to ensure your cluster is production ready](https://www.civo.com/learn/chaos-engineering-kubernetes-litmus)
- Andreas Krivas(Container Solutions):[Comparing Chaos Engineering Tools for Kubernetes Workloads](https://blog.container-solutions.com/comparing-chaos-engineering-tools)
- Akram Riahi(WeScale):[Chaos Engineering : Litmus sous tous les angles](https://blog.wescale.fr/2021/03/11/chaos-engineering-litmus-sous-tous-les-angles/)
- Prashanto Priyanshu(LensKart):[Lenskart’s approach to Chaos Engineering-Part 2](https://blog.lenskart.com/lenskarts-approach-to-chaos-engineering-part-2-6290e4f3a74e)
- DevsDay.ru(Russian):[LitmusChaos at Kubecon EU '21](https://devsday.ru/blog/details/40746)
## Adopters
@ -55,19 +155,6 @@ Check out the <a href="https://github.com/litmuschaos/litmus/blob/master/ADOPTER
(_Send a PR to the above page if you are using Litmus in your chaos engineering practice_)
## Things to Consider
Some of the considerations that need to be made with Litmus (as a chaos framework), are broadly listed here. Many of these are already being worked on
as mentioned in the [ROADMAP](./ROADMAP.md). For details or limitations around specific experiments, refer to the respective [experiments docs](https://docs.litmuschaos.io/docs/pod-delete/).
- Litmus chaos operator and the chaos experiments run as kubernetes resources in the cluster. In case of airgapped environments, the chaos custom resources
and images need to be hosted on premise.
- When attempting to execute platform specific chaos experiments (like those on AWS, GCP cloud) the access details are passed via kubernetes secrets. Support
for other modes of secret management with Litmus is yet to be tested/implemented.
- Some chaos experiments make use of the docker api from within the experiment pods, and thereby require the docker socket to be mounted. User discretion is
advised when allowing developers/devops admins/SREs access for running these experiments.
- In (rare) cases where chaos experiments make use of privileged containers, the recommended security policies will be documented.
## License
Litmus is licensed under the Apache License, Version 2.0. See [LICENSE](./LICENSE) for the full license text. Some of the projects used by the Litmus project may be governed by a different license, please refer to its specific license.
@ -76,19 +163,7 @@ Litmus is licensed under the Apache License, Version 2.0. See [LICENSE](./LICENS
- Repositories use release version according to the [Semantic Versioning](https://semver.org/)
- Docker images with release tags are pushed upon creation of a github release
- Following are the docker images:
@ -19,8 +32,6 @@
- The chaos chart bundles are created by publishing the github releases for the [chaos-charts](https://github.com/litmuschaos/chaos-charts) repo. This is picked by the chaos [charthub](https://hub.litmuschaos.io) for user download.
- Tracking of releases is done on Github [project board](https://github.com/litmuschaos/litmus/projects)
- The release flow consists of the following steps:
- Sprint Planning based on backlogs & feature requests from the community
@ -32,6 +43,157 @@
- Doc sanity tests
- Litmus release with change log
## Releases
Releases of LitmusChaos will be versioned using dotted triples, similar to
[Semantic Version](http://semver.org/). For the purposes of this document, we
will refer to the respective components of this triple as
`<major>.<minor>.<patch>`. The version number may have additional information,
such as alpha, beta and release candidate qualifications. Such releases will be
considered "pre-releases".
### Major and Minor Releases
Major and minor releases of LitmusChaos will be made from master. Releases of
LitmusChaos will be marked with GPG signed tags and announced at
https://github.com/litmuschaos/litmus/releases. The tag will be of the
format `<major>.<minor>.<patch>` and should be made with the command `git tag
-s <major>.<minor>.<patch>`.
After a minor release, a branch will be created, with the format
`release-<major>.<minor>.x` from the minor tag. All further patch releases will
be done from that branch. For example, once we release `1.0.0`, a branch
`release-1.0.x` will be created from that tag. All future patch releases will be
done against that branch.
### Pre-releases
Pre-releases, such as alphas, betas and release candidates will be conducted
from their source branch. For major and minor releases, these releases will be
done from main. For patch releases, these pre-releases should be done within
the corresponding release branch.
While pre-releases are done to assist in the stabilization process, no
guarantees are provided.
### Upgrade Path
The upgrade path for LitmusChaos is such that the 0.0.x patch releases are
always backward compatible with its major and minor version. Minor (0.x.0)
version will always be compatible with the previous minor release. i.e. 1.2.0
is backwards compatible with 1.1.0 and 1.1.0 is compatible with 1.0.0. There is
no compatibility guarantees for upgrades that span multiple, _minor_ releases.
For example, 1.0.0 to 1.2.0 is not supported. One should first upgrade to 1.1,
then 1.2.
There are no compatibility guarantees with upgrades to _major_ versions. For
example, upgrading from 1.0.0 to 2.0.0 may require resources to migrated or
integrations to change. Each major version will be supported for at least 1
year with bug fixes and security patches.
### Next Release
The activity for the next release will be tracked in the
[project board](https://github.com/litmuschaos/litmus/projects). If your
issue or PR is not present in the project board, please reach out to the maintainers or discuss the same on the #litmus-dev slack channel to create the milestone or add an issue or PR to an existing milestone.
### Support Horizon
Support horizons will be defined corresponding to a release branch, identified
by `<major>.<minor>`. Release branches will be in one of several states:
- __*Next*__: The next planned release branch.
- __*Active*__: The release is a stable branch which is currently supported and accepting patches.
- __*Extended*__: The release branch is only accepting security patches.
- __*LTS*__: The release is a long term stable branch which is currently supported and accepting patches.
- __*End of Life*__: The release branch is no longer supported and no new patches will be accepted.
Releases will be supported at least one year after a _minor_ release. This means that
we will accept bug reports and backports to release branches until the end of
life date. If no new _minor_ release has been made, that release will be
considered supported until 6 months after the next _minor_ is released or one year,
whichever is longer. Additionally, releases may have an extended security support
period after the end of the active period to accept security backports. This
timeframe will be decided by maintainers before the end of the active status.
Long term stable (_LTS_) releases will be supported for at least three years after
their initial _minor_ release. These branches will accept bug reports and
backports until the end of life date. They may also accept a wider range of
patches than non-_LTS_ releases to support the longer term maintainability of the
branch, including library dependency, toolchain (including Go) and other version updates
which are needed to ensure each release is built with fully supported dependencies and
remains usable by LitmusChaos clients. _LTS_ releases can also accept feature backports
to support new Kubernetes releases. The default action has to be reject it though,
for long-term stability. This is still negotiable when the feature is a hard dependency
for a new release of Kubernetes. There should be at least a 6-month overlap between
the end of life of an _LTS_ release and the initial release of a new _LTS_ release.
Up to 6 months before the announced end of life of an _LTS_ branch, the branch may
convert to a regular _Active_ release with stricter backport criteria.
The current state is available in the following tables:
This document captures only the high level roadmap items. For the detailed backlog, see [issues list](https://github.com/litmuschaos/litmus/issues) and [current milestones](https://github.com/litmuschaos/litmus/milestones).
This document captures only the high level roadmap items. For the detailed backlog, see [issues list](https://github.com/litmuschaos/litmus/issues).
### Completed
@ -9,41 +9,64 @@ This document captures only the high level roadmap items. For the detailed backl
- Off the shelf / ready chaos experiments for general Kubernetes chaos
- Self sufficient, Centralized Hub for chaos experiments
- Helm3 charts for Litmus Chaos (operator, kubernetes/generic chaos charts)
- Creation of 'scenarios' involving multiple faults via Argo-based Chaos Workflows (with examples for microservices apps like podtato-head and sock-shop)
- Cross-Cloud Control Plane (Litmus Portal) to perform chaos against remote clusters
- Helm charts for LitmusChaos control plane
- Helm Chart for LitmusChaos execution Plane
- Support for admin mode (centralized chaos management) as well as namespaced mode (multi-tenant clusters)
- Generation of Kubernetes chaos events in experiments
- Continuous chaos via flexible schedules, with support to halt/resume or (manual/conditional) abort experiments
- Provide complete workflow termination/abort capability
- Generation of observability data via Prometheus metrics and Kubernetes chaos events for experiments
- Steady-State hypothesis validation before, during and after chaos injection via different probe types
- Support for Docker, Containerd & CRI-O runtime
- Scaffolding scripts (SDK) to help bootstrap a new chaos experiment in Go, Ansible
- Continuous chaos via flexible scheduling policies, with support to halt/resume or abort experiments
- Ability to customize/override experiment defaults on an instance basis
- Support for scheduling policies (nodeSelector, tolerations) and resource definitions for chaos pods
- ChaosHub refactor for 2.x user flow
- Support for ARM64 nodes
- Minimized role permissions for Chaos Service Accounts
- Scaffolding scripts (SDK) to help bootstrap a new chaos experiment in Go, Python, Ansible
- Support orchestration of non-native chaos libraries via the BYOC (Bring-Your-Own-Chaos) model
- Define creation of scenarios involving multiple experiments via Argo-based Chaos Workflows
- Support for OpenShift platform
- Gitlab e2e pipeline for chaos experiments
- Documentation (user & developer guides, integration with other chaos tools)
- Add architecture details & design resources
- Define community sync up schedule
- Workflow YAML linter addition
- Integration tests & e2e framework creation for control plane components and chaos experiments
- Documentation (usage guide for chaos operator, resources & developer guide for new experiment creation)
- Improved documentation and tutorials for Litmus Portal based execution flow
- Add architecture details & design resources
- Define community sync up cadence and structure
------
### In-Progress (Near-term)
### In-Progress (Under Design OR Active Development)
- Improved runtime validation of chaos dependencies via litmus admission controllers
- Support for Kubernetes pod scheduling policies (affinity rules for chaos resources)
- A UI portal for LitmusChaos to trigger and schedule chaos experiments & workflows. Ongoing development [here](https://github.com/litmuschaos/litmus/tree/master/litmus-portal/)
- Off the shelf chaos-integrated grafana dashboards for OpenEBS, Kafka, Cassandra [#1280](https://github.com/litmuschaos/litmus/issues/1280)
- Support for user defined chaos experiment result definition (ex:json blob as chaos result) [#1254](https://github.com/litmuschaos/litmus/issues/1254)
- Create and functionalize Special Interest Groups (SIGs) around specific areas in the project to take the roadmap forward
- Native Chaos Workflows with redesigned subscriber to improve resource delegation, enabling seamless and efficient execution of chaos workflows within Kubernetes clusters.
- Introduce transient runners to improve resource efficiency during chaos experiments by dynamically creating and cleaning up chaos runner instances.
- Implement Kubernetes connectors to enable streamlined integration with Kubernetes clusters, providing simplified authentication and configuration management.
- Integrate with tools like K8sGPT to generate insightful reports that identify potential weaknesses in your Kubernetes environment before executing chaos experiments.
- Add Terraform support for defining and executing chaos experiments on infrastructure components, enabling infrastructure-as-code-based chaos engineering.
- Add SDK support for Python and Java, with potential extensions to other programming languages based on community interest.
- Include in-product documentation, such as tooltips, to improve user experience and ease of adoption.
- Implement the litmus-java-sdk with a targeted v1.0.0 release by Q1.
- Integrate distributed tracing by adding attributes or events to spans, and create an OpenTelemetry demo showcasing chaos engineering observability.
- Enhance the exporter to function as an OpenTelemetry collector, providing compatibility with existing observability pipelines.
- Add support for DocumentDB by replacing certain MongoDB operations, improving flexibility for database chaos.
- Upgrade Kubernetes SDK from version 1.21 to 1.26 to stay aligned with the latest Kubernetes features and enhancements.
- Refactor the chaos charts to:
- Replace latest tags with specific, versioned image tags.
- Consolidate multiple images into a single optimized image.
- Update GraphQL and authentication API documentation for improved clarity and user guidance.
- Add comprehensive unit and fuzz tests to enhance code reliability and robustness.
- Implement out-of-the-box Slack integration for better collaboration and monitoring during chaos experiments.
------
### Backlog
### Backlog
- Pre-defined chaos workflows to inject chaos during application benchmark runs
- Support for cloudevents compliant chaos events
- Increased chaos metrics via prometheus chaos exporter
- Migration to native Kubernetes ansible modules for ansible-based experiments
We are extremely grateful for security researchers and users that report vulnerabilities to the LitmusChaos Open Source Community. All reports are thoroughly investigated by a set of community members.

2. Send an email to `litmuschaos@gmail.com` detailing the issue and steps
to reproduce.
The reporter(s) can expect a response within 24 hours acknowledging
the issue was received. If a response is not received within 24 hours, please
reach out to any committer directly to confirm receipt of the issue.
To make a report, submit your vulnerability to all security contacts of LitmusChaos [listed below](#security-contacts). This allows triage and handling of the vulnerability with standardized response times.
### When Should I Report a Vulnerability?
- You think you discovered a potential security vulnerability in LitmusChaos
- You are unsure how a vulnerability affects LitmusChaos
- You think you discovered a vulnerability in another project that LitmusChaos depends on. For projects with their own vulnerability reporting and disclosure process, please report it directly there.
### When Should I NOT Report a Vulnerability?
- You need help tuning LitmusChaos components for security - please discuss this is in the various LitmusChaos community channels
- You need help applying security-related updates
- Your issue is not security-related
## Review Process
Once a committer has confirmed the relevance of the report, a draft security
advisory will be created on Github. The draft advisory will be used to discuss
the issue with committers, the reporter(s), and litmuschaos's security advisors.
If the reporter(s) wishes to participate in this discussion, then provide
reporter Github username(s) to be invited to the discussion. If the reporter(s)
does not wish to participate directly in the discussion, then the reporter(s)
can request to be updated regularly via email.
If the vulnerability is accepted, a timeline for developing a patch, public
disclosure, and patch release will be determined. If there is an embargo period
on public disclosure before the patch release, an announcment will be sent to
the security announce mailing list announcing the scope of the vulnerability, the date of availability of the
patch release, and the date of public disclosure. The reporter(s) are expected
to participate in the discussion of the timeline and abide by agreed upon dates
for public disclosure.
## Security Vulnerability Response
Each report is acknowledged and analyzed by the security contacts within 5 working days. This will set off the [Security Release Process](#process).
Any vulnerability information shared with the LitmusChaos security contacts stays within LitmusChaos project and will not be disseminated to other projects unless it is necessary to get the issue fixed.
## Public Disclosure Timing
A public disclosure date is negotiated by the LitmusChaos Security Committee and the bug submitter. We prefer to fully disclose the bug as soon as possible once a user mitigation is available. It is reasonable to delay disclosure when the bug or the fix is not yet fully understood, the solution is not well-tested, or for vendor coordination. The timeframe for disclosure is from immediate (especially if it is already publicly known) to a few weeks. For a vulnerability with a straightforward mitigation, we expect report date to disclosure date to be on the order of 7 days. The LitmusChaos Security Committee holds the final say when setting a disclosure date.
## Process
If you find a security-related bug in LitmusChaos, we kindly ask you for responsible disclosure and for giving us appropriate time to react, analyze, and develop a fix to mitigate the found security vulnerability. The security contact will investigate the issue within 5 working days.
The team will react promptly to fix the security issue and its workaround/fix will be published on our release notes.
## Supported Versions
See the [litmuschaos release page]()
for information on supported versions of litmuschaos. Any `Extended` or `Active`
release branch may receive security updates. For any security issues discovered
on older versions, non-core packages, or dependencies, please inform committers
using the same security mailing list as for reporting vulnerabilities.
## Joining the security announce mailing list
Any organization or individual who directly uses litmuschaos and non-core
packages in production or in a security critical application is eligible to join
the security announce mailing list. Indirect users who use litmuschaos through a
vendor are not expected to join, but should request their vendor join. To join
the mailing list, the individual or organization must be sponsored by either a
litmuschaos committer or security advisor as well as have a record of properly
handling non-public security information. If a sponsor cannot be found,
sponsorship may be requested at `litmuschaos@gmail.com`. Sponsorship should not
be requested via public channels since membership of the security announce list
is not public.
## Security Vulnerability Response
Each report is acknowledged and analyzed by the security contacts within 5 working days. This will set off the [Security Release Process](#process).
Any vulnerability information shared with the LitmusChaos security contacts stays within LitmusChaos project and will not be disseminated to other projects unless it is necessary to get the issue fixed.
## Public Disclosure Timing
A public disclosure date is negotiated by the LitmusChaos Security Committee and the bug submitter. We prefer to fully disclose the bug as soon as possible once a user mitigation is available. It is reasonable to delay disclosure when the bug or the fix is not yet fully understood, the solution is not well-tested, or for vendor coordination. The timeframe for disclosure is from immediate (especially if it is already publicly known) to a few weeks. For a vulnerability with a straightforward mitigation, we expect report date to disclosure date to be on the order of 7 days. The LitmusChaos Security Committee holds the final say when setting a disclosure date.
## Process
If you find a security-related bug in LitmusChaos, we kindly ask you for responsible disclosure and for giving us appropriate time to react, analyze, and develop a fix to mitigate the found security vulnerability. The security contact will investigate the issue within 5 working days.
The team will react promptly to fix the security issue and its workaround/fix will be published on our release notes.
## Security Contacts
Defined below are the security contacts for this repository. In case you identify any security issue, please reach out to all of the security contacts.
Here is a list of training and courses related to LitmusChaos available out there. LitmusChaos is a CNCF project which does not endorse any particular course.
If you have created a training or course for LitmusChaos and wish to add the same, please raise a PR against this document.
This is a list of users that are using & benefited by LitmusChaos. Please send a PR to this file (along with details [here](./adopters/users))
to add yourselves.
| User | Usecase | Details |
| :--- | :--- | :--- |
| [Laura Henning](https://github.com/LaumiH)|Reasearch on how to do chaos engineering in minikube clusters like [these](https://github.com/LaumiH/k8sstuff)|[My Story](adopters/users/Laura_Henning.md) |
| [Johnny Jacob](https://github.com/johnnyjacob)|Testing deployment designs for resiliency|Coming Soon!|
| [Jayesh Kumar Tank](https://github.com/k8s-dev)|Create Cloud Native Validation Suite on [Microservices Application](https://github.com/k8s-dev/microservices-demo)|[My Story](adopters/users/Jayesh_Kumar_Tank.md)|
| [Bhaumik Shah](https://github.com/Bhaumik1802)|Use LitmusChaos for Kafka Resiliency on Dev/Staging|[My Story](adopters/users/Bhaumik_Shah.md)|
| [Jayadeep KM](https://github.com/kmjayadeep)|Ensure reliability of microservices|[My Story](adopters/users/Jayadeep_KM.md)|
| [Shantanu Deshpande](https://github.com/ishantanu)|Chaos Engineering Practice as SRE|[My Story](adopters/users/Shantanu_Deshpande.md)|
| [Omar Hanafi](https://github.com/oHanafi)|Performance Anomaly Detection in Cloud and Containerized Applications|Coming Soon!|
Anheuser-Busch InBev SA/NV, commonly known as AB InBev, is a Belgian multinational drink and brewing company based in Leuven, Belgium. AB InBev has a global functional management office in New York City, and regional headquarters in São Paulo, London, St. Louis, Mexico City, Bremen, Johannesburg and others.
## Why Do We Use Litmus:
After an evaluation period of some Chaos Engineering tools, we chose Litmus because it is a more mature tool that would meet most of our needs. We are in the implementation, configuration, and process definition phase.
AB-Inbev's BEES is a huge project that has hundreds of microservices, it has been a great challenge to adapt Litmus in this process, making customizations and counting on the help of the Litmus community to evolve the tool and thus achieve our goal of making it available to the teams.
[Adidas](https://adidas.com) is a German multinational corporation, founded and headquartered in Herzogenaurach, Bavaria, that designs and manufactures shoes, clothing and accessories.
## Why do we use Litmus.
In adidas, we started months ago with a new initiative about how to implement chaos engineering practices in order to provide the engineering teams a guide and tools about how to test the resilience of the applications through chaos engineering. With this goal in mind, we started to define some best practices and processes to be shared with our engineering team, and we started to evaluate a few tools.
After an evaluation of different tools, we decided to go ahead with Litmus Chaos.
## How are we using Litmus chaos:
Applications/Workloads or Infra that are being subjected to chaos by Litmus
- Litmus chaos will be provided by our platform team as part of their services. It will be running on kubernetes and will be available for engineering teams.
- Experiments, like pod deletion, network latency or packetloss, applied between functional dependencies like checkout & Payments, login, order creation...
- Not applied in production yet.
## Why was Litmus chosen & How it is helping you
We defined a set of priorities (with different value) and stoppers, we analyzed the tooling and selected the most valued one:
- Prio 1 & Stoppers if not: Full detailed documentation in English available, API / Shared Libraries, Control Injecting Failure, Permissions scope isolated, Authorization, chaos Scenarios - Parallel, works with: Kuberentes, OpenSource
- Prio 2: Installation and Management, Metrics / Reporting, Halt attack, Automatic rollback, High/admin permissions on the node, Chaos scenarios as code, chaos attacks - Serial, Custom or Specialized Attacks, Custom or Specialized Scenarios, Works with: AWS
- Prio 3: Access to the logs, Scheduling attacks, Health Checks, Application Attacks, Target Randomization, Network Attacks, VMs Attacks, Public API, Web UI
## How do we use Litmus
- Staging/pre-prod
- Planned to go to production and through CI/CD pipelines.
If you would like your name (as standalone user) or organization name to be added to the Adopters.md, please provide a preferred contact handle like GitHub id, Twitter id, LinkedIn id, website etc.
[Amadeus](https://amadeus.com/) technology powers the global travel and tourism industry.
From airlines to search engines, travel agencies to hotels, the world's top travel brands rely on Amadeus to help create exceptional traveler experiences.
## How do we use Litmus.
We are using Litmus for the following 3 topics:
- **Identify weakness** by injecting a wide variety of disruptions to catch bugs and gaps in the stability of our applications
- **Build confidence in the resiliency** by introducing disruptions that activate our resiliency mechanisms to ensure they are working as expected.
- **Validate fixes** by recreating specific conditions and disruptions, we can reproduce complex production incidents and validate the fixes deployed to resolve them.
## Benefits in using Litmus.
We are finding the following benefits in Litmus
- **Open Source**: Allows us to contribute new features and fix bugs based on feedback from our Chaos users.
- **QA-Friendly**: Through the UI and YAML-based configuration, it allows QA profiles with limited SRE knowledge to easily create their own experiments.
- **Extensibility**: As Chaos Scenarios are based on ArgoWorkflow, it allows for the inclusion of custom steps, such as updating a configuration before/after the experiments.
- **Variety of Disruption Types**: Which satisfies our current Chaos users.
[Anuta Networks](https://www.anutanetworks.com/) is a leading provider of Web-Scale On-prem and Cloud Network Orchestration and Assurance software for the branch, campus, data center and service provider-managed multi-vendor enterprise networks.
## Why do we need Chaos Tooling
We wanted to test the resiliency of our platform and also verify observability of stack. Below are the primary reasons to go with Litmus
- Resiliency of k8s Infrastructure - OnPrem and Cloud
- Observability Validations
## What makes us to go with Litmus
- It's an Open Source project
- It has a wide selection of experiments available
- K8s Native Implementation
- It's a CNCF sandbox project
- It has a vibrant community
- There are frequent releases and it is well maintained
Developed and donated by API7.ai, Apache APISIX is an open source, dynamic, scalable, and high-performance cloud native API gateway for all your APIs and microservices. It is a top-level project of the Apache Software Foundation.
You can use APISIX API Gateway as a traffic entrance to process all business data. It offers features including dynamic routing, dynamic upstream, dynamic certificates, A/B testing, canary release, blue-green deployment, limit rate, defense against malicious attacks, metrics, monitoring alarms, service observability, service governance, and more.
## How do we use Litmus
We practice chaos engineering using Litmus in the Apache APISIX Ingress.
Litmus also helped us find hidden bugs.
Project website: https://apisix.apache.org/
This is the text version of my online sharing content. https://dev.to/apisix/building-a-more-robust-apache-apisix-ingress-controller-with-litmus-chaos-3ldn
CI&T is an information technology and software engineering company. CI&T operates as a global systems integrator headquartered in the Brazilian city of Campinas with offices in other regions of South America, United States, Europe, and Asia.
## Why Do We Use Litmus:
After an evaluation period of some Chaos Engineering tools, we chose Litmus because it is a more mature tool that would meet most of our needs. We are in the implementation, configuration, and process definition phase.
AB-Inbev's BEES is a huge project that has hundreds of microservices, it has been a great challenge to adapt Litmus in this process, making customizations and counting on the help of the Litmus community to evolve the tool and thus achieve our goal of making it available to the teams.
The [CNF Test Suite](https://github.com/cncf/cnf-testsuite) is an open source test suite for Cloud Native Network Function (CNF) developers and network operators to evaluate how well a telecom service (a platform or network application, aka CNF) follows cloud native principles and best practices, like resilience.
## Why do we use Litmus
Subjecting the telecom services to chaos testing is useful in finding failure points and suggesting remediation steps toward improving resilience. Therefore, we chose LitmusChaos to create resilience tests in the CNF Test Suite.
## How do we use Litmus
By including LitmusChaos experiments in the CNF Test Suite's workload tests, we are able to run telecom services in resilience experiments including: **pod-network-duplication**, **pod-network-corruption**, **pod-io-stress**, **pod-memory-hog**, **pod-delete**, **disk-fill**, **pod-network-latency**, and more. This helps the end user see how their service behaves when exposed to common application failures.
## Benefits in using Litmus
The benefits we see in LitmusChaos are: it is part of the CNCF ecosystem, it is designed for Kubernetes workloads, it has a vibrant community and it is well maintained.
[Container Solutions](https://www.container-solutions.com/) We bring culture, strategy, and technology together —to make sure your Cloud Native transformation is done right.
## How do we use Litmus
We have used Litmus to build out Chaos Engineering platforms with some of our large E-Commerce customers to improve resilience for big sales periods such as Black Friday.
We looked into quite a few tools, and Litmus provided us with the flexibility we needed, whilst bootstrapping many of the components we would have to write ourselves.
We also used Litmus Chaos experiments when discussing some of our customer's architecture constraints, and showing them real world cases of how to make Kubernetes more resilient.
One concrete use case was our customer wanting to build a cluster per app, whilst we wanted to build bigger clusters for easier management. We would use Litmus to show what application failure looks like on one part of the cluster, and show global resilience in their cluster when this happens.
The Litmus community and *product have been a great addition to our tool stack, and provided many benefits for us.
[Emirates NBD](https://www.emiratesnbd.com) is Dubai's government-owned bank and is one of the largest banking groups in the Middle East in terms of assets.
### **Why do we use Litmus.**
Resilience is a key aspect in creating fault-tolerant environments, and leveraging tools like Litmus has been instrumental in automating resilience testing. Litmus has enabled us to simulate real-time chaos scenarios, allowing us to thoroughly verify the robustness of both our infrastructure and applications.
### **How do we use Litmus.**
We began with a proof of concept (POC) on a playground cluster. While we explored other tools during this process, Litmus stood out significantly, not only in its capabilities but also due to its excellent user interface. Although we faced a few challenges during the initial setup of Litmus on OpenShift, the team provided timely support, helping us overcome these obstacles and successfully complete the POC.
Now, we've successfully deployed Litmus in a non-production cluster environment, and our SRE team is in the process of transitioning from manual chaos testing to automated chaos tests. This shift will enable us to schedule, automate, and efficiently track the outcomes of these tests, enhancing the resilience of our systems.
[FIS](https://www.fisglobal.com/) is an American multinational corporation which offers a wide range of financial products and services.
## Why do we use Litmus.
We at FIS Global, have been embarking on to larger SRE program to transform platform teams from purely operations focused to bring in SRE/Automation culture and mindset. As part of that larger effort, Chaos/Resiliency Engineering is identified as key program to improve stability and availability thus improve overall reliability of applications across organization and provide superior customer experience. We have chosen Litmus as a Chaos Engineering Tool because, It
Fulfills all of resiliency testing requirements
Has good and responsive community
Has good documentation
is built on loosely coupled architecture
Has nice dashboard features
Exposes APIs to integrate with CI/CD pipelines
## Where we are using Litmus
Currently, using in Applications/Workloads but idea is to expand to Infrastructure, e.g. using network latency to identify and understand resiliency of upstream application/component when downstream application/component is slow, Use Pod delete under production load to understand the application's ability to self heal.
Simulate experiments using Litmus to understand utilization of JVM's key resources such as thread pool, connection pool, heap memory etc
Kafka Resiliency : Kafka itself is a complex distributed architecture solution, planning to use Litmus network and memory hog experiments to simulate latency between Producer and Broker, Consumer and Broker, Leader and Follower, and also trying to understand how cluster behaves under Memory and CPU pressure.
Integrate Litmus with CI/CD over APIs so that Chaos Testing can be autonomous
[Halodoc](https://www.halodoc.com/) is a secure health-tech platform with a mission to simplifying access to healthcare by connecting millions of patients with licensed doctors, insurance, labs, and pharmacies in one simple mobile application. Halodoc’s innovative technology, nimble services, and patient focus enable a host of solutions including 24/7 doctor tele consultation via chat, voice or video; medicine purchase & delivery; lab services at home; and strong customer support.
Halodoc is the 2018 Forbes Indonesia Choice Award winner and Galen Growth’s 2018 Most Innovative HealthTech Startup in Asia, a testimony to a team of compassionate, innovative, trustworthy and agile people who take ownership of their work in building the most trusted digital healthcare company.
### **Why we explored litmus**
We wanted a tool that we could leverage to test the resiliency of multi k8s cluster workloads in a private cloud,
after evaluating different tools of similar flavour, we wanted to exercise our chaos experiments using Litmus, as it has the following benefits.
- It is designed for Kubernetes workload
- It has the wide range of chaos experiments to perform on k8s workload and Infrastructure
- It has litmus portal as control plane to target chaos experiments against multiple k8s cluster within our organisation.
- It has prometheus integration, able to see in litmus portal dashboard about how each of the workflow chaos experiments perform.
- It fits into our gitops flow to enable end to end automation.
### How we use litmus
At Halodoc we use Litmus to validate the resiliency of our private aws managed eks by covering the following areas.
- Testing resiliency of Control plane Kubernetes Infrastructure
- Validating the HA of different control plane services
- Target SRE tools at k8s clusters, benchmark it based on several parameters.
### Benefits of litmus
Litmus has has a wide variety of chaos experiments for Kubernetes workload and Infrastructure and provides a very easy way for end-to-end automation of resiliency test cases.
[iFood](https://ifood.com.br) is a Brazilian online food ordering and food delivery platform. It operates mainly in Brazil and Mexico, after it merged its businesses in Argentina and Colombia with rival PedidosYa.
## How are we using Litmus
We have been using Litmus 2.X at iFood for a couple of months, replacing chaostoolkit as it provides a wider range of experiments out-of-the-box. We've started using it to validate the fallback mechanisms of critical services monthly. Right now, we are expanding its usage to go further and inject failures to drop access to databases, redis, Kafka and AWS services and learn from it and take some countermeasures to improve the critical services.
I hope Litmus to become the de-facto tool to implement Chaos Engineering in a simple manner.
InfraCloud Technologies is a Kubernetes focused B2B Open Source Cloud Native Computing company which has been building products, services, and solutions to modernize applications and infrastructure.
InfraCloud was one of the first Kubernetes partners and have been contributing to the open source community around cloud-native technologies. It has been growing almost 100% for last few years consistently.
Company website: https://www.infracloud.io/
Company GitHub: https://github.com/infracloudio
## Why Do We Use Litmus:
At InfraCloud, we are using Litmus to develop Resiliency Frameworks.
To simulate various Chaos scenarios using fault injection templates provided by Litmus. Litmus also helps to incorporate custom fault templates developed using AWS SSM documents.
## How do we use Litmus.
Currently, we have tested with different kind of scenarios including faults like pod deletion, network latency, resource stressing, network partitioning in databases, and many more.
## Benefits in using Litmus.
Easy deployment.
Easy Fault injection.
Custom Grading for experiments
SSM integration helps to inject fault in both EKS and external AWS components.
[Kitopi](https://www.kitopi.com) is world's leading managed cloud kitchen platform.
## Why do we use Litmus.
We started out using Litmus when searching for chaos testing tool, to continuously test our resiliency. It turned out to be really easy to implement and intuitive to use.
## How do we use Litmus.
On our stage environment we run nightly pipelines consisting of:
- Traffic source (Locust.io performance tests)
- Litmus Chaos experiments
- Results evaluation using Keptn
Which provide us with the information about
## Benefits in using Litmus.
Litmus let's us easily incorporate simple chaos experiments into already existing clusters. Since it provides native Kubernetes support, it's easy to understand and modify. Also, LitmusChaos community is nothing short of exceptional, so that's a bonus!
Founded in December 2011, [Klanik](https://www.klanik.com/en/atypik-company-2/#histoire) has built its success on its award-winning Consultant-Centric approach, defining us as a great place to work. #Happyatwork2021 This model is materialized by unprecedented personal and professional development programs:
## **Why we explored litmus**
We wanted a tool that we could leverage to test the containerized control plane of our clients public, private & hybrid cloud.
When we came across Litmus, we wanted to give it a try.
... To be continued ;)
<!--- It is designed for Kubernetes workload
- It has wide variety of generic test cases for Kubernetes workload and Infrastructure
- It can be used to trigger customized validations
- It is easy to Integrate with our existing automation framework
## How we explored litmus
We explored Litmus to validate the resiliency of our private telco cloud by covering the following areas.
- Testing resiliency of Control plane Kubernetes Infrastructure
- Validating the HA of different control plane services
- Testing inter dependency among different open source applications
## Benefits of litmus
Litmus has has a wide variety of generic test cases for Kubernetes workload and Infrastructure and provides a very easy way for end-to-end automation of resiliency test cases. -->
[Kublr](https://kublr.com/) is an Enterprise-ready orchestration platform to centrally deploy, run, and manage Kubernetes clusters across all of your environments with a comprehensive container orchestration platform that finally delivers on the Kubernetes promise. Optimized for large enterprises, Kublr is designed to provide multi-cluster deployments and observability. We made it easy, so your team can focus on what really matters: innovation and value generation.
### **Applications/Workloads or Infra that are being subjected to chaos by Litmus**
Kublr-provisioned Kubernetes clusters; we apply litmus chaos load to stress-test the clusters and identify the weak spots and components prone to failures under stress when customer applications stress the system
### **Why was Litmus chosen & how it is helping you (a brief description on the usecase)**
Litmus is well-documented, well-supported open source tool with a great community and development team. It is flexible and allows us to adjust the chaos tests any way we need.
### **Are you using it as part of devtest, CI/CD, in staging/pre-prod/prod or other**
This is currently used as a part of development testing and adhoc experiments, although we are working on including litmus chaos tests into our standard automated QA process
[Lenskart](https://www.lenskart.com) is one of the premium eyewear companies with a presence in the retail sector. [Lenskart](https://www.lenskart.com) has a
lot of flagship products some of them like BluO and airflex which are very popular among customers. [Lenskart](https://www.lenskart.com) also has subsidiary
retail eyewear companies like [John&Jacobs](https://www.johnjacobseyewear.com/) and [Aqualens](https://aqualens.in/). [Lenskart](https://www.lenskart.com)
is not only a retail shop but has an omnichannel business model which serves customer from online and offline stores spread not only across India but also
expanding gloablly.
## **Motivation**
[Lenskart](https://www.lenskart.com) not only serves fashion products to customer but also power eyeglasses and contact lenses which are custom made for every
customer. This makes it a very niche product as well as an company serving essentials commodities for it's customer. Delivery and ease of ordering from online
and offline stores is what we take very seriously. Any downtime could cost not only business but also could impact delivery of his/her eyeglasses or contact
lenses. As an engineering team who is always accepting challenges , we started looking at chaos engineering very seriously once we also faced some major
downtimes in our platform due to system failure or DDOS attacks. It didn't take us time to realize that just running shop on the cloud was not good enough
we have to be prepared for chaotic situations, not just that, we also have to simulate it and find weak points in our architecture. So, we first started with manual
and scripted chaos, but the problem was that they were hard to reproduce and involved a lot of effort to plan and execute them. Then we started exploring
if we could have a framework which could help us maintain our chaos experiments in form of templates. After looking at a couple of tools we narrowed down on
Litmus.
## **How are we using Litmus**
We started using Litmus from our devops kubernetes cluster , where we first started to test stateful service like redis cluster or elasticsearch. We then
gradually started testing our own application services using Litmus. We have gradually moved from our integration environments to pre-production. We are regularly maturing
our hypothesis and writing relevant experiments for these services. Currently, we haven't integrated these experiments into our CI/CD pipelines but in the future we have
plans to run these experiments with every release.
## **Benefits of using litmus**
We are quite new to Litmus framework but what we have really gained from Litmus is templating of our chaos experiments and able to maintain them in our CVS.
This has really helped us with the reproducibility of the experiments. It has opened new opportunities for us where we can write our own custom experiments
which might be very specific targetting our in-house and public services. We have started ranking the experiments and adding them to our experiment suite so that we
could now measure the reasiliency of our services. This would also help us in future to be more targeted in our resiliency journey.
[NEUDESIC](https://www.neudesic.com/) has assembled a fully-managed partner ecosystem of leading cloud and independent software partners that provide us maximum flexibility to architect technology, strategies and solutions that drive business growth. Neudesic offers decades of experience, proven frameworks and a disciplined approach to quickly deliver reliable, quality solutions that help you go to market faster and get a leg up on your competition.
### Why do we use litmus
We are using litmus chaos to inject faults in our aks environments. Before arriving at litmus we explored other tools , but found litmus to be the most well rounded one and the one that aligned closest to the principles of chaos
### How do we use litmus
We are using litmus in our pre prod environments in the ci cd stage as a gate for releases
### Benefits in using Litmus
The chaos gated deployments make use of the in-built git ops integration in litmus
[Orange](https://www.orange.com/en/home) is a leading network operator for mobile, broadband internet, and fixed line telecommunications. It has its own new Infrastructure as a Service solution designed to host different types of Workloads.
### **Why we explored litmus**
We wanted a tool that we could leverage to test the containerized control plane of our private cloud,
so we came across Litmus, it has the following benefits.
- It is designed for Kubernetes workload
- It has wide variety of generic test cases for Kubernetes workload and Infrastructure
- It can be used to trigger customized validations
- It is easy to Integrate with our existing automation framework
### How we explored litmus
We explored Litmus to validate the resiliency of our private telco cloud by covering the following areas.
- Testing resiliency of Control plane Kubernetes Infrastructure
- Validating the HA of different control plane services
- Testing inter dependency among different open source applications
### Benefits of litmus
Litmus has has a wide variety of generic test cases for Kubernetes workload and Infrastructure and provides a very easy way for end-to-end automation of resiliency test cases.
[OutSystems](https://www.outsystems.com/) is a low-code development platform which provides tools for companies to develop, deploy and manage omnichannel enterprise applications. OutSystems was founded in 2001 in Lisbon, Portugal. In June 2018 OutSystems secured a $360M round of funding from KKR and Goldman Sachs and reached the status of Unicorn.
### **Leveraging Litmus Chaos Engineering in Kubernetes Infrastructure:**
We have a Kubernetes-based infrastructure pivotal to our operations, where reliability and resilience are paramount. Recognizing the need for robust testing methodologies, we turned to Litmus Chaos Engineering to fortify our systems against potential failures and to ensure seamless operations even under adverse conditions.
### **Why do we use Litmus:**
Litmus emerged as our tool of choice due to its comprehensive suite of chaos engineering capabilities tailored specifically for Kubernetes environments. Its versatility in orchestrating controlled chaos experiments aligns perfectly with our commitment to enhancing system reliability while maintaining agility.
### **Use Case and Implementation:**
We have seamlessly integrated Litmus Chaos Engineering into various stages of our development and deployment pipeline, spanning from development and testing to staging and production environments. Leveraging Litmus, we meticulously craft and execute chaos experiments, meticulously observing how our infrastructure behaves under stress, and ensuring it meets our predefined Service Level Objectives (SLOs) and Service Level Indicators (SLIs).
### **Achievements:**
Our journey with Litmus Chaos Engineering has been marked by significant milestones:
- Successful deployment of Chaos Center and Litmus Delegate, empowering us with centralized chaos management capabilities.
- Establishment of secure access to Chaos Center through HTTPS, coupled with domain customization for enhanced usability.
- Implementation of WAF ACL to restrict access to Chaos Center, ensuring secure interactions.
- Integration of Azure SSO for streamlined user management and authentication.
- Seamless connectivity between Chaos Center and target nodes, facilitating efficient chaos experimentation.
- Execution of numerous successful experiments, validating the resilience and scalability of our infrastructure.
### **Next Steps:**
As we continue to harness the power of Litmus Chaos Engineering, we remain committed to expanding our chaos engineering initiatives, further refining our chaos experiments, and continually enhancing the resilience of our Kubernetes infrastructure.
[PokerBaazi](https://www.pokerbaazi.com/) is India's biggest online poker platform providing an unparalleled world-class experience. Home Grown and 8 years of calling it our own, today, we have a strong and loyal user base of 40 LAC+ Indians.
### **Applications/Workloads or Infra that are being subjected to chaos by Litmus.**
At PokerBaazi, we leverage Litmus Chaos to subject critical components of our infrastructure to controlled chaos experiments. These include:
- Microservices Infrastructure: Our backend is designed as a microservices architecture, running on Kubernetes. We conduct experiments on inter-service communication, API latencies, and service resilience during node failures or resource constraints.
- Load Balancers and Networking: We simulate disruptions in networking, such as packet drops or DNS failures, to ensure our applications maintain connectivity and continue serving users.
- Application Workloads: High-demand applications like our gaming engine and payment/promotions api's are put under stress to evaluate their fault tolerance and recovery mechanisms during peak loads or unexpected outages.
### **Why do we use Litmus.**
We chose Litmus Chaos for several compelling reasons:
- Kubernetes-Native Integration: Since our infrastructure is heavily Kubernetes-based, Litmus seamlessly integrates with our stack, making it a natural fit.
- Ease of Use and Open-Source: Litmus offers a user-friendly interface along with robust documentation, allowing our teams to adopt it quickly without steep learning curves.
- Custom Experiment Support: The ability to create tailored chaos experiments aligned with our specific workloads ensures we can target critical failure scenarios unique to our ecosystem.
- Community Support and Scalability: Being an open-source project with an active community, Litmus evolves rapidly, allowing us to leverage the latest chaos engineering methodologies and tools.
Litmus has been instrumental in identifying hidden weaknesses in our system, such as unexpected dependencies or cascading failures. This has enabled us to proactively address potential issues, enhance system resilience, and meet our uptime commitments.
### **Where are we using Litmus.**
We use Litmus Chaos in various environments to ensure robust testing at every stage of development:
- Development: Initial chaos experiments are conducted in isolated dev environments to identify basic resilience issues and ensure service fault tolerance during early-stage development.
- Staging/Pre-Production: In staging, we run more comprehensive chaos scenarios simulating real-world failures, such as pod crashes, resource exhaustion, or external API downtime, to ensure the production-like environment is resilient.
- Production: Selected, low-risk chaos experiments are conducted in production under strict supervision to verify real-time system robustness and validate SLAs in live conditions.
Litmus Chaos has transformed our approach to building and maintaining a highly resilient gaming platform, allowing us to deliver exceptional user experiences while preparing for the unexpected.
[Pole Emploi](https://www.pole-emploi.fr/accueil/) is the public employment service in France.
Its roles are, on the one hand, to compensate job seekers and help them find a job, and on the other hand, to guide companies in their recruitment.
In order to do that, Pôle emploi's agents are mobilized on a daily basis to anticipate trends, innovate and bring together key players and relays in the field.
### **Why we explored litmus**
With around 5.6 millions end-users, and applications that generate hudge traffic and datas,
the resiliency of our apps and infrastructures is a must-have!
We explored Litmus to validate and increase the resiliency of our private and public Kubernetes clouds.
- Testing resiliency of Kubernetes Infrastructure Components
- Testing resiliency of Public applications hosted on Kubernetes
- Testing resiliency of Private applications hosted on Kubernetes
### Benefits of litmus
Litmus allowed us to identify and work on the observability, configuration, and high availability of certain components which were not resilient.
With the history of experiences, the Reliability score system, and all the statistics on the chaos tests, using random recurring tests, litmus allows us to audit, over time, the resilience of our platforms, and to have a global vision of the state of it.
[Pravega](https://pravega.io/) is an open source storage system implementing **Streams** as a first-class primitive for storing/serving continuous and unbounded data. Pravega organizes data into **Streams**. A **Stream** is a durable, elastic, append-only, unbounded sequence of bytes having good performance and strong consistency.
Pravega Streams are based on an append-only log data structure. By using append-only logs, Pravega rapidly ingests data into durable storage.
### Why do we use litmus
**Pravega** is a distributed system and is deployed on our custom build of Kubernetes having the desired set of microservices, hence we were seeking a tool which can adapt in our environment with minimal alteration and be able to inject faults while exercising quality tests on our product.
Therefore, we chose Litmus Chaos to meet our use cases. The benefits we see in Litmus Chaos are: it is a CNCF project, it supports kubernetes type deployment environment, it has frequent & steady releases, and it's a well maintained tool.
### How do we use litmus
On deploying Litmus Chaos along with its **Chaos Experiments**, we get standard fault injection scenarios like: **pod-network-loss**, **pod-network-latency**&**pod-cpu-hog**, which we introduce on live deployments of a Pravega cluster. This helps us to simulate real time stressful conditions on the setup and to test for its recovery & fault-tolerance behavior, which in turn helps us to improve the overall quality of our product in stable as well as adverse conditions.
[Raspbernetes](gttps://github.com/raspbernetes) is an open source project with multiple contributors for running Kubernetes
clusters on Raspberry Pis. The project started with a goal to automate the setup and management of a Kubernetes cluster on Raspberry Pis.
It aims to be completely declarative and idempotent.
## Why do we use Litmus
For internal workload pods and storage resilience (OpenEBS). This is to test built-in cluster resilience whilst running on
arm64 architecture and building confidence in the design and overall architecture.
## How do we use Litmus.
To run on RPi based (home) Kubernetes clusters running personal production workloads.
## Benefits in using Litmus.
([Michael Fornaro](https://www.linkedin.com/in/michael-fornaro-5b756179/), Maintainer) I reviewed several chaos tools and felt that Litmus being associated with CNCF and being an open-source tool
aligns with my personal preference and values. It has a very active community and repository, and there was well-documented information that
[Red Hat](https://www.redhat.com) is an enterprise software company with an open source development model.
## Why do we use Litmus.
We wanted to test the maturity of the Red Hat Openshift Virtualization solution using chaos testing. Following that, we decided to use Litmus for these reasons:
- It's an Open Source project
- It has a wide selection of experiments available
- It's a CNCF sandbox project
- It has a vibrant community
- There are frequent releases and it is well maintained
## How do we use Litmus.
Litmus experiments are deployed against a single Openshift cluster that runs on top of a baremetal server using libvirt/KVM. Each experiment consists of observing the behavior upon applying chaos to the underlying infrastucture of a running VMI pod instance, and validating the results of the probes. The chaos we inject to the VMs that host the openshift nodes can vary from triggering reboots, sudden shutdowns, suspend the node and network disruption at the node level, among others.
## Benefits in using Litmus.
Being a cloud native solution, Litmus allows us to define our experiment and expectations in the `chaosexperiment` manifest and retrieve the results in the `chaosresult` object generated at runtime. Its vast selection of experiments, periodic release cadence and a welcoming community were sufficient signals that ensured with Litmus we would achieve our goal.
[Red Hat](https://www.redhat.com) is an enterprise software company with an open source development model. [Openshift](https://www.openshift.com/) is a family of containerization software products developed by Red Hat
## Why do we use Litmus.
We wanted to test the maturity of Red Hat Openshift Container Platform and layers on top of it using chaos testing. Following that, we decided to use Litmus for these reasons:
- It's an Open Source project
- It has a wide selection of experiments available
- It has a vibrant community
- There are frequent releases and it is well maintained
## How do we use Litmus.
We consume a variety of Litmus experiments in a tool called [Kraken](https://github.com/cloud-bulldozer/kraken), where we are able to test infrastructure components of OpenShift.
Litmus experiments are deployed against a single Openshift cluster that runs on top of a variety of cloud providers and a baremetal server using libvirt/KVM.
Each experiment consists of observing the behavior upon applying chaos to the underlying infrastucture of a running pod or node instance, and validating the results of the resiliency.
The chaos we inject to the VMs that host the openshift nodes can vary from hogging up the CPU and memory to stressing the IO and network disruption at the node level, among others.
## Benefits in using Litmus.
Being a cloud native solution, Litmus allows us to define our experiment and expectations in the `chaosexperiment` manifest and retrieve the results in the `chaosresult` object generated at runtime.
Its vast selection of experiments, periodic release cadence and a welcoming community were sufficient signals that ensured with Litmus we would achieve our goal.
[VMware, Inc](https://www.vmware.com/in.html) is a cloud computing and virtualization technology company.
### **Why was Litmus chosen**
In EUC (End-user computing), we are transforming to SaaS. And resilience is key to the product success. After searching the chaos engineering tools, we decided to use litmus for below reasons:
* It has fast release and is well maintained.
* It is a CNCF project.
* It is kubernetes friendly.
### **How do we use Litmus**
After the the services pass integration testing, the builds are refreshed to the Chaos Stack. Litmus is used to inject chaos to this environment in order to make sure the services can still pass the integration test cases.
[Wingie Enuygun Company](https://www.wingie.com/) is a leading travel and technology company providing seamless travel solutions across various platforms.
## Why do we use Litmus
We use Litmus to identify bottlenecks in our systems, detect issues early, and foresee potential errors. This allows us to take proactive measures and maintain the resilience and performance of our infrastructure.
## How do we use Litmus
Litmus is integrated into our QA cycles, where it plays a crucial role in catching bugs and verifying the overall resilience of our systems.
## Benefits in using Litmus
Litmus chaos experiments are straightforward to implement and can be easily customized or extended to meet our specific requirements, enabling us to effectively manage and optimize our systems at Wingie Enuygun.
This guide details the steps to set up and generate API documentation for your project using Swagger and GoSwagger. Swagger is used to create an OpenAPI specification file (`swagger.yaml`), and GoSwagger serves this specification file on a local server.
.
## Prerequisites
Before beginning, ensure that you have the following installed:
- Go programming language environment
- `swaggo/swag` library
- `goswagger.io` tool
## Installation
### Step 1: Install Swagger
First, you need to install `swag`, a tool for generating Swagger 2.0 documents for Go applications. Use the following command to install it:
```bash
go get -u github.com/swaggo/swag/cmd/swag
```
For more details, visit the [swag GitHub repository](https://github.com/swaggo/swag).
### Step 2: Install GoSwagger
Next, install GoSwagger, which will serve your Swagger specification file:
```bash
go get -u github.com/go-swagger/go-swagger/cmd/swagger
```
For additional information, refer to the [GoSwagger website](https://goswagger.io/).
## Setting Up Documentation
### Step 1: Annotate Your API
You need to annotate your Go functions to define the API specifications. These annotations are used by Swagger to generate documentation.
#### Example Annotation:
```go
// DexLogin godoc
//
// @Description DexRouter creates all the required routes for OAuth purposes.
// @Tags DexRouter
// @Accept json
// @Produce json
// @Failure 500 {object} response.ErrServerError
// @Success 200 {object} response.Response{}
// @Router /dex/login [get]
//
// DexLogin handles and redirects to DexServer to proceed with OAuth
func DexLogin() gin.HandlerFunc {
// ... function implementation ...
}
```
#### Formatting:
After adding the annotations run this command to fix and update the annotation formatting
```bash
swag fmt .
```
### Step 3: Define Response Structures in `doc.go`
In your handler folder, create or update a file named `doc.go`. Here, define the structures for your responses and errors.
#### Example Structures:
```go
package handler
// LoginResponse represents the response structure for login.
type LoginResponse struct {
accessToken string
projectID string
projectRole string
expiresIn string
}
// ErrServerError represents an error structure for server errors.
type ErrServerError struct {
Code int `json:"code" example:"500"`
Message string `json:"message" example:"Unexpected server error"`
}
```
### Step 4: Generate Swagger Documentation
After annotating your API and defining your responses, run the following command in your project root to generate the `swagger.yaml` file:
```bash
swag init --parseDependency true
```
This command scans your project and creates a Swagger specification from your annotations.
### Step 5: Serve the Swagger Specification
Finally, use GoSwagger to serve your Swagger specification file. This allows you to view your API documentation in a web browser. By default the API docs will be generated with Redocly.
```bash
swagger serve swagger.yaml
```
To run the orginal swagger format
```bash
swagger serve -F=swagger swagger.yaml
```
This command starts a local server hosting your API documentation.
## Conclusion
With these steps, you should now have a fully functional API documentation setup using Swagger and GoSwagger. Remember to regularly update your annotations and regenerate the Swagger file to keep your documentation in sync with your API.
Messagestring`json:"message" example:"The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed"`
}
typeErrOldPasswordstruct{
Codeint`json:"code" example:"400"`
Messagestring`json:"message" example:"The old and new passwords can't be same"`
}
typeErrUnauthorizedstruct{
Codeint`json:"code" example:"401"`
Messagestring`json:"message" example:"The user does not have requested authorization to access this resource"`
}
typeErrUserExistsstruct{
Codeint`json:"code" example:"401"`
Messagestring`json:"message" example:"This username is already assigned to another user"`
}
typeErrUserNotFoundstruct{
Codeint`json:"code" example:"400"`
Messagestring`json:"message" example:"user does not exist"`
}
typeErrUserDeactivatedstruct{
Codeint`json:"code" example:"400"`
Messagestring`json:"message" example:"your account has been deactivated"`
}
typeErrStrictPasswordPolicyViolationstruct{
Codeint`json:"code" example:"401"`
Messagestring`json:"message" example:"Please ensure the password is atleast 8 characters and atmost 16 characters long and has atleast 1 digit, 1 lowercase alphabet, 1 uppercase alphabet and 1 special character"`
}
typeErrStrictUsernamePolicyViolationstruct{
Codeint`json:"code" example:"401"`
Messagestring`json:"message" example:"The username should be atleast 3 characters long and atmost 16 characters long."`
}
typeErrEmptyProjectNamestruct{
Codeint`json:"code" example:"400"`
Messagestring`json:"message" example:"Project name can't be empty"`
}
typeErrInvalidRolestruct{
Codeint`json:"code" example:"400"`
Messagestring`json:"message" example:"Role is invalid"`
}
typeErrProjectNotFoundstruct{
Codeint`json:"code" example:"400"`
Messagestring`json:"message" example:"This project does not exist"`
}
typeErrInvalidEmailstruct{
Codeint`json:"code" example:"400"`
Messagestring`json:"message" example:"Email address is invalid"`
}
typeErrProjectNotFoundstructstruct{
Codeint`json:"code" example:"400"`
Messagestring`json:"message" example:"project does not exist"`