** 如果您遵循开发规范,即基于Kubernetes的CRD开发,意味着你不需要自行处理与后端的交互,与【非规范】不同,在routes配置过程中需要显示指定kind。**
一、环境准备
1.1 下载源代码
git clone https://github.com/kubesys/kube-frontend
1.2 安装后端服务(可选)
如果没有Kubernetes环境,参照[脚本安装](https://github.com/kubesys/installer),
kubeinst init-env
kubeinst init-kube
kubeinst init-backend
kubeinst init-frontend
1.3 修改baseURL
修改public/config.js的baseURL,<br />
1.4 运行程序
请确认已安装nodejs
npm install
npm run dev
二、CRD开发
2.1 定义CRD
详细可参见[Kubernetes CRD教程](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/)。
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: frontends.doslab.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.type
name: TYPE
type: string
- JSONPath: .metadata.creationTimestamp
name: AGE
type: date
group: doslab.io
names:
kind: Frontend
plural: frontends
shortNames:
- frontend
singular: frontend
scope: Namespaced
version: v1
2.2 基于CRD开发
参见我们自研软件[Kubernetes-client](https://github.com/kubesys/kubernetes-client-java),以及[教程](https://www.yuque.com/kubesys/kubernetes-client/overview),提供了以下语义的接口。
2.2.1 创建资源
public JsonNode createResource(JsonNode json) throws Exception {
2.2.2 删除资源
public JsonNode deleteResource(String kind, String namespace, String name) throws Exception {
2.2.3 更新资源
public JsonNode updateResource(JsonNode json) throws Exception {
2.2.4 获取资源
public JsonNode getResource(String kind, String namespace, String name) throws Exception {
2.2.5 查询资源
public JsonNode listResources(String kind, String namespace) throws Exception {
2.2.6 监听单一资源
public JsonNode watchResource(String kind, String namespace, String name, KubernetesWatcher watcher) throws Exception {
2.2.7 监听多个资源
public JsonNode watchResources(String kind, String namespace, KubernetesWatcher watcher) throws Exception {
三、在src/views下面开发自己的页面
3.1 开发页面
假设新开发一个页面apps/index.vue

3.2 集成界面
如果需要添加到主体框架,则执行以下命令
kubectl edit frontend routes-1001-admin
然后修改
- component: /app/index (即src/views/app/index.vue中/app/index)
kind: 与【非规范不同】,需要增加kind,即第二章定义的
name: 界面侧栏看到的名字
path: 查看语法 https://www.yuque.com/kubesys/kube-frontend/qz0cuq

同时配置以下文件(如果基于JSON操作,自动生成向导参照Template规范),参照https://gitee.com/syswu/yamls/tree/master/frontend/frontends,用于显示页面以下内容,如何配置参见项目语法。
- desc-[apiVersion].[kind]
- action-[apiVersion].[kind]
- formsearch-[apiVersion].[kind]
table-[apiVersion].[kind]
3.3 查看效果

