首页 / 资讯中心 / 文章详情

Meshery Cloudbees Previews 集成模型:预览环境 CRD 组件与可视化模型定义解析

Meshery Cloudbees Previews 集成模型:预览环境 CRD 组件与可视化模型定义解析 ★ FEATURED ARTICLE
云原生微服务运维DevOps【免费下载链接】mesheryMeshery, the cloud native manager项目地址https://gitcode.com/GitHub_Trending/me/meshery点击查看免费下载本文围绕 Meshery 扩展文档 Cloudbees Previews 模型页 及其背后的模型定义数据解析该集成模型在models/目录下的完整结构模型清单model.json的元数据字段、5 个 CRD 组件Environment、GitRepository、HierarchyConfiguration、HNCConfiguration、SubnamespaceAnchor的 JSON Schema 字段详解以及每个组件携带的通用能力capabilities列表。读完本文你可以理解 Meshery 如何通过声明式模型把 CloudBees Previews 这类 CI/CD 组件建模为可视化设计对象并能按 Schema 约束写出合法的 Environment / GitRepository 配置。一、文档定位一个集成模型的定义页该文档页是 Meshery 官方文档中extensions/models/目录下的模型条目其 frontmatter 声明了以下关键信息标题与副标题Cloudbees Previews —— “Collaborative and visual infrastructure as design for Cloudbees Previews”面向 Cloudbees Previews 的协作式、可视化基础设施即设计分类integrations-category: App Definition and Development子分类integrations-subcategory: Continuous Integration Delivery注册方registrantArtifact Hub即该模型是从 Artifact Hub 注册中心发现discovered而来功能列表featureListAutomates preview environment creation自动化创建预览环境Enables isolated testing and development支持隔离的测试与开发Integrates with GitOps workflows与 GitOps 工作流集成运作方式howItWorks“Integrates CloudBees Previews”细节描述为 “Streamlined preview environment management for Kubernetes applications”面向 Kubernetes 应用的简化预览环境管理组件计数components-count: 5relationship-count: 0——共 5 个组件、0 条组件间关系。frontmatter 中列出的 5 个组件名称hierarchy-configuration、hnc-configuration、subnamespace-anchor、environment、git-repository与仓库中 models/cloudbees-previews/1.2.0/v1.0.0/components/ 目录下的 5 个 JSON 文件一一对应components-count: 5与文件数量相互印证。二、目录结构与模型清单 model.json模型数据按 “模型名 / 模型版本 / 组件版本” 的三级目录组织models/cloudbees-previews/ └── 1.2.0/ # model.version 1.2.0 └── v1.0.0/ # 组件版本 ├── model.json # 模型清单 └── components/ ├── Environment.json ├── GitRepository.json ├── HNCConfiguration.json ├── HierarchyConfiguration.json └── SubnamespaceAnchor.jsonmodel.json 是模型清单核心字段如下字段值说明schemaVersionmodels.meshery.io/v1beta2模型清单遵循的 Schema 版本versionv1.0.0组件版本目录名来源name/displayNamecloudbees-previews/Cloudbees Previews模型标识与展示名statusenabled模型处于启用状态registrantArtifact Hubtyperegistrykindartifacthubstatusdiscovered来源注册中心信息category/subCategoryApp Definition and Development/Continuous Integration Delivery与文档页 frontmatter 分类一致metadata.primaryColor/shape#1997b5/round-rectangle模型图元的主色与圆角矩形形状model.version1.2.0对应上层目录名components_count/relationships_count0/0清单中未内联组件与关系详见下文第五节值得注意的是model.json中components与relationships字段均为null组件定义全部落在同级components/目录的独立 JSON 文件中清单只负责描述模型级元数据分类、来源、视觉样式。三、组件定义详解5 个 CRD 及其 JSON Schema每个组件文件schemaVersion: components.meshery.io/v1beta1都包含四部分模型上下文内嵌模型元数据、styles视觉样式、capabilities能力列表、componentK8s 资源类型 JSON Schema。其中metadata.isNamespaced标明该 CRD 是命名空间级还是集群级metadata.source_uri统一指向 CloudBees 制品仓库中的cloudbees-previews-0.30.3.tgzHelm 图包说明这些 CRD Schema 提取自 0.30.3 版本图表。3.1 Environmentenvironment.cloudbees.com/v1alpha1命名空间级Environment.json 定义预览环境的声明式入口。spec下字段如下必填项source字段类型说明spec.source.cloneURLstring仓库的 HTTPS Git 克隆地址spec.source.shastring基于哪个提交 SHA 创建环境spec.source.secretRef.nameobject读取仓库凭证的 Secret 名可选spec.ttlint64环境到期TTL 秒数后被删除spec.contextstring透传给 detector Job 的可选名称用于区分同一来源下的多个 deployablespec.deployerServiceAccountNamestring(un)deploy 操作使用的 ServiceAccountspec.detectorobject用于从源派生 generator/deployer 容器的检测容器未指定时使用全局默认。含image、command、args、envspec.envarray提供给所有容器的环境变量标准 K8sEnvVarname必填value/valueFrom支持 configMap/field/resource/secret 引用从 Schema 结构看detector的语义是“检测容器”Meshery 将其建模后用户可以在图形界面中声明检测镜像与启动命令而无需手写完整 CRD YAML。3.2 GitRepositoryenvironment.cloudbees.com/v1alpha1命名空间级GitRepository.json 描述接入预览管理的 Git 仓库。spec下字段必填项url字段类型说明spec.urlstring仓库 URLSchema 用pattern: ^(http\|https)://强制 HTTP(S) 协议spec.apiTokenSecretRef.nameobject存放 Git 凭证的 Secret 名spec.webhookSecretRef.nameobject存放 webhook 密钥的 Secret 名spec.autoCreateContextsstring[]创建 Pull Request 时直接创建环境配置的上下文列表spec.autoUpdateContextsstring[]环境变化时自动同步更新的上下文列表spec.imagePullSecretRefsobject[]该仓库环境使用的镜像拉取 Secret 列表spec.ingressTLSSecretRef.nameobject环境 Ingress 使用的 TLS Secret 名spec.resourcesobject容器预览的默认资源需求含requests/limitsx-kubernetes-int-or-string量化值spec.secretRefsarray密钥映射定义每项含name本地名、keyK8s Secret 名、items[]本地字段名到 Secret key 的映射三者均为必填spec.envarray传递给预览管理流水线所有容器的环境变量autoCreateContexts与autoUpdateContexts两个字段正是文档页 featureList 中 “Automates preview environment creation” 与 “Integrates with GitOps workflows” 两条特性的 Schema 级体现PR 打开即自动建立预览环境PR 变更即自动更新。3.3 HierarchyConfigurationhnc.x-k8s.io/v1alpha2集群级HierarchyConfiguration.json 来自 Kubernetes HNCHierarchical Namespace Controller注意其metadata.isNamespaced: false是集群级配置。Schema 很精简spec.parentstring该命名空间的父命名空间spec.allowCascadingDeletionboolean子命名空间是否允许级联删除。3.4 HNCConfigurationhnc.x-k8s.io/v1alpha2集群级HNCConfiguration.json 同样是集群级isNamespaced: false用于全局配置 HNC 的资源同步行为spec.resources[]每项含resource必填、group核心资源可省略、mode枚举Propagate/Ignore/Remove缺省按Propagate处理Schema 描述中明确roles与rolebindings已由 HNC 预配置为 Propagate 模式不允许在 spec 中覆盖。HNC 的两个配置组件与命名空间级组件组合构成了预览环境的隔离边界每个预览环境挂载在层级命名空间树下资源沿层级同步或隔离——这解释了 featureList 中 “Enables isolated testing and development” 的底层机制。3.5 SubnamespaceAnchorhnc.x-k8s.io/v1alpha2命名空间级SubnamespaceAnchor.json 的 Schema 几乎为空properties: {}。它是一个标记型marker资源在某个命名空间中创建 SubnamespaceAnchor 即声明“该命名空间允许在其下建立子命名空间”是 HNC 自助创建子命名空间的入口。空 Schema 本身即是其建模价值——Meshery 将其纳入模型后用户可在图形化设计中显式放置这个“锚点”对象。四、组件通用能力capabilities列表5 个组件文件携带了完全一致的 8 项能力schemaVersion: capability.meshery.io/v1alpha1version0.7.0可对照 Environment.json 第 75–190 行的capabilities数组displayNamekind / typesubType生效状态entityState含义Performance Testaction / operatorperf-testinstance发起性能测试Meshery 执行负载生成、采集指标并呈现结果Workload Configurationmutate / configurationconfigdeclaration配置组件的工作负载相关设置Labels and Annotations Configurationmutate / configurationlabels-and-annotationsdeclaration配置组件的标签与注解Relationshipsview / configurationrelationshipdeclaration instance查看组件关系Json Schemaview / configurationdefinitiondeclaration instance查看组件定义即本文第三节的 SchemaStylingmutate / style—declaration配置组件视觉样式Change Shapemutate / styleshapedeclaration更改组件图形形状Compound Drag And Dropinteraction / graphcompoundDnddeclaration在图形视图中将组件拖入父组件从能力结构看view类能力Relationships、Json Schema在声明态与实例态均可用mutate类能力限定在声明态declarationPerformance Test则限定在实例态instance——能力按实体生命周期状态分阶段开放。interaction类的 Compound Dnd 与 HNC 的层级命名空间建模天然契合把预览环境的命名空间对象拖入父级锚点即可在图上表达父子层级关系。五、视觉样式与数据来源文档页 frontmatter 中为每个组件声明了 color / white 两套图标路径位于extensions/models/cloudbees-previews/文档资源目录下与模型数据中的styles字段共同决定 Meshery 图形视图中的呈现模型级model.jsonprimaryColor: #1997b5secondaryColor: #ffffffshape: round-rectangle并内嵌了 CloudBees 主题色的svgColor图标组件级5 个组件统一primaryColor: #00B39F、secondaryColor: #00D3A9Meshery 品牌青绿色系、shape: circle并附带meshery-logo-light主题的 SVG 作为占位图形。styles与metadata中还存在svgColor/svgWhite/svgComplete三个内联 SVG 字段其中svgWhite内嵌的是 Meshery logo 矢量说明该模型在生成时使用了默认图标尚未替换为 CloudBees 专属白底图标——结合文档页 frontmatter 中已声明的whiteIcon路径可以推断文档侧的组件白图与模型数据内的占位 SVG 分属两套来源。source_uriCloudBees 公共制品仓库的cloudbees-previews-0.30.3.tgzHelm 图包是全部 6 个文件的共同溯源字段表明这套模型定义是从该版本 Helm 图表的 CRD 定义自动派生CRD 的apiVersionenvironment.cloudbees.com/v1alpha1与hnc.x-k8s.io/v1alpha2与openAPIV3Schema被转写为模型 JSON 中的component.version/component.kind/component.schema。六、关系、计数一致性与使用前提零关系设计文档页relationship-count: 0与model.json中relationships: null一致。5 个组件之间没有声明显式关系组件间的语义关联GitRepository 驱动 Environment、SubnamespaceAnchor 约束命名空间层级依赖使用者在图中以 Compound Drag And Drop 建立父子结构而非模型内固化的 relationship 对象。计数口径model.json的components_count: 0指清单文件内未内联组件对象实际组件数以components/目录文件数5 个与文档页components-count: 5为准。Schema 版本清单使用models.meshery.io/v1beta2而组件内嵌的模型引用仍为models.meshery.io/v1beta1组件文件本身为components.meshery.io/v1beta1属于模型清单升级过程中的版本混用阅读数据时应以清单schemaVersion为准。适用前提该模型描述的是 CloudBees Previews 0.30.3 图表所暴露的 CRD 集合2 个 environment.cloudbees.com/v1alpha1 类型 3 个 hnc.x-k8s.io/v1alpha2 类型若图表升级改变了 CRD 字段模型 JSON 中的 Schema 需同步更新。模型status: enabled且注册中心状态为discovered表示它是从 Artifact Hub 发现并纳入模型库的条目。七、小结Cloudbees Previews 集成模型展示了 Meshery 扩展体系的一种典型形态以 Artifact Hub 为注册来源从 Helm 图表cloudbees-previews-0.30.3自动派生 CRD 的 JSON Schema将 GitRepository、Environment 与 HNC 三件套HierarchyConfiguration / HNCConfiguration / SubnamespaceAnchor统一建模为可拖拽、可配置、可测试的图形化设计对象。对使用者的实际价值在于按第三节的字段表与 Schema 约束编写环境配置如spec.sourcespec.ttlautoCreateContexts即可在 Meshery 中完成预览环境的可视化声明而不必记忆各 CRD 的原始字段细节。赞分享云原生微服务运维DevOps【免费下载链接】mesheryMeshery, the cloud native manager项目地址https://gitcode.com/GitHub_Trending/me/meshery点击查看免费下载相关推荐Meshery 中的 Cilium 集成模型18 个 eBPF 网络组件的可视化定义与源码级解析Meshery 中的 Cilium 集成模型18 个 eBPF 网络组件的可视化定义与源码级解析 本篇以 Meshery 文档站中 Cilium 集成模型页云原生微服务运维DevOpsMeshery 集成模型解析Azure DB for MySQL 的组件建模与可视化设计实战Meshery 集成模型解析Azure DB for MySQL 的组件建模与可视化设计实战 本文围绕 Meshery 中 azure db for mysq云原生微服务运维DevOps在 Meshery 中以可视化方式管理 APISIX Ingress Controller模型组件与 CRD 配置深度解析在 Meshery 中以可视化方式管理 APISIX Ingress Controller模型组件与 CRD 配置深度解析 本篇技术指南围绕 Meshery云原生微服务运维DevOps上一篇抖音批量下载工具一键获取无水印视频、图文和直播的终极指南下一篇终极指南4步让老旧Mac焕发新生 - OpenCore Legacy Patcher完整教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站