* Convert StatusBarRegistration to use components field
- More similar to all other *Registration types for extensions
- Simpler fix for using the components.Icon type, now accepts functions
that return component instance like all other *Registration types
- Kept old fix for backwards compatability
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* fix docs
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* store more than largest kube api request amount in the event store
* not abstract, give default
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* switch to using public mkdocs for check docs step
* remove git config and pip calls for check docs
* fix label check filtering
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* add step to verify docs on area/documentation PRs
* use GH actions to run the verification
* add check if label is set to area/documentation
* fix broken links in docs with WIP files
* add generating API docs before verifying
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* add no-unused-vars and no-unused-imports
* added quotes: double, and remove ignore pattern
* move itif and describeif into utils
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* add a brief overview to our use of mobx and mark all observable fields as observable in our docs
* add to navigation
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* add store for mapping extension names to filesystem paths
- add extension mechinism for getting a folder to save files to
- add test to make sure that extensions are being loaded
- skip extension loading test
Signed-off-by: Sebastian Malton <sebastian@malton.name>
- None of the .ts files include any of the .js files
- All .js files are either passed to electron-builder or used as config
files for other programs.
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* add retry cap to handleStaticFile to prevent an infitite loop
* 'yarn -> yarn run' for node_module dependencies
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Remove Makefile from all intree extensions
- Makefiles are not really common (rightly so) in JS projects and script
entries in the package.json are good enough and what they're there
for.
- Move to using yarn for installing dependencies and running scripts as
that is what we mostly use for the rest of the project.
- Move from using make syntax to a dedicated script for building and
testing extensions.
- add jest as extension devDep, go back to using makefile foreach syntax
- add correct exit code
- add yarn check call to install-deps
- add yarn invokation to find deps
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Fix rendering of boolean values in CRDs
- add optional special casing for boolean values in DrawerItems and
TableRows since React (imo annoying fashion) does not render boolean
values by default.
- add a spinner on the sidebar for when the CRD menu is expeanded but
the entries have not been loaded yet.
- Add ability to double click a Badge to expand, also make it so that
Badges highligh all text on first click.
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Add mechanism for users to specify namespaces that are accessible to them. This is generally useful for when the user doesn't have permission to list the namespaces.
- Add new component "EditableList" which provides a simple way to
display a list of items that can be added too.
- Add the ClusterAccessibleNamespaces to the GeneralClusterSettings
- style editable list list of lists, switch to using <>
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* Add some basic unit tests for cluster, kube-auth-proxy, and kubeconfig-manager
- src/main/cluster.ts
- src/main/kube-auth-proxy.ts
- src/main/kubeconfig-manager.ts
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Refactor testing harness to use defaults
- Move tests into defaultly named test folders
- Use default test suffix of ".test" instead of "_test"
- Make cluster-store tests unit tests by adding more
nesting, so that order of tests doesn't matter
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* Rename `Draggable` as `ResizingAnchor` since that is what it is used for and shouldn't be mistaken as a general draggable item
* Refactor `ResizingAnchor` to be much more smart about how it handles mouse movements. Allow it to know which direction the resizing should be in allowing it to produce exact resized values.
* Add event handlers for the min and max extents so that actions can be triggered when those extents are passed (in either direction)
* Add double click support
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* reduce height on draggable-top and only render it on macos
* move drag bar out of app and into bootstrap
Signed-off-by: Sebastian Malton <sebastian@malton.name>
* Auto select one and only cluster from pasted config
- Disable add button with tooltip if no clusters are selected
- Add functionality to tooltip to display correctly over disabled
elements
* feature should work of any method of adding kube config
Signed-off-by: Sebastian Malton <sebastian@malton.name>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* remove make-syncronous and file-type calls from migration
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* add drag and drop capabilities for the order of cluster icons on the side bar
* add type annotations for better clarity
* fix clusters staying in previously icon reordered workspaces
* add some tests to cluster-store
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* Allow for users to enabled release mode debugging by setting the env var `DEBUG` to "true"
* Adds file logging so that in production logs can still be
obtained. Those log files are limited the size and number and are rotated automatically
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* Add support for customreasourcedefinitions under the v1 API
* moving store and views to use v1
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* use the Kubernetes regex for matching system names
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* add parsing of quota values which are non-numeric in the general case
* add unit tests
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* fix format duration rounding days error
* added tests
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* add LANG env with UTF-8 specified
* fix precedence of union of env objects
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* remove the explicit throw is new parseApi
* fix parseApi to be more consitent with the older version
- Add many more unit tests (these are exact copies of the old behaviour
so that any changes do not change behaviour)
- Make explicit, with documentation, why certain actions are being taken
with the parsing of the api URL parts
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* catch undefined and return default empty in normalizeMetrics
* fix crash on drilldown
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* fix parseApi not accepting versions that don't start with 'v'
* add unit tests
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>
* fix parseApi not accepting versions that don't start with 'v'
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
Co-authored-by: Sebastian Malton <smalton@mirantis.com>