"use strict"; (self["webpackChunkrancher_docs"] = self["webpackChunkrancher_docs"] || []).push([[32513],{ /***/ 3905: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Zo": () => (/* binding */ MDXProvider), /* harmony export */ "kt": () => (/* binding */ createElement) /* harmony export */ }); /* unused harmony exports MDXContext, useMDXComponents, withMDXComponents */ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67294); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } var isFunction = function isFunction(obj) { return typeof obj === 'function'; }; var MDXContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext({}); var withMDXComponents = function withMDXComponents(Component) { return function (props) { var allComponents = useMDXComponents(props.components); return /*#__PURE__*/React.createElement(Component, _extends({}, props, { components: allComponents })); }; }; var useMDXComponents = function useMDXComponents(components) { var contextComponents = react__WEBPACK_IMPORTED_MODULE_0__.useContext(MDXContext); var allComponents = contextComponents; if (components) { allComponents = isFunction(components) ? components(contextComponents) : _objectSpread2(_objectSpread2({}, contextComponents), components); } return allComponents; }; var MDXProvider = function MDXProvider(props) { var allComponents = useMDXComponents(props.components); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(MDXContext.Provider, { value: allComponents }, props.children); }; var TYPE_PROP_NAME = 'mdxType'; var DEFAULTS = { inlineCode: 'code', wrapper: function wrapper(_ref) { var children = _ref.children; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {}, children); } }; var MDXCreateElement = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) { var propComponents = props.components, mdxType = props.mdxType, originalType = props.originalType, parentName = props.parentName, etc = _objectWithoutProperties(props, ["components", "mdxType", "originalType", "parentName"]); var components = useMDXComponents(propComponents); var type = mdxType; var Component = components["".concat(parentName, ".").concat(type)] || components[type] || DEFAULTS[type] || originalType; if (propComponents) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, _objectSpread2(_objectSpread2({ ref: ref }, etc), {}, { components: propComponents })); } return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, _objectSpread2({ ref: ref }, etc)); }); MDXCreateElement.displayName = 'MDXCreateElement'; function createElement (type, props) { var args = arguments; var mdxType = props && props.mdxType; if (typeof type === 'string' || mdxType) { var argsLength = args.length; var createElementArgArray = new Array(argsLength); createElementArgArray[0] = MDXCreateElement; var newProps = {}; for (var key in props) { if (hasOwnProperty.call(props, key)) { newProps[key] = props[key]; } } newProps.originalType = type; newProps[TYPE_PROP_NAME] = typeof type === 'string' ? type : mdxType; createElementArgArray[1] = newProps; for (var i = 2; i < argsLength; i++) { createElementArgArray[i] = args[i]; } return react__WEBPACK_IMPORTED_MODULE_0__.createElement.apply(null, createElementArgArray); } return react__WEBPACK_IMPORTED_MODULE_0__.createElement.apply(null, args); } /***/ }), /***/ 69144: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "assets": () => (/* binding */ assets), /* harmony export */ "contentTitle": () => (/* binding */ contentTitle), /* harmony export */ "default": () => (/* binding */ MDXContent), /* harmony export */ "frontMatter": () => (/* binding */ frontMatter), /* harmony export */ "metadata": () => (/* binding */ metadata), /* harmony export */ "toc": () => (/* binding */ toc) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67294); /* harmony import */ var _mdx_js_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3905); /* @jsxRuntime classic */ /* @jsx mdx */ /* @jsxFrag React.Fragment */ function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _object_spread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _define_property(target, key, source[key]); }); } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _object_without_properties(source, excluded) { if (source == null) return {}; var target = _object_without_properties_loose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for(i = 0; i < sourceSymbolKeys.length; i++){ key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _object_without_properties_loose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for(i = 0; i < sourceKeys.length; i++){ key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } const frontMatter = { title: 'Namespaces' }; const contentTitle = undefined; const metadata = { "unversionedId": "how-to-guides/advanced-user-guides/manage-projects/manage-namespaces", "id": "version-2.0-2.4/how-to-guides/advanced-user-guides/manage-projects/manage-namespaces", "title": "Namespaces", "description": "Within Rancher, you can further divide projects into different namespaces, which are virtual clusters within a project backed by a physical cluster. Should you require another level of organization beyond projects and the default namespace, you can use multiple namespaces to isolate applications and resources.", "source": "@site/versioned_docs/version-2.0-2.4/how-to-guides/advanced-user-guides/manage-projects/manage-namespaces.md", "sourceDirName": "how-to-guides/advanced-user-guides/manage-projects", "slug": "/how-to-guides/advanced-user-guides/manage-projects/manage-namespaces", "permalink": "/v2.0-v2.4/how-to-guides/advanced-user-guides/manage-projects/manage-namespaces", "draft": false, "editUrl": "https://github.com/rancher/rancher-docs/edit/main/versioned_docs/version-2.0-2.4/how-to-guides/advanced-user-guides/manage-projects/manage-namespaces.md", "tags": [], "version": "2.0-2.4", "lastUpdatedAt": 1692130131, "formattedLastUpdatedAt": "Aug 15, 2023", "frontMatter": { "title": "Namespaces" }, "sidebar": "tutorialSidebar", "previous": { "title": "Adding Users to Projects", "permalink": "/v2.0-v2.4/how-to-guides/advanced-user-guides/manage-projects/add-users-to-projects" }, "next": { "title": "Rancher's CI/CD Pipelines", "permalink": "/v2.0-v2.4/how-to-guides/advanced-user-guides/manage-projects/ci-cd-pipelines" } }; const assets = {}; const toc = [ { value: 'Creating Namespaces', id: 'creating-namespaces', level: 3 }, { value: 'Moving Namespaces to Another Project', id: 'moving-namespaces-to-another-project', level: 3 }, { value: 'Editing Namespace Resource Quotas', id: 'editing-namespace-resource-quotas', level: 3 } ]; const layoutProps = { toc }; const MDXLayout = "wrapper"; function MDXContent(_param) { var { components } = _param, props = _object_without_properties(_param, [ "components" ]); return /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)(MDXLayout, _object_spread_props(_object_spread({}, layoutProps, props), { components: components, mdxType: "MDXLayout" }), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("head", null, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("link", { rel: "canonical", href: "https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/manage-namespaces" })), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, `Within Rancher, you can further divide projects into different `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "p", "href": "https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/" }, `namespaces`), `, which are virtual clusters within a project backed by a physical cluster. Should you require another level of organization beyond projects and the `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("inlineCode", { parentName: "p" }, `default`), ` namespace, you can use multiple namespaces to isolate applications and resources.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, `Although you assign resources at the project level so that each namespace in the project can use them, you can override this inheritance by assigning resources explicitly to a namespace.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, `Resources that you can assign directly to namespaces include:`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("ul", null, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/pages-for-subheaders/workloads-and-pods" }, `Workloads`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/pages-for-subheaders/load-balancer-and-ingress-controller" }, `Load Balancers/Ingress`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/how-to-guides/new-user-guides/kubernetes-resources-setup/create-services" }, `Service Discovery Records`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/pages-for-subheaders/provisioning-storage-examples" }, `Persistent Volume Claims`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/how-to-guides/new-user-guides/kubernetes-resources-setup/encrypt-http-communication" }, `Certificates`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/how-to-guides/new-user-guides/kubernetes-resources-setup/configmaps" }, `ConfigMaps`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/how-to-guides/new-user-guides/kubernetes-resources-setup/kubernetes-and-docker-registries" }, `Registries`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/how-to-guides/new-user-guides/kubernetes-resources-setup/secrets" }, `Secrets`))), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, `To manage permissions in a vanilla Kubernetes cluster, cluster admins configure role-based access policies for each namespace. With Rancher, user permissions are assigned on the project level instead, and permissions are automatically inherited by any namespace owned by the particular project.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("blockquote", null, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "blockquote" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Note:`), ` If you create a namespace with `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("inlineCode", { parentName: "p" }, `kubectl`), `, it may be unusable because `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("inlineCode", { parentName: "p" }, `kubectl`), ` doesn't require your new namespace to be scoped within a project that you have access to. If your permissions are restricted to the project level, it is better to `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "p", "href": "/v2.0-v2.4/how-to-guides/advanced-user-guides/manage-projects/manage-namespaces" }, `create a namespace through Rancher`), ` to ensure that you will have permission to access the namespace.`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("h3", { "id": "creating-namespaces" }, `Creating Namespaces`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, `Create a new namespace to isolate apps and resources in a project.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("blockquote", null, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "blockquote" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Tip:`), ` When working with project resources that you can assign to a namespace (i.e., `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "p", "href": "/v2.0-v2.4/how-to-guides/new-user-guides/kubernetes-resources-setup/workloads-and-pods/deploy-workloads" }, `workloads`), `, `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "p", "href": "/v2.0-v2.4/how-to-guides/new-user-guides/kubernetes-resources-setup/encrypt-http-communication" }, `certificates`), `, `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "p", "href": "/v2.0-v2.4/how-to-guides/new-user-guides/kubernetes-resources-setup/configmaps" }, `ConfigMaps`), `, etc.) you can create a namespace on the fly.`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("ol", null, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ol" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "li" }, `From the `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Global`), ` view, open the project where you want to create a namespace.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("blockquote", { parentName: "li" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "blockquote" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Tip:`), ` As a best practice, we recommend creating namespaces from the project level. However, cluster owners and members can create them from the cluster level as well.`))), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ol" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "li" }, `From the main menu, select `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Namespace`), `. The click `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Add Namespace`), `.`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ol" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "li" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Optional:`), ` If your project has `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "p", "href": "/v2.0-v2.4/pages-for-subheaders/manage-project-resource-quotas" }, `Resource Quotas`), ` in effect, you can override the default resource `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Limits`), ` (which places a cap on the resources that the namespace can consume).`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ol" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "li" }, `Enter a `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Name`), ` and then click `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Create`), `.`))), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Result:`), ` Your namespace is added to the project. You can begin assigning cluster resources to the namespace.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("h3", { "id": "moving-namespaces-to-another-project" }, `Moving Namespaces to Another Project`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, `Cluster admins and members may occasionally need to move a namespace to another project, such as when you want a different team to start using the application.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("ol", null, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ol" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "li" }, `From the `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Global`), ` view, open the cluster that contains the namespace you want to move.`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ol" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "li" }, `From the main menu, select `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Projects/Namespaces`), `.`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ol" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "li" }, `Select the namespace(s) that you want to move to a different project. Then click `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Move`), `. You can move multiple namespaces at one.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("blockquote", { parentName: "li" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "blockquote" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Notes:`)), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("ul", { parentName: "blockquote" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, `Don't move the namespaces in the `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("inlineCode", { parentName: "li" }, `System`), ` project. Moving these namespaces can adversely affect cluster networking.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, `You cannot move a namespace into a project that already has a `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "li", "href": "/v2.0-v2.4/pages-for-subheaders/manage-project-resource-quotas" }, `resource quota`), ` configured.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ul" }, `If you move a namespace from a project that has a quota set to a project with no quota set, the quota is removed from the namespace.`)))), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("li", { parentName: "ol" }, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", { parentName: "li" }, `Choose a new project for the new namespace and then click `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Move`), `. Alternatively, you can remove the namespace from all projects by selecting `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `None`), `.`))), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("strong", { parentName: "p" }, `Result:`), ` Your namespace is moved to a different project (or is unattached from all projects). If any project resources are attached to the namespace, the namespace releases them and then attached resources from the new project.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("h3", { "id": "editing-namespace-resource-quotas" }, `Editing Namespace Resource Quotas`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, `You can always override the namespace default limit to provide a specific namespace with access to more (or less) project resources.`), /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("p", null, `For more information, see how to `, /*#__PURE__*/ (0,_mdx_js_react__WEBPACK_IMPORTED_MODULE_1__/* .mdx */ .kt)("a", { parentName: "p", "href": "/v2.0-v2.4/how-to-guides/advanced-user-guides/manage-projects/manage-project-resource-quotas/override-default-limit-in-namespaces" }, `edit namespace resource quotas`), `.`)); } MDXContent.isMDXComponent = true; /***/ }) }]);