• Русский
  • Конфигурация меню Tools

    В этом документе описывается, как добавить пользовательские ссылки инструментов в раздел Tools в левой навигации, например, для интеграции MLFlow.

    Начиная с AML 1.3, меню Tools больше не поддерживается путем ручного редактирования kube-public/centraldashboard-config. Вместо этого используется механизм автодетекции: система сканирует все ресурсы ConfigMap, помеченные меткой aml.cpaas.io/centralMenuItem: "true", и автоматически объединяет их для генерации конфигурации меню Tools.

    WARNING

    Не редактируйте вручную kube-public/centraldashboard-config. Любые ручные изменения будут отменены при обновлениях или перезапусках.

    Добавление пункта меню Tools

    Вы можете добавить новую запись в меню Tools, создав ConfigMap, который соответствует требуемому формату.

    Пример (MLFlow):

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: aml-mlflow-menu-config
      namespace: kubeflow
      labels:
        aml.cpaas.io/centralMenuItem: "true"
    data:
      menu: |-
        - link: "https://192.168.128.11/clusters/g1-c1-x86/mlflow/"
          parentUid: advanced
          title: MLFlow
          titleI18N:
            en: MLFlow
          tags: [kubeflow]
          order: 200040

    Описание полей

    • link: URL, который откроется при клике на пункт меню

    • parentUid: должен быть установлен в advanced, что размещает пункт в меню Tools

    • title / titleI18N: отображаемое имя пункта меню с поддержкой интернационализации

    • tags: При установке Alauda AI система агрегирует несколько ConfigMap в один. В процессе агрегации система автоматически добавляет поле aml-feature-tags в объединённую конфигурацию. По умолчанию это поле содержит встроенные теги, такие как addon, core, datasets, pretrain, tune-models и workbench.

      В приведённом выше примере, если пункт меню определяет tags как kubeflow, то aml-feature-tags также будет включать этот тег kubeflow. Механизм агрегации левой навигации использует дизайн с белым списком. Например, после выполнения следующей команды на странице будут отображаться только навигационные элементы, у которых в tags содержится kubeflow:

      kubectl annotate configmap aml-centraldashboard-config -n kube-public aml.cpaas.io/centralTagsFilter="kubeflow" --overwrite

      Все остальные теги, не совпадающие с kubeflow, будут оценены как false при фильтрации и, следовательно, исключены из навигации.

    • order: значение порядка отображения в меню; меньшие числа отображаются раньше

    Результат

    • После создания ConfigMap его содержимое автоматически объединяется в раздел data centraldashboard-config, например:

      apiVersion: v1
      data:
        aml-feature-tags: |-
          {
            "addon": true,
            "core": true,
            "datasets": true,
            "kubeflow": true,
            "pretrain": true,
            "tune-models": true,
            "workbench": true
          }
        links: |-
          {
            "menuLinks": [
              {
                "type": "item",
                "link": "/model-repo/model",
                "i18nKey": "nav_model_repo",
                "text": "模型仓库",
                "en": "Model Repository",
                "icon": "model-repo"
              },
              {
                "type": "item",
                "link": "/model-repo/service-manage",
                "i18nKey": "nav_infer_svc",
                "text": "推理服务",
                "en": "Inference Service",
                "icon": "service-manage"
              },
              {
                "type": "item",
                "link": "workbench",
                "i18nKey": "workbench",
                "text": "Workbench",
                "en": "Workbench",
                "icon": "sitemap"
              },
              {
                "type": "item",
                "link": "",
                "i18nKey": "nav_observe",
                "text": "可观测",
                "en": "Observe",
                "icon": "observe",
                "children": [
                  {
                    "type": "item",
                    "link": "monitor",
                    "i18nKey": "nav_monitor",
                    "text": "监控面板",
                    "en": "Monitor",
                    "icon": ""
                  }
                ]
              },
              {
                "type": "item",
                "link": "/model-repo/dataset",
                "i18nKey": "nav_dataset",
                "text": "数据集",
                "en": "Dataset",
                "icon": "data-set"
              },
              {
                "type": "item",
                "link": "",
                "i18nKey": "nav_model_optimization",
                "text": "模型优化",
                "en": "Model Optimization",
                "icon": "model-repo",
                "children": [
                  {
                    "type": "item",
                    "link": "/model-repo/training",
                    "i18nKey": "nav_pre_train",
                    "text": "预训练",
                    "en": "PreTraining",
                    "icon": ""
                  },
                  {
                    "type": "item",
                    "link": "/model-repo/task-template",
                    "i18nKey": "nav_task_temp",
                    "text": "任务模板",
                    "en": "Task Template",
                    "icon": ""
                  },
                  {
                    "type": "item",
                    "link": "/model-repo/fine-tuning",
                    "i18nKey": "nav_fine_tuning",
                    "text": "模型微调",
                    "en": "Fine-Tuning",
                    "icon": ""
                  }
                ]
              },
              {
                "type": "item",
                "link": "",
                "i18nKey": "tool",
                "text": "工具",
                "en": "Tools",
                "icon": "advanced",
                "children": [
                  {
                    "type": "item",
                    "link": "https://192.168.128.11/clusters/g1-c1-x86/mlflow/",
                    "i18nKey": "",
                    "text": "MLFlow",
                    "en": "MLFlow",
                    "icon": ""
                  }
                ]
              }
            ]
          }
      kind: ConfigMap
      metadata:
        name: centraldashboard-config
        namespace: kube-public
    • Соответствующий пункт меню появится в разделе Tools в левой навигации

    • Справа от пункта меню будет отображаться иконка стрелки, указывающая на внешнюю страницу

    • При клике на пункт меню откроется URL, указанный в поле link, в новой вкладке