Kubernetes CRDs-catalog完整指南一站式CRD JSON Schema资源库【免费下载链接】CRDs-catalogPopular Kubernetes CRDs (CustomResourceDefinition) in JSON schema format.项目地址: https://gitcode.com/gh_mirrors/cr/CRDs-catalogKubernetes CRDs-catalog项目是一个集中式资源库汇集了数百个流行的Kubernetes自定义资源定义CRDs的JSON Schema格式文件。这个强大的工具库为开发者和运维团队提供了一站式解决方案用于验证Kubernetes自定义资源的配置实现左移shift-left的DevOps实践。 为什么需要CRD验证工具在Kubernetes生态系统中自定义资源定义CRDs允许用户扩展Kubernetes API创建自定义资源类型。然而随着CRDs的广泛应用配置错误成为常见问题。传统的kubectl --dry-run验证需要访问集群这在CI/CD流水线或本地开发环境中并不总是可行的。Kubernetes CRDs-catalog解决了这一痛点它提供了离线验证能力无需集群访问即可验证CRD配置标准化Schema统一的JSON Schema格式广泛兼容性支持多种流行工具 快速开始使用CRDs-catalog安装与配置要开始使用这个强大的CRD JSON Schema资源库您首先需要克隆项目git clone https://gitcode.com/gh_mirrors/cr/CRDs-catalog cd CRDs-catalog项目结构清晰所有CRD Schema都按API组组织├── aadpodidentity.k8s.io/ │ ├── azureassignedidentity_v1.json │ ├── azureidentity_v1.json │ └── ... ├── cert-manager.io/ │ ├── certificate_v1.json │ ├── clusterissuer_v1.json │ └── ... ├── cilium.io/ │ ├── ciliumnetworkpolicy_v2.json │ └── ... └── ...支持的验证工具1. Datree集成Datree是一个强大的Kubernetes策略检查工具内置支持CRDs-catalogdatree test your-manifest.yaml2. Kubeconform配置Kubeconform是专门用于Kubernetes资源配置验证的工具kubeconform -schema-location default \ -schema-location https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json \ your-manifest.yaml3. VS Code智能提示通过Red Hat YAML插件在VS Code中获得完整的CRD智能提示和验证# yaml-language-server: $schemahttps://datreeio.github.io/CRDs-catalog/cilium.io/ciliumnetworkpolicy_v2.json apiVersion: cilium.io/v2 kind: CiliumNetworkPolicy metadata: name: demo-policy spec: endpointSelector: matchLabels: app: myapp CRD提取器实用工具项目内置的CRD提取器是真正的亮点这个实用工具可以从您的Kubernetes集群中提取所有CRD并转换为JSON Schema格式。一键提取CRDscd Utilities ./crd-extractor.sh该工具会自动检查Python3和kubectl是否安装从集群提取CRD定义转换为JSON Schema格式生成可直接使用的验证文件特定上下文提取如果您有多个Kubernetes集群可以指定上下文KUBECTL_CONTEXTproduction ./crd-extractor.sh开发环境支持项目支持多种开发环境Devbox用户devbox run crd-extractorNix用户nix develop ./crd-extractor.sh 项目结构与组织API组分类系统CRDs-catalog采用清晰的目录结构组织数千个CRD Schemacert-manager.io/ ├── certificate_v1.json # 证书管理 ├── clusterissuer_v1.json # 集群签发者 └── issuer_v1.json # 签发者 cilium.io/ ├── ciliumnetworkpolicy_v2.json # 网络策略 ├── ciliumegressgatewaypolicy_v2.json └── ciliumclusterwidenetworkpolicy_v2.json postgresql.cnpg.io/ ├── cluster_v1.json # PostgreSQL集群 └── backup_v1.json # 备份配置版本管理策略每个CRD Schema都包含完整的版本信息_v1.json- 稳定版本_v1alpha1.json- 实验性功能_v1beta1.json- 测试版本️ 实际应用场景场景1CI/CD流水线验证在GitHub Actions中集成CRD验证name: Validate Kubernetes Manifests on: [push] jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - name: Validate with Kubeconform run: | kubeconform -schema-location default \ -schema-location https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json \ manifests/场景2本地开发验证创建本地验证脚本validate.sh#!/bin/bash # 验证所有Kubernetes清单文件 for file in manifests/*.yaml; do echo Validating $file... kubeconform -schema-location default \ -schema-location https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json \ $file done场景3团队标准化在团队项目中创建.vscode/settings.json{ yaml.schemas: { https://datreeio.github.io/CRDs-catalog/cert-manager.io/certificate_v1.json: certificate.yaml, https://datreeio.github.io/CRDs-catalog/istio.io/virtualservice_v1beta1.json: virtualservice.yaml } } 高级使用技巧批量注释工具使用项目提供的annotate-yaml.py工具自动为YAML文件添加Schema注释python3 Utilities/annotate-yaml.py -i your-manifests/ -o annotated-manifests/离线环境部署对于隔离网络环境您可以下载完整的CRDs-catalog仓库设置本地Schema服务器配置工具使用本地路径kubeconform -schema-location default \ -schema-location file:///path/to/CRDs-catalog/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json \ manifests/自定义Schema扩展如果遇到未包含的CRD使用提取器生成# 从集群提取特定CRD kubectl get crd your-crd -o yaml custom-crd.yaml # 转换为JSON Schema python3 Utilities/openapi2jsonschema.py custom-crd.yaml 性能优化建议缓存策略对于频繁使用的Schema建议设置本地缓存# 下载常用Schema到本地 mkdir -p ~/.kube/schemas wget -P ~/.kube/schemas/ \ https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/cert-manager.io/certificate_v1.json \ https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/istio.io/virtualservice_v1beta1.json选择性验证只验证需要的CRD类型提高验证速度# 只验证特定API组的资源 kubeconform -skip-kinds Pod,Service \ -schema-location https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json \ manifests/ 社区贡献指南提交新的CRD Schema如果您发现缺少某个流行的CRD Schema使用CRD提取器从您的集群提取按照现有格式组织文件提交Pull Request到相应目录质量保证要求所有提交的Schema必须通过JSON Schema验证包含完整的元数据遵循项目命名约定通过基本的语法检查测试验证在提交前运行测试# 验证Schema格式 python3 -m json.tool your-schema.json /dev/null echo Valid JSON # 测试实际验证 kubeconform -schema-location file://./your-schema.json test-manifest.yaml 最佳实践总结1. 逐步采用策略从关键业务应用开始逐步扩展到所有CRD验证。2. 自动化集成将验证集成到CI/CD流水线确保每次提交都经过验证。3. 团队培训确保团队成员了解Schema验证的重要性。4. 定期更新定期更新本地Schema副本获取最新的CRD定义。5. 监控与告警设置验证失败的告警及时发现配置问题。 常见问题解答Q: CRDs-catalog支持哪些Kubernetes版本A: 项目支持Kubernetes 1.16及以上版本的所有CRD。Q: 如何处理私有CRDA: 使用CRD提取器从您的集群生成私有CRD的Schema。Q: 验证性能如何A: 本地缓存后验证速度与原生kubectl相当。Q: 是否支持WindowsA: 主要工具支持Linux和macOSWindows用户可以使用WSL。Q: 如何报告问题A: 在项目仓库中创建Issue提供详细的复现步骤。 结语Kubernetes CRDs-catalog项目为Kubernetes生态系统带来了革命性的改进。通过提供标准化的JSON Schema资源库它使得CRD验证变得简单、可靠且高效。无论您是刚开始接触Kubernetes的新手还是经验丰富的运维专家这个工具都能显著提升您的工作流程质量。记住好的验证策略不仅能防止错误还能加速开发流程。现在就开始使用CRDs-catalog让您的Kubernetes配置更加健壮可靠提示定期访问项目更新获取最新的CRD Schema和支持的工具特性。【免费下载链接】CRDs-catalogPopular Kubernetes CRDs (CustomResourceDefinition) in JSON schema format.项目地址: https://gitcode.com/gh_mirrors/cr/CRDs-catalog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考