Skip to content

Commit

Permalink
plugin: add redhat-resource-optimization workspace (backstage#810)
Browse files Browse the repository at this point in the history
* adds the resource-optimization plugin files

- (refactor) Adds the new workspace's lockfile
- (refactor) adds the cost-management FE plugin
- (refactor) removes react-dom and react-router-dom from the peerDeps
- (refactor) updates yarn.lock
- (refactor) adds a basic app-config.yaml with untested proxy settings
- (refactor) adds cost-management-client
- (refactor) adds CostManagementIcon.tsx
- (refactor) adds sample packages/app and packages/backend
- (refactor) converts the cost-management client into the recommendations client
- (refactor) Introduces the combined cost-management client
- (fix) fixes issues with overlapping symbols
- (refactor) Refactors the cost-management plugin
- (refactor) Renames the cost-management-client package to cost-management-common
- (refactor) Renames src/api/ApiRefs.ts to src/api/ref.ts
- (refactor) simplifies getting the proxy's baseUrl
- (fix) fixes the client generator script
- (refactor) Adds changeOrigin to the proxy settings
- (refactor) created first page using material UI components
- (refactor) updated config for FE
- (refactor) removed custom webpack config file
- consuming API response in the table
- (refactor) added util method to handle API JSON response
- (refactor) introduces JSONUtils.toCamelCaseObjectKeys
- (refactor) adds new workspace for resource-optimization
- (refactor) adds placeholder for the FE and Common plug-ins
- (refactor) adds app-config.yaml
- (refactor) adds react-related missing peer-deps
- (refactor) adds resource-optimization-common as a dependency to the FE plug-in
- (refactor) adds a sample app and backend for showcase purposes
- (refactor) Adds also a PoC for the plugin icon
- (refactor) migrates the old common package to resource-optimization
- (fix) fixes an eslint issue related to lodash
- (refactor) updates the icon snapshot
- (refactor) updates json.test.ts
- (refactor) adds initial code for the BE plugin
- (fix) fixes the plugin icon
- (refactor) changes the plugin name in the navbar
- (refactor) adds 2 variants for the plugin icon
- (refactor) added UI for the first page of resource optimization plugin & fixed endpoint in config (#2)
- (fix) fixes an issue in toCamelCaseObjectKeys function
- (refactor) introduces the resource-optimization-backend
- (fix) fixes the token renewal mechanism
- (refactor) Improved the keys serialization/deserialization issue (use camelCase when receiving, but snake_case when sending data)
- (refactor) The plugin can read the clientId and clientSecret from the app-config.yaml
- (refactor) Cleans up the ExampleComponent.tsx
- (refactor) makes ssoBaseUrl config optional
- (refactor) cleans up ExampleComponent.tsx a bit more
- (refactor) add assertion to ensure config is defined
- (refactor) replaces json utils with jsr:@y0n1/json
- (fix) : fix missing query params after token expires
- (feat) RHINENG-10603 first page table functionality - Pagination + Sorting (#3)
- (feat) RHINENG-10603 first page table functionality
- (fix) minor fixes
- (refactor) code refactoring for landing page table
- (refactor) handling offset and sorting query params and code cleanup
- (refactor) disable third sort on table component
- (refactor) added unit tests and code cleanup
- (refactor) improved landing page layout
- (fix) fixes unit tests
- (feat) RHINENG-10603 landing page filters functionality (#4)
- (feat) RHINENG-10603 added search filter component and filters functionality
- (fix) fixes the issue with the query params in getRecommendationsList
- (feat) RHINENG-10787 detail page top section and recommendation section (#5)
- (feat) RHINENG-10787 detail page top section and UI
- (refactor) removed memoryUnit & cpuUnit from query
- (refactor) code cleanup
- (fix) fixes cluster filter and detail page values
- (refactor) added util method to handle YAML code generation from API response
- (refactor) ignores dynamic-plugins dist directory globally
- (refactor) adds janus-cli and export-dynamic scripts
- (refactor) removes ExampleFetchComponent
- (refactor) updates apis.ts
- (fix) do not convert the recommendations_id param to snake case
- (fix) fixes tsc, linting and formatting issues
- (fix) fixes some issues related to different types of dependencies
- (fix) pathes PlotDetails model
- (fix) stop depending on @mui/material and remove white bg from search filters
- (refactor) patches all the parameters of getRecommendationById
- (refactor) Applies required refactors for compatibility with dynamic plugins (#6)
- (refactor) adds @backstage/backend-dynamic-feature-service
- (refactor) adds rhdh theme
- (refactor) adds devcontainer config
- (refactor) removes leftovers froms the cost-management workspace
- (refactor) updates resource-optimization frontend
- (refactor) adds configuration files for rhdh
- (refactor) Update workspaces/resource-optimization/plugins/resource-optimization/src/plugin.ts
- (refactor) adds devcontainer config
- (refactor) adds deployment scripts
- (refactor) adds export-dynamic top-level script
- (fix) fixes issues related to dependencies
- (refactor) removes the dynamic-plugins integration from the backend package
- (fix) fixes linting and type-checking issues
- (refactor) exports the icon from the front-end plugin
- (refactor) Updates yarn.lock
- (fix) fixes some type-only import statements
- (chore) sync @backstage-community/plugin-resource-optimization-backend
- (fix) fixes style issues
- (fix) fixes an issue related to the api-report generation, see: backstage/backstage#25671
- (refactor) renames useRhdhTheme.ts to rhdh-theme.ts
- (chore) cleans up devcontainer settings and code-workspace file
- (fix) fixes style issues and generates api-report
- (fix) fixes code style and adds the api-report
- (fix) fixes code style and adds the api-report
- (refactor) Updates resource-optimization-common
- (chore) Patches the generated client code with ts-morph
- (style) The code now complies with the rules of the api-report (via `yarn build:api-reports`)
- (refactor) Adds the api-report
- (refactor) Updates the openapi.yaml
- (refactor) Renames OrchestratorClient to OrchestratorApiClientProxy
- (refactor) Updates resource-optimization
- (refactor) Aligns the code according to the refactor in resource-optimization-common
- (fix) detail page tab routing (#8)
- (fix) detail page tab routing
- (style) yarn fix resource-optimization-common
- (fix) prettier & add prettier format script
- (refactor) Update workspaces/resource-optimization/package.json
- (refactor) updated api-reports.md
- (refactor) updates api-reports
- (fix) fixes the presentation in the last_reported column
- (fix) fixes code style issues
- (fix) code-style
- (refactor) Renames serializer.mjs to yaml.mjs
- (chore) Bumps Backstage to 1.29.2, see https://backstage.io/docs/releases/v1.28.0
- (fix) fixes the "publish check" CI step failure
- (fix) bug fixes
- (fix) Solves an issue related to the recommendation plotData object where the object keys were transformed incorrectly
- (refactor) Bumps @y0n1/json to 2.0.0
- (refactor) Adds msw for writing tests for the client proxy module
- (refactor) RHINENG-10789 added compont for showing box plot charts (#12)
- (refactor) RHINENG-10789 added compont for showing box plot charts
- (refactor) added missing keys for messages
- (style) prettier format and fix
- (fix) fixes types errors
- (fix) minor fixes
- (fix) minor fixes for showing YAML code
- (refactor) added charts for limit and request data, performace section
- (fix) adds yarn.lock
- (fix) fixes types errors
- (fix) styles for chart y axis numbering
- (fix) minor fixes
- (refactor) Adds tests for OptimizationsApiClientProxy.ts
- (docs) Adds READMEs and legal stuff (#15)
- (fix) fixes a typo
- (refactor) updates the readme
- (refactor) adds missing info about the service account role
- (refactor) Updates useRhdhTheme.ts (#16)
- (refactor) Removes the logic involved in enabling the RHDH theme based on an environment variable
- (refactor) updates devcontainer settings
- (refactor) updates the workspace readme
- (refactor) adds the changeset
- (refactor) RHINENG-11783 removed example component and searchFilter component (#17)
- (refactor) renames the plugin to redhat-resource-optimization (#18)
- (refactor) Addresses overlooked code style issues
- (refactor) updates CODEOWNERS
- (refactor) update yarn install stat

---------

Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
Co-authored-by: Preeti Wadhwani <pwadhwan@redhat.com>
  • Loading branch information
jkilzi and Preeti Wadhwani authored Aug 8, 2024
1 parent 7a131e0 commit 02dd072
Show file tree
Hide file tree
Showing 251 changed files with 51,875 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ yarn.lock @backstage/community-plugins
/workspaces/user-settings @backstage/community-plugins-maintainers @backstage/sda-se-reviewers
/workspaces/tech-insights @backstage/community-plugins-maintainers @xantier
/workspaces/report-portal @backstage/community-plugins-maintainers @yashoswalyo
/workspaces/redhat-resource-optimization @backstage/community-plugins-maintainers
8 changes: 8 additions & 0 deletions workspaces/redhat-resource-optimization/.changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
10 changes: 10 additions & 0 deletions workspaces/redhat-resource-optimization/.changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
'@backstage-community/plugin-redhat-resource-optimization-backend': major
'@backstage-community/plugin-redhat-resource-optimization-common': major
'@backstage-community/plugin-redhat-resource-optimization': major
---

Adds the redhat-resource-optimization plugin

This is the first iteration for this plugin. Your feedback is more than welcome!
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// For format details, see https://aka.ms/devcontainer.json.
{
"name": "Ubuntu",
"image": "mcr.microsoft.com/devcontainers/base:jammy",
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
"ghcr.io/devcontainers/features/java:1": {},
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers-contrib/features/fzf:1": {},
"ghcr.io/devcontainers-contrib/features/zsh-plugins:0": {},
"ghcr.io/dhoeric/features/act:1": {}
},
"forwardPorts": [3000, 7007],
"postCreateCommand": ".devcontainer/scripts/post_create_command.sh",
"customizations": {
"vscode": {
"settings": {
"git.alwaysSignOff": true,
"jest.jestCommandLine": "node_modules/.bin/jest --config node_modules/@backstage/cli/config/jest.js",
"jest.runMode": {
"type": "on-demand"
},
"typescript.tsdk": "node_modules/typescript/lib",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"redhat.vscode-yaml",
"orta.vscode-jest",
"rangav.vscode-thunder-client",
"eamodio.gitlens",
"-vscjava.vscode-java-pack",
"Intility.vscode-backstage"
]
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Oh My Zsh! theme - partly inspired by https://github.com/ohmyzsh/ohmyzsh/blob/master/themes/robbyrussell.zsh-theme
__zsh_prompt() {
local prompt_username
if [ ! -z "${GITHUB_USER}" ]; then
prompt_username="@${GITHUB_USER}"
else
prompt_username="%n"
fi
PROMPT="%{$fg[green]%}${prompt_username} %(?:%{$reset_color%}➜ :%{$fg_bold[red]%}➜ )" # User/exit code arrow
PROMPT+='%{$fg_bold[blue]%}%(5~|%-1~/…/%3~|%4~)%{$reset_color%} ' # cwd
PROMPT+='`\
if [ "$(git config --get devcontainers-theme.hide-status 2>/dev/null)" != 1 ] && [ "$(git config --get codespaces-theme.hide-status 2>/dev/null)" != 1 ]; then \
export BRANCH=$(git --no-optional-locks symbolic-ref --short HEAD 2>/dev/null || git --no-optional-locks rev-parse --short HEAD 2>/dev/null); \
if [ "${BRANCH}" != "" ]; then \
echo -n "%{$fg_bold[cyan]%}(%{$fg_bold[red]%}${BRANCH}" \
&& if [ "$(git config --get devcontainers-theme.show-dirty 2>/dev/null)" = 1 ] && \
git --no-optional-locks ls-files --error-unmatch -m --directory --no-empty-directory -o --exclude-standard ":/*" > /dev/null 2>&1; then \
echo -n " %{$fg_bold[yellow]%}✗"; \
fi \
&& echo -n "%{$fg_bold[cyan]%})%{$reset_color%} "; \
fi; \
fi`'
PROMPT+=$'\n''%{$fg[white]%}$ %{$reset_color%}'
unset -f __zsh_prompt
}
__zsh_prompt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash

# Marks the project's directory as safe in Git.
# Inside a devcontainer, the container's user (vscode) and the host user both
# have different UID/GIDs, leading Git to consider the ownership as dubious.
if [[ -z "$(git config --global safe.directory)" ]]; then
git config --global --add safe.directory /workspaces/community-plugins
fi

# Replace the default ZSH theme with a custom version the adds a newline before
# the user's prompt sign
cp -f \
.devcontainer/scripts/devcontainers.zsh-theme \
/home/vscode/.oh-my-zsh/custom/themes/devcontainers.zsh-theme
8 changes: 8 additions & 0 deletions workspaces/redhat-resource-optimization/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.git
.yarn/cache
.yarn/install-state.gz
node_modules
packages/*/src
packages/*/node_modules
plugins
*.local.yaml
1 change: 1 addition & 0 deletions workspaces/redhat-resource-optimization/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
playwright.config.ts
3 changes: 3 additions & 0 deletions workspaces/redhat-resource-optimization/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
root: true,
};
56 changes: 56 additions & 0 deletions workspaces/redhat-resource-optimization/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# macOS
.DS_Store

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Coverage directory generated when running tests with coverage
coverage

# Dependencies
node_modules/

# Yarn 3 files
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

# Node version directives
.nvmrc

# dotenv environment variables file
.env
.env.test

# Build output
dist/
dist-types/
dist-dynamic/
dynamic-plugins-root/

# Temporary change files created by Vim
*.swp

# MkDocs build output
site

# Local configuration files
*.local.yaml

# Sensitive credentials
*-credentials.yaml

# vscode database functionality support files
*.session.sql

# E2E test reports
e2e-test-report/
5 changes: 5 additions & 0 deletions workspaces/redhat-resource-optimization/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
dist
dist-types
coverage
.vscode
.eslintrc.js
3 changes: 3 additions & 0 deletions workspaces/redhat-resource-optimization/.yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
npmScopes:
jsr:
npmRegistryServer: 'https://npm.jsr.io'
36 changes: 36 additions & 0 deletions workspaces/redhat-resource-optimization/DCO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
Loading

0 comments on commit 02dd072

Please sign in to comment.