moonspot/kubernetes

此包的最新版本(v1.29.0)没有可用的许可信息。

用于组成 Kubernetes 对象的类库

v1.29.0 2023-12-14 18:40 UTC

README

此库用于构建、导入和导出 Kubernetes 对象。这些类都是使用位于 kubernetes/kubernetes 仓库中的 Swagger 文件构建的。

构建此库的原始目的是编写与 Kubernetes 对象交互的应用程序。此库不应用于构建配置管理仓库。用于管理对象的 PHP 代码可能比简单地编写所需的 YAML 更冗长和复杂。

版本兼容性

此库的版本遵循官方 Kubernetes 发布的次要/次要版本。仅支持 1.21 及以后的版本。

示例

$configmap = \Moonspot\Kubernetes\Kubernetes::new('ConfigMap');

$configmap->metadata->name = 'MyConfigMap';
$configmap->metadata->labels = [
    "app-name" => 'MyApp'
];
$configmap->data = [
    'config.ini' => "some_setting = 1\nsome_setting = 2\n"
];

echo $configmap->toYaml();

结果

---
apiVersion: v1
data:
  config.ini: |
    some_setting = 1
    some_setting = 2
kind: ConfigMap
metadata:
  labels:
    app-name: MyApp
  name: MyConfigMap
...

导入

Kubernetes 类的工厂方法将自动检测对象的类型并创建它。

$configmap = \Moonspot\Kubernetes\Kubernetes::factory(file_get_contents('./configmap.yaml'));

echo $configmap->metadata->name . "\n";

结果

MyConfigMap