Overview
In this documentation, we will explain the core idea of Nocalhost Server and clarify some technical terms that are widely used in the project.
#
The Concepts#
ClusterA Nocalhost Cluster is usually corresponds to a Kubernetes cluster. Nocalhost supports to manage multi cluster like TKE, GKE, Minikube and etc.
In the actual development process, users do not need to know the concept of Cluster, and user's operation under DevSpace actually rely on the capabilities of Cluster.
#
Cluster ManagementKubeConfig
If you want to manage a Cluster,then need to maintain a KubeConfig
with the cluster's Cluster-Admin role.
Cluster is generally used with DevSpace, if you need to manage Cluster, you refer to Manage Cluster
#
DevSpaceDevSpace is a concept of Nocalhost, which represents a pre-allocated development space managed by Nocalhost. Developers can deploy, uninstall, develop, and debug applications within DevSpace. DevSpaces are isolated from each other.
Nocalhost also allow developers to share their DevSpaces with other developers for collaborative development.
#
DevSpace ManagementIf you need to manage DevSpace, you can refer to Manage DevSpace
#
ApplicationApplication is a concept of Nocalhost, it is mainly used to manage a set of manifest files you want to apply for local development, it supports both Kubernetes manifest and helm chart. In other words, these manifests usually contain all the k8s resources that your own application depends on. If possible, we should try to keep it to a minimum.
Nocalhost supports three types of applications:
- Manifest
- Helm
- Kustomize
Application can be used to create a DevSpace, we recommend using IDE plug-in directly to deploy your application, IDE plugin is worked on the DevSpace created by Application. In other words, after being assigned a DevSpace, the developer can easily develop on the IDE.
After being assigned a DevSpace, you will get a KubeConfig
to access this DevSpace, nhctl
or plug-in can deploy the application based on the application's manifest file and KubeConfig
.
So DevSpace can actually be approximated as Application + Kubeconfig:
#
Application ManagementIf you need to manage Applications, you can refer to Manage Application
#
ServiceService is completely different from svc of Kubernetes. Service can be considered as an enhancement of application deployment and development.
- Read more to learn how to configure application development
- Read more to learn how to configure application deployment
Service Configs
Service configurations are not necessary, only needs when essential.
#
UserUser belongs to the independent concept of Nocalhost, it's different with user in Kubernetes. When you use Nocalhost Server
and Nocalhost Plugins, User is used to identify your identity and access control to resources.
There are two types of User in Nocalhost: Standard User and System Admin
#
Standard User- Can only log in IDE Plugin, users can develop under their own DevSpace. these DevSpace are all created by Administrator.
- User can only see their own DevSpace, and have all the permissions under these DevSpace, such as install, uninstall (deploy and destroy), enter DevMode and port-forwarding.
- Cannot log in to Nocalhost-Web, nor can they delete the DevSpace, or disassociate it from the DevSpace, which is very similar to the admin permission under a certain namespace of Kubernetes.
#
System AdminHas the permission to access
Nocalhost Server
, and with all the permissions in Nocalhost Web, such as create and manage Application, Cluster, User, DevSpace, etcHave all the permissions of User, such as logging in at IDE plugins, develop in their own DevSpace list
#
User ManagementIf you need to manage User, you can refer to Manage User