* feat(RBAC) EE-1304 list ingresses of current namespace other than all namespaces at front end side
* feat(RBAC) EE-1304 remove list ingresses from clusterrole
Co-authored-by: Simon Meng <simon.meng@portainer.io>
* feat(nodes limits)Review the resource assignement when creating a Kubernetes application EE-437
* feat(nodes limits) review feedback EE-437
* feat(nodes limits) workaround for lodash cloneDeep not working in production mode EE-437
* feat(nodes limits) calculate max cpu of slide bar with floor function instead of round function EE-437
* feat(nodes limits) another review feedback EE-437
* feat(nodes limits) cleanup code EE-437
* feat(nodes limits) EE-437 pr feedback update
* feat(nodes limits) EE-437 rebase onto develop branch
* feat(nodes limits) EE-437 another pr feedback update
Co-authored-by: Simon Meng <simon.meng@portainer.io>
* feat(k8s/resource-pool): add the ability to mark/unmark resource pool as system
fix(kube/ns): check label to see if namespace is system
refactor(k8s/namespaces): rename variables
feat(kubernetes): toggle system state in the server (#5361)
fix(app/resource-pool): UI fixes
feat(app/resource-pool): add confirmation modal when unamrking system namespace
* refactor(app): review changes
* feat(app/namespaces): introduce store to retrieve namespace system status without changing all the kubernetes models
refactor(app/namespaces): remove unused code first introduced for system tagging
fix(app/namespaces): cache namespaces to retrieve system status regardless of namespace reference format
refactor(app): migrate namespace store from helper to a separate singleton
refactor(app): remove KubernetesNamespaceHelper from DI cycle
* refactor(app): normalize usage of KubernetesNamespaceHelper functions
* refactor(app/k8s): change namespace store to functions instead of class
Co-authored-by: LP B <xAt0mZ@users.noreply.github.com>
* kubernetes attributes done, swarm attributes halfway, aci to go
* all attributes for cypress selectors added
* kubernetes attributes done, swarm attributes halfway, aci to go
* all attributes for cypress selectors added
* all attributes for cypress selectors added
* fixed files from rebase, added docker sidebar element attributes
* kubernetes attributes done, swarm attributes halfway, aci to go
* all attributes for cypress selectors added
* all attributes for cypress selectors added
* removed files to match develop
* ammended comments
* removed bindings for switch
* - metric server api call disabled on cluster view
- metric server api call disabled on node view
- metric server api call disabled on namespace view
* enforcing resource access to function to ensure similarity to ee implementation
* fix(app):fix additional not save warning EE-799
* fix additional warning when user leave page
* fix additional warning when user leave page in buildImageController.js
* fix docker build controller additional warning message
* fix changes required from reviews
* - refactored ondestroy hook function to align it closer to (below) oninit
- removed duplicated hook func duplication in configurationController
Co-authored-by: zees-dev <dev.786zshan@gmail.com>
* feat EE-440/EE-436 kubernetes-resources-summary-panel
* bugfix: returning created resources after update
* fixed patch based bugs - displaying accurate updates for k8s resources
Co-authored-by: Simon Meng <simon.meng@portainer.io>
* fix(frontend): When a docker endpoint is selected, configuring a newly added k8s agent fails EE-821
* fix(frontend): restore endpointID in a finally block EE-821
Co-authored-by: Simon Meng <simon.meng@portainer.io>
* feat(k8s/container): metrics layout
* feat(k8s/container): memory graph
* feat(k8s/container): cpu usage percent
* feat(k8s/metrics): metrics api validation to enable metrics server
* feat(k8s/pods): update error metrics view
* feat(k8s/container): improve stopRepeater function
* feat(k8s/pods): display empty view instead of empty graphs
* feat(k8s/pods): fix CPU usage
* feat(k8s/configure): fix the metrics server test
* feat(k8s/pod): fix cpu issue
* feat(k8s/pod): fix toaster for non register pods in metrics server
* feat(k8s/service): remove options before 30 secondes for refresh rate
* feat(k8s/pod): fix default value for the refresh rate
* feat(k8s/pod): fix rebase
* feat(dockerhub): introduce local status endpoint
* feat(proxy): rewrite request with dockerhub credentials
* feat(endpoint): check env type
* feat(endpoint): check for local endpoint
* feat(docker): introduce client side service to get limits
* feat(container): add info about rate limits in container
* feat(dockerhub): load rate limits just for specific endpoints
* feat(images): show specific dockerhub messages for admin
* feat(service-create): show docker rate limits
* feat(service-edit): show rate limit messages
* fix(images): fix loading of page
* refactor(images): move rate limits check to container
* feat(kubernetes): proxy agent requests
* feat(kubernetes/apps): show pull limits in application creation
* refactor(image-registry): move warning to end of field
* fix(image-registry): show right message for admin
* fix(images): silently fail when loading rate limits
* fix(kube/apps): use new rate limits comp
* fix(images): move rate warning to end
* fix(registry): move search to right place
* fix(service): remove service warning
* fix(endpoints): check if kube endpoint is local
* fix windows build
* fix(endpoints): show correct values of security settings (#4889)
* fix(app): EndpointProvider fallback on URL EndpointID when no endpoint is selected (#4892)
* fix(templates): App templates not loading with error in browser console (#4895)
* fix(kube/config): show used key warning when needed (#4890)
fix [CE-469]
- recalculate duplcate keys when they are changed
- show used warning on duplicate keys
* fix(k8s): CE-471 variables from configuration showing on environment variables section on application edit screen (#4896)
* fix(k8s): CE-471 variables from configuration showing on environment variables section on application edit screen
* fix(k8s): CE-471 avoid to remove value path of env when patch k8s deployment, as the value path does not exist if env variable has empty value.
Co-authored-by: Simon Meng <simon.meng@portainer.io>
Co-authored-by: Dmitry Salakhov <to@dimasalakhov.com>
Co-authored-by: Chaim Lev-Ari <chiptus@users.noreply.github.com>
Co-authored-by: LP B <xAt0mZ@users.noreply.github.com>
Co-authored-by: Maxime Bajeux <max.bajeux@gmail.com>
Co-authored-by: cong meng <mcpacino@gmail.com>
Co-authored-by: Simon Meng <simon.meng@portainer.io>
* feat(app): when leaving a view with unsaved changed, a modal prompt the user with a confirmation message
feat(app): when leaving a view with unsaved changes, a modal prompt the user with a confirmation message
* feat(app/web-editor): fix the modal behaviour when editing a stack details
* feat(app/web-editor): add a reusable function confirmWebEditorDiscard in modal service
* feat(docker/stack): fix missing dependency
* feat(node): Enable the ability to cordon/uncordon/drain nodes
* feat(cluster): check if there is a drain operation somewhere
* feat(kubernetes): allow to cordon, uncordon, drain nodes
* refacto(kubernetes): set a constant for drain label name
* fix(node): Relocate the warning message next to the dropdown and change the information message
* refactor(app): backport technical changes
* refactor(app): remove EE only features
* feat(app): small review changes to match EE codebase layout on some files
Co-authored-by: xAt0mZ <baron_l@epitech.eu>
* fix(application): Can't update application with persisted data, after the storage option is disabled on cluster
* refacto(application): Some code extraction requested for better maintenance
* feat(app): sort environment variables
* feat(k8s/application): improve the sorting for the env variables when creating/editing application
* feat(k8s/application): update the removal of the env var
* feat(docker/service): improve the sorting order for env var in service edition view
* feat(configurations): Review UI/UX configurations
* feat(configurations): fix binary secret value
* fix(frontend): populate data between simple and advanced modes (#4503)
* fix(configuration): parseYaml before create configuration
* fix(configurations): change c to C in ConfigurationOwner
* fix(application): change configuration index to configuration key in the view
* fix(configuration): resolve problem in application create with configuration not overriden.
* fix(configuration): fix bad import in helper
Co-authored-by: Simon Meng <simon.meng@portainer.io>
* feat(placement): Add a warning notification under the placement tab when an application cannot be scheduled on any node in the cluster
* fix(applications): if there is at least one node the application can schedule on, then do not show the warning
* fix(k8s/datatables): reduce size of collapse/expand column for stacks datatable and storage datatable
* fix(k8s/datatables): reduce size of expand/collapse column
* feat(k8s/resources-list-view): add advanced deployment panel to applications view, configurations view and volumes view
* feat(k8s/resources-list-view): move advanced deployment into a template and use it everywhere
* feat(app): add a preview for business edition features
* feat(app): open links in new tab + show storage quota section + grey out unavailable providers
* feat(k8s/resource-pool): set ingress hostname as mandatory and remove default backend
* refactor(k8s/resource-pool): use constants
* feat(k8s/configure): add experimental note about traefik
* feat(k8s/configure): separate ingress class name and ingress class type
* feat(k8s/resource-pool): ability to add custom annotations to ingress classes on RP create/edit
* feat(k8s/ingresses): remove 'allow users to use ingress' switch
* feat(k8s/configure): minor UI update
* feat(k8s/resource-pool): minor UI update
* feat(k8s/application): update ingress route form validation
* refactor(k8s/resource-pool): remove console.log statement
* feat(k8s/resource-pool): update ingress annotation placeholders
* feat(k8s/configure): add pattern form validation on ingress class
* fix(k8s/resource-pool): automatically associate ingress class to ingress
* fix(k8s/resource-pool): fix invalid ingress when updating a resource pool
* fix(k8s/resource-pool): update ingress rewrite target annotation value
* feat(k8s/application): ingress form validation
* fix(k8s/application): squash ingress rules with empty host inside a single one
* feat(k8s/resource-pool): ingress host validation
* fix(k8s/resource-pool): rewrite rewrite option and only display it for ingress of type nginx
* feat(k8s/application): do not expose ingress applications over node port
* feat(k8s/application): add specific notice for ingress
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(application): Support multi-container pods applications
* feat(application): Support multi-container pods applications
* fix(application): use only one pod in app details and fix logs and console links
* fix(application): show all containers in containers datatable
* fix(application): fix order by pod name
* feat(k8s/application): minor UI update
* feat(k8s/application): minor UI update
* feat(k8s/application): minor UI update
* feat(k8s/application): minor UI update
* feat(k8s/application): minor UI update
* fix(application): fix persisted folders in application details
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(k8s/endpoint): expose ingress controllers on endpoints
* feat(k8s/applications): add ability to expose applications over ingress - missing RP and app edits
* feat(k8s/application): add validation for ingress routes
* feat(k8s/resource-pools): edit available ingress classes
* fix(k8s/ingress): var name refactor was partially applied
* feat(kubernetes): double validation on RP edit
* feat(k8s/application): app edit ingress update + formvalidation + UI rework
* feat(k8s/ingress): dictionary for default annotations on ingress creation
* fix(k8s/application): temporary fix + TODO dev notice
* feat(k8s/application): select default ingress of selected resource pool
* feat(k8s/ingress): revert ingressClassName removal
* feat(k8s/ingress): admins can now add an host to ingress in a resource pool
* feat(k8s/resource-pool): list applications using RP ingresses
* feat(k8s/configure): minor UI update
* feat(k8s/configure): minor UI update
* feat(k8s/configure): minor UI update
* feat(k8s/configure): minor UI update
* feat(k8s/configure): minor UI update
* fix(k8s/ingresses): remove host if undefined
* feat(k8s/resource-pool): remove the activate ingresses switch
* fix(k8s/resource-pool): edditing an ingress host was deleting all the routes of the ingress
* feat(k8s/application): prevent app deploy if no ports to publish and publishing type not internal
* feat(k8s/ingress): minor UI update
* fix(k8s/ingress): allow routes without prepending /
* feat(k8s/application): add form validation on ingress route
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(node): Add the ability to apply taints and labels to nodes
* feat(k8s/node): minor UI update
* feat(k8s/node): UI update and disable system labels
* feat(k8s/node): minor UI update
* fix(node): fix add first taint
* refacto(node): add KubernetesNodeHelper
* feat(node): add used label to labels
* feat(node): add node update modals
* fix(node): modal when used label changes
* feat(k8s/node): minor UI update
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(resourcepool): Reducing the Quota assigned to a RP
* fix(k8s/resource-pool): fix an issue with hasResourceQuotaBeenReduce condition
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(applications): update UI to use existing volumes
* feat(application): Add the ability to use existing volumes when creating an application
* feat(application): Existing persisted folders should default to associated volumes
* feat(application): add form validation to existing volume
* feat(application): remove the ability to use an existing volume with statefulset application
* feat(k8s/applications): minor UI update
* feat(k8s/application): minor UI update
* feat(volume): allow to increase volume size and few other things
* feat(volumes): add the ability to allow volume expansion
* fix(storage): fix the storage patch request
* fix(k8s/applications): remove conflict leftover
* feat(k8s/configure): minor UI update
* feat(k8s/volume): minor UI update
* fix(storage): change few things
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(cluster): add kubernetes endpoint resource
* feat(cluster): add kubernetes endpoint service
* feat(node): Show which IP address / port the cluster API is listening on
* fix(cluster): support multi-master clusters
* fix(cluster): support multi-master clusters
* feat(k8s/cluster): minor UI update
* refactor(k8s/cluster): rename variable
* refactor(k8s/endpoints): refactor KubernetesEndpointsFactory
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
* feat(application): add horizontalpodautoscaler creation
* feat(application): Add the ability to set the auto-scale policy of an application
* feat(k8s/application): minor UI update
* fix(application): set api version and prevent to use hpa with global deployment type
* feat(settings): add a switch to enable features based on server metrics
* feat(k8s/applications): minor UI update
Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>