angular.module('portainer.kubernetes', ['portainer.app']).config([
'$stateRegistryProvider',
function ($stateRegistryProvider) {
'use strict';
const kubernetes = {
name: 'kubernetes',
url: '/kubernetes',
parent: 'endpoint',
abstract: true,
onEnter: /* @ngInject */ function onEnter($async, $state, endpoint, EndpointProvider, KubernetesHealthService, Notifications, StateManager) {
return $async(async () => {
if (![5, 6, 7].includes(endpoint.Type)) {
$state.go('portainer.home');
return;
}
try {
if (endpoint.Type === 7) {
//edge
await KubernetesHealthService.ping(endpoint.Id);
endpoint.Status = 1;
} catch (e) {
endpoint.Status = 2;
EndpointProvider.setEndpointID(endpoint.Id);
await StateManager.updateEndpointState(endpoint, []);
if (endpoint.Type === 7 && endpoint.Status === 2) {
throw new Error('Unable to contact Edge agent, please ensure that the agent is properly running on the remote environment.');
Notifications.error('Failed loading endpoint', e);
$state.go('portainer.home', {}, { reload: true });
});
},
};
const applications = {
name: 'kubernetes.applications',
url: '/applications',
views: {
'content@': {
component: 'kubernetesApplicationsView',
const applicationCreation = {
name: 'kubernetes.applications.new',
url: '/new',
component: 'kubernetesCreateApplicationView',
const application = {
name: 'kubernetes.applications.application',
url: '/:namespace/:name',
component: 'kubernetesApplicationView',
const applicationEdit = {
name: 'kubernetes.applications.application.edit',
url: '/edit',
const applicationConsole = {
name: 'kubernetes.applications.application.console',
url: '/:pod/:container/console',
component: 'kubernetesApplicationConsoleView',
const applicationLogs = {
name: 'kubernetes.applications.application.logs',
url: '/:pod/:container/logs',
component: 'kubernetesApplicationLogsView',
const applicationStats = {
name: 'kubernetes.applications.application.stats',
url: '/:pod/:container/stats',
component: 'kubernetesApplicationStatsView',
const stacks = {
name: 'kubernetes.stacks',
url: '/stacks',
const stack = {
name: 'kubernetes.stacks.stack',
const stackLogs = {
name: 'kubernetes.stacks.stack.logs',
url: '/logs',
component: 'kubernetesStackLogsView',
const configurations = {
name: 'kubernetes.configurations',
url: '/configurations',
component: 'kubernetesConfigurationsView',
const configurationCreation = {
name: 'kubernetes.configurations.new',
component: 'kubernetesCreateConfigurationView',
const configuration = {
name: 'kubernetes.configurations.configuration',
component: 'kubernetesConfigurationView',
const cluster = {
name: 'kubernetes.cluster',
url: '/cluster',
component: 'kubernetesClusterView',
const node = {
name: 'kubernetes.cluster.node',
url: '/:name',
component: 'kubernetesNodeView',
const nodeStats = {
name: 'kubernetes.cluster.node.stats',
url: '/stats',
component: 'kubernetesNodeStatsView',
const dashboard = {
name: 'kubernetes.dashboard',
url: '/dashboard',
component: 'kubernetesDashboardView',
const deploy = {
name: 'kubernetes.deploy',
url: '/deploy',
component: 'kubernetesDeployView',
const resourcePools = {
name: 'kubernetes.resourcePools',
url: '/pools',
component: 'kubernetesResourcePoolsView',
const resourcePoolCreation = {
name: 'kubernetes.resourcePools.new',
component: 'kubernetesCreateResourcePoolView',
const resourcePool = {
name: 'kubernetes.resourcePools.resourcePool',
url: '/:id',
component: 'kubernetesResourcePoolView',
const resourcePoolAccess = {
name: 'kubernetes.resourcePools.resourcePool.access',
url: '/access',
component: 'kubernetesResourcePoolAccessView',
const volumes = {
name: 'kubernetes.volumes',
url: '/volumes',
component: 'kubernetesVolumesView',
const volume = {
name: 'kubernetes.volumes.volume',
component: 'kubernetesVolumeView',
$stateRegistryProvider.register(kubernetes);
$stateRegistryProvider.register(applications);
$stateRegistryProvider.register(applicationCreation);
$stateRegistryProvider.register(application);
$stateRegistryProvider.register(applicationEdit);
$stateRegistryProvider.register(applicationConsole);
$stateRegistryProvider.register(applicationLogs);
$stateRegistryProvider.register(applicationStats);
$stateRegistryProvider.register(stacks);
$stateRegistryProvider.register(stack);
$stateRegistryProvider.register(stackLogs);
$stateRegistryProvider.register(configurations);
$stateRegistryProvider.register(configurationCreation);
$stateRegistryProvider.register(configuration);
$stateRegistryProvider.register(cluster);
$stateRegistryProvider.register(dashboard);
$stateRegistryProvider.register(deploy);
$stateRegistryProvider.register(node);
$stateRegistryProvider.register(nodeStats);
$stateRegistryProvider.register(resourcePools);
$stateRegistryProvider.register(resourcePoolCreation);
$stateRegistryProvider.register(resourcePool);
$stateRegistryProvider.register(resourcePoolAccess);
$stateRegistryProvider.register(volumes);
$stateRegistryProvider.register(volume);
]);