Skip to content

Commit

Permalink
adds the resource-optimization plugin files
Browse files Browse the repository at this point in the history
- (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>
Signed-off-by: Jonathan Kilzi <jkilzi@redhat.com>
  • Loading branch information
jkilzi and Preeti Wadhwani committed Aug 20, 2024
1 parent bbe96ed commit 85fb5ef
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 0 deletions.
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!
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# This dockerfile builds an image for the backend package.
# It should be executed with the root of the repo as docker context.
#
# Before building this image, be sure to have run the following commands in the repo root:
#
# yarn install
# yarn tsc
# yarn build:backend
#
# Once the commands have been run, you can build the image using `yarn build-image`

FROM node:18-bookworm-slim

# Install isolate-vm dependencies, these are needed by the @backstage/plugin-scaffolder-backend.
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && \
apt-get install -y --no-install-recommends python3 g++ build-essential && \
yarn config set python /usr/bin/python3

# Install sqlite3 dependencies. You can skip this if you don't use sqlite3 in the image,
# in which case you should also move better-sqlite3 to "devDependencies" in package.json.
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && \
apt-get install -y --no-install-recommends libsqlite3-dev

# From here on we use the least-privileged `node` user to run the backend.
USER node

# This should create the app dir as `node`.
# If it is instead created as `root` then the `tar` command below will fail: `can't create directory 'packages/': Permission denied`.
# If this occurs, then ensure BuildKit is enabled (`DOCKER_BUILDKIT=1`) so the app dir is correctly created as `node`.
WORKDIR /app

# This switches many Node.js dependencies to production mode.
ENV NODE_ENV production

# Copy repo skeleton first, to avoid unnecessary docker cache invalidation.
# The skeleton contains the package.json of each package in the monorepo,
# and along with yarn.lock and the root package.json, that's enough to run yarn install.
COPY --chown=node:node yarn.lock package.json packages/backend/dist/skeleton.tar.gz ./
RUN tar xzf skeleton.tar.gz && rm skeleton.tar.gz

RUN --mount=type=cache,target=/home/node/.cache/yarn,sharing=locked,uid=1000,gid=1000 \
yarn install --frozen-lockfile --production --network-timeout 300000

# Then copy the rest of the backend bundle, along with any other files we might want.
COPY --chown=node:node packages/backend/dist/bundle.tar.gz app-config*.yaml ./
RUN tar xzf bundle.tar.gz && rm bundle.tar.gz

CMD ["node", "packages/backend", "--config", "app-config.yaml", "--config", "app-config.production.yaml"]

0 comments on commit 85fb5ef

Please sign in to comment.