kubernetes / php-client
完整的Kubernetes API客户端
Requires
- php: >=7.2
- kubernetes/php-runtime: ^1
Requires (Dev)
- ext-json: *
- allansun/openapi-parser: ^1
- cpliakas/git-wrapper: ^2.0
- mattketmo/camel: ^1.1
- phpunit/phpunit: ^7|^8|^9
- symfony/console: ^4|^5
- symfony/filesystem: ^4|^5
- symfony/monolog-bridge: ^4|^5
- zendframework/zend-code: 3.3.*
- dev-master
- v1.22.0-alpha.0
- v1.21.11.x-dev
- v1.21.11
- v1.21.4-rc.0
- v1.21.3-rc.0
- v1.21.2-rc.0
- v1.21.1-rc.0
- v1.21.0-alpha.0
- v1.20.9-rc.0
- v1.20.8.x-dev
- v1.20.8
- v1.20.8-rc.0
- v1.20.7-rc.0
- v1.20.6-rc.0
- v1.20.5-rc.0
- v1.20.4-rc.0
- v1.20.3-rc.0
- v1.20.2-rc.0
- v1.20.1-rc.1
- v1.20.1-rc.0
- v1.20.0-beta.2
- v1.20.0-beta.1
- v1.20.0-beta.0
- v1.20.0-alpha.3
- v1.20.0-alpha.2
- v1.20.0-alpha.1
- v1.20.0-alpha.0
- v1.19.14-rc.0
- v1.19.13-rc.0
- v1.19.12-rc.0
- v1.19.11-rc.0
- v1.19.10-rc.0
- v1.19.9-rc.0
- v1.19.8-rc.0
- v1.19.7-rc.0
- v1.19.6-rc.1
- v1.19.6-rc.0
- v1.19.5-rc.0
- v1.19.4.x-dev
- v1.19.4
- v1.19.4-rc.0
- v1.19.3.x-dev
- v1.19.3
- v1.19.3-rc.0
- v1.19.2.x-dev
- v1.19.2-patch.0
- v1.19.2
- v1.19.2-rc.0
- v1.19.1.x-dev
- v1.19.1
- v1.19.1-rc.0
- v1.19.0.x-dev
- v1.19.0
- v1.19.0-rc.4
- v1.19.0-rc.3
- v1.19.0-rc.2
- v1.19.0-rc.1
- v1.19.0-rc.0
- v1.19.0-beta.2
- v1.19.0-beta.1
- v1.19.0-beta.0
- v1.19.0-alpha.3
- v1.19.0-alpha.2
- v1.19.0-alpha.1
- v1.19.0-alpha.0
- v1.18.21-rc.0
- v1.18.20-rc.0
- v1.18.19-rc.0
- v1.18.18-rc.0
- v1.18.17-rc.0
- v1.18.16-rc.0
- v1.18.15-rc.0
- v1.18.14-rc.1
- v1.18.14-rc.0
- v1.18.13-rc.0
- v1.18.12.x-dev
- v1.18.12
- v1.18.12-rc.1
- v1.18.11.x-dev
- v1.18.11
- v1.18.11-rc.0
- v1.18.10.x-dev
- v1.18.10
- v1.18.10-rc.0
- v1.18.9.x-dev
- v1.18.9-patch.0
- v1.18.9
- v1.18.9-rc.0
- v1.18.8.x-dev
- v1.18.8
- v1.18.8-rc.1
- v1.18.8-rc.0
- v1.18.7.x-dev
- v1.18.7
- v1.18.7-rc.0
- v1.18.6.x-dev
- v1.18.6
- v1.18.6-rc.0
- v1.18.5.x-dev
- v1.18.5
- v1.18.5-rc.1
- v1.18.5-rc.0
- v1.18.4.x-dev
- v1.18.4
- v1.18.4-rc.0
- v1.18.3.x-dev
- v1.18.3
- v1.18.3-beta.0
- v1.18.2.x-dev
- v1.18.2
- v1.18.2-beta.0
- v1.18.1.x-dev
- v1.18.1
- v1.18.1-beta.0
- v1.18.0.x-dev
- v1.18.0
- v1.18.0-rc.1
- v1.18.0-beta.2
- v1.18.0-beta.1
- v1.18.0-beta.0
- v1.18.0-alpha.5
- v1.18.0-alpha.4
- v1.18.0-alpha.3
- v1.18.0-alpha.2
- v1.18.0-alpha.1
- v1.18.0-alpha.0
- v1.17.18-rc.0
- v1.17.17-rc.0
- v1.17.16-rc.1
- v1.17.16-rc.0
- v1.17.15-rc.0
- v1.17.14.x-dev
- v1.17.14
- v1.17.14-rc.0
- v1.17.13.x-dev
- v1.17.13
- v1.17.13-rc.0
- v1.17.12.x-dev
- v1.17.12-patch.0
- v1.17.12
- v1.17.12-rc.0
- v1.17.11.x-dev
- v1.17.11
- v1.17.11-rc.1
- v1.17.11-rc.0
- v1.17.10.x-dev
- v1.17.10
- v1.17.10-rc.0
- v1.17.9.x-dev
- v1.17.9
- v1.17.9-rc.0
- v1.17.8.x-dev
- v1.17.8
- v1.17.8-rc.1
- v1.17.8-rc.0
- v1.17.7.x-dev
- v1.17.7
- v1.17.7-rc.0
- v1.17.6.x-dev
- v1.17.6
- v1.17.6-beta.0
- v1.17.5.x-dev
- v1.17.5
- v1.17.5-beta.0
- v1.17.4.x-dev
- v1.17.4
- v1.17.4-beta.0
- v1.17.3.x-dev
- v1.17.3
- v1.17.3-beta.0
- v1.17.2.x-dev
- v1.17.2
- v1.17.2-beta.0
- v1.17.1.x-dev
- v1.17.1
- v1.17.1-beta.0
- v1.17.0.x-dev
- v1.17.0
- v1.17.0-rc.2
- v1.17.0-rc.1
- v1.17.0-beta.2
- v1.17.0-beta.1
- v1.17.0-beta.0
- v1.17.0-alpha.3
- v1.17.0-alpha.2
- v1.17.0-alpha.1
- v1.17.0-alpha.0
- v1.16.16-rc.0
- v1.16.15.x-dev
- v1.16.15-patch.0
- v1.16.15
- v1.16.15-rc.0
- v1.16.14.x-dev
- v1.16.14
- v1.16.14-rc.0
- v1.16.13.x-dev
- v1.16.13
- v1.16.13-rc.0
- v1.16.12.x-dev
- v1.16.12
- v1.16.12-rc.1
- v1.16.12-rc.0
- v1.16.11.x-dev
- v1.16.11
- v1.16.11-rc.0
- v1.16.10.x-dev
- v1.16.10
- v1.16.10-beta.0
- v1.16.9.x-dev
- v1.16.9
- v1.16.9-beta.0
- v1.16.8.x-dev
- v1.16.8
- v1.16.8-beta.0
- v1.16.7.x-dev
- v1.16.7
- v1.16.7-beta.0
- v1.16.6.x-dev
- v1.16.6
- v1.16.6-beta.0
- v1.16.5.x-dev
- v1.16.5
- v1.16.5-beta.1
- v1.16.5-beta.0
- v1.16.4.x-dev
- v1.16.4
- v1.16.4-beta.0
- v1.16.3.x-dev
- v1.16.3
- v1.16.3-beta.0
- v1.16.2.x-dev
- v1.16.2
- v1.16.2-beta.0
- v1.16.1.x-dev
- v1.16.1
- v1.16.1-beta.0
- v1.16.0.x-dev
- v1.16.0
- v1.16.0-rc.2
- v1.16.0-rc.1
- v1.16.0-beta.2
- v1.16.0-beta.1
- v1.16.0-beta.0
- v1.16.0-alpha.3
- v1.16.0-alpha.2
- v1.16.0-alpha.1
- v1.16.0-alpha.0
- v1.15.13-beta.0
- v1.15.12.x-dev
- v1.15.12-patch.0
- v1.15.12
- v1.15.12-beta.0
- v1.15.11.x-dev
- v1.15.11
- v1.15.11-beta.0
- v1.15.10.x-dev
- v1.15.10
- v1.15.10-beta.0
- v1.15.9.x-dev
- v1.15.9
- v1.15.9-beta.0
- v1.15.8.x-dev
- v1.15.8
- v1.15.8-beta.1
- v1.15.8-beta.0
- v1.15.7.x-dev
- v1.15.7
- v1.15.7-beta.0
- v1.15.6.x-dev
- v1.15.6
- v1.15.6-beta.0
- v1.15.5.x-dev
- v1.15.5
- v1.15.5-beta.0
- v1.15.4.x-dev
- v1.15.4
- v1.15.4-beta.0
- v1.15.3.x-dev
- v1.15.3
- v1.15.3-beta.0
- v1.15.2.x-dev
- v1.15.2
- v1.15.2-beta.0
- v1.15.1.x-dev
- v1.15.1
- v1.15.1-beta.0
- v1.15.0.x-dev
- v1.15.0
- v1.15.0-rc.1
- v1.15.0-beta.2
- v1.15.0-beta.1
- v1.15.0-beta.0
- v1.15.0-alpha.3
- v1.15.0-alpha.2
- v1.15.0-alpha.1
- v1.15.0-alpha.0
- v1.14.11-beta.1
- v1.14.11-beta.0
- v1.14.10.x-dev
- v1.14.10-patch.0
- v1.14.10
- v1.14.10-beta.0
- v1.14.9.x-dev
- v1.14.9
- v1.14.9-beta.0
- v1.14.8.x-dev
- v1.14.8
- v1.14.8-beta.0
- v1.14.7.x-dev
- v1.14.7
- v1.14.7-beta.0
- v1.14.6.x-dev
- v1.14.6
- v1.14.6-beta.0
- v1.14.5.x-dev
- v1.14.5
- v1.14.5-beta.0
- v1.14.4.x-dev
- v1.14.4
- v1.14.4-beta.0
- v1.14.3.x-dev
- v1.14.3
- v1.14.3-beta.0
- v1.14.2.x-dev
- v1.14.2
- v1.14.2-beta.0
- v1.14.1.x-dev
- v1.14.1
- v1.14.1-beta.0
- v1.14.0.x-dev
- v1.14.0
- v1.14.0-rc.1
- v1.14.0-beta.2
- v1.14.0-beta.1
- v1.14.0-beta.0
- v1.14.0-alpha.3
- v1.14.0-alpha.2
- v1.14.0-alpha.1
- v1.13.13-beta.0
- v1.13.12.x-dev
- v1.13.12-patch.0
- v1.13.12
- v1.13.12-beta.0
- v1.13.11.x-dev
- v1.13.11
- v1.13.11-beta.0
- v1.13.10.x-dev
- v1.13.10
- v1.13.10-beta.0
- v1.13.9.x-dev
- v1.13.9
- v1.13.9-beta.0
- v1.13.8.x-dev
- v1.13.8
- v1.13.8-beta.0
- v1.13.7.x-dev
- v1.13.7
- v1.13.7-beta.0
- v1.13.6.x-dev
- v1.13.6
- v1.13.6-beta.0
- v1.13.5.x-dev
- v1.13.5
- v1.13.5-beta.0
- v1.13.4.x-dev
- v1.13.4
- v1.13.4-beta.0
- v1.13.3.x-dev
- v1.13.3
- v1.13.3-beta.0
- v1.13.2.x-dev
- v1.13.2
- v1.13.2-beta.0
- v1.13.1.x-dev
- v1.13.1
- v1.13.1-beta.0
- v1.13.0.x-dev
- v1.13.0
- v1.12.11-beta.0
- v1.12.10.x-dev
- v1.12.10-patch.0
- v1.12.10
- v1.12.10-beta.0
- v1.12.9.x-dev
- v1.12.9
- v1.12.9-beta.0
- v1.12.8.x-dev
- v1.12.8
- v1.12.8-beta.0
- v1.12.7.x-dev
- v1.12.7
- v1.12.7-beta.0
- v1.12.6.x-dev
- v1.12.6
- v1.12.6-beta.0
- v1.12.5.x-dev
- v1.12.5
- v1.12.5-beta.0
- v1.12.4.x-dev
- v1.12.4
- v1.11.11-beta.0
- v1.11.10.x-dev
- v1.11.10-patch.0
- v1.11.10
- v1.11.10-beta.0
- v1.11.9.x-dev
- v1.11.9
- v1.11.9-beta.0
- v1.11.8.x-dev
- v1.11.8
- v1.11.8-beta.0
- v1.11.7.x-dev
- v1.11.7
- v1.11.7-beta.0
- v1.11.6.x-dev
- v1.11.6
- v1.10.14-beta.0
- v1.10.13.x-dev
- v1.10.13
- v1.10.13-beta.0
- v1.10.12.x-dev
- v1.10.12
- v1.9.11.x-dev
- v1.9.11
- dev-revert-84-v1.24.0
- dev-dependabot/composer/symfony/filesystem-5.4.23
- dev-dependabot/composer/symfony/console-5.4.23
- dev-dependabot/composer/guzzlehttp/psr7-2.5.0
- dev-dependabot/composer/phpunit/phpunit-9.6.7
- dev-v1.21.4-rc.0
- dev-v1.19.14-rc.0
- dev-v1.19.13-rc.0
- dev-v1.21.3-rc.0
- dev-v1.18.21-rc.0
- dev-v1.20.9-rc.0
- dev-v1.19.12-rc.0
- dev-v1.18.20-rc.0
- dev-v1.21.2-rc.0
- dev-v1.20.8-rc.0
- dev-v1.19.11-rc.0
- dev-v1.20.7-rc.0
- dev-v1.18.19-rc.0
- dev-v1.21.1-rc.0
- dev-v1.22.0-alpha.0
- dev-v1.18.18-rc.0
- dev-v1.20.6-rc.0
- dev-v1.19.10-rc.0
- dev-v1.19.9-rc.0
- dev-v1.20.5-rc.0
- dev-v1.20.4-rc.0
- dev-v1.18.17-rc.0
- dev-v1.17.18-rc.0
- dev-v1.20.3-rc.0
- dev-v1.18.16-rc.0
- dev-v1.19.8-rc.0
- dev-v1.19.7-rc.0
- dev-v1.17.17-rc.0
- dev-v1.18.15-rc.0
- dev-v1.20.2-rc.0
- dev-v1.18.14-rc.1
- dev-v1.20.1-rc.1
- dev-v1.17.16-rc.1
- dev-v1.19.6-rc.0
- dev-v1.18.14-rc.0
- dev-v1.19.6-rc.1
- dev-v1.17.16-rc.0
- dev-v1.20.1-rc.0
- dev-v1.21.0-alpha.0
- dev-v1.20.0-beta.2
- dev-v1.18.13-rc.0
- dev-v1.18.12-rc.1
- dev-v1.19.5-rc.0
- dev-v1.17.15-rc.0
- dev-v1.20.0-beta.1
- dev-v1.20.0-beta.0
- dev-v1.20.0-alpha.3
- dev-v1.18.11-rc.0
- dev-v1.17.14-rc.0
- dev-v1.19.4-rc.0
- dev-v1.20.0-alpha.2
- dev-v1.19.2-patch.0
- dev-v1.18.9-patch.0
- dev-v1.17.12-patch.0
- dev-v1.16.15-patch.0
- dev-v1.15.12-patch.0
- dev-v1.14.10-patch.0
- dev-v1.13.12-patch.0
- dev-v1.12.10-patch.0
- dev-v1.11.10-patch.0
- dev-v1.20.0-alpha.1
- dev-v1.19.3-rc.0
- dev-v1.17.13-rc.0
- dev-v1.18.10-rc.0
- dev-v1.19.2-rc.0
- dev-v1.16.16-rc.0
- dev-v1.19.1-rc.0
- dev-v1.16.15-rc.0
- dev-v1.17.12-rc.0
- dev-v1.18.9-rc.0
- dev-v1.17.11-rc.1
- dev-v1.18.8-rc.0
- dev-v1.18.8-rc.1
- dev-v1.17.11-rc.0
- dev-v1.19.0-rc.4
- dev-v1.19.0-rc.3
- dev-v1.19.0-rc.2
- dev-v1.16.14-rc.0
- dev-v1.18.7-rc.0
- dev-v1.17.10-rc.0
- dev-v1.19.0-rc.1
- dev-v1.20.0-alpha.0
- dev-v1.19.0-rc.0
- dev-v1.17.9-rc.0
- dev-v1.16.13-rc.0
- dev-v1.18.6-rc.0
- dev-v1.17.8-rc.1
- dev-v1.18.5-rc.1
- dev-v1.16.12-rc.1
- dev-v1.16.12-rc.0
- dev-v1.17.8-rc.0
- dev-v1.18.5-rc.0
- dev-v1.19.0-beta.2
- dev-v1.19.0-beta.1
- dev-v1.17.7-rc.0
- dev-v1.16.11-rc.0
- dev-v1.18.4-rc.0
- dev-v1.19.0-beta.0
- dev-v1.15.13-beta.0
- dev-v1.19.0-alpha.3
- dev-v1.19.0-alpha.2
- dev-v1.17.6-beta.0
- dev-v1.16.10-beta.0
- dev-v1.18.3-beta.0
- dev-v1.18.2-beta.0
- dev-v1.19.0-alpha.1
- dev-v1.18.1-beta.0
- dev-v1.18.0-rc.1
- dev-v1.15.12-beta.0
- dev-v1.17.5-beta.0
- dev-v1.16.9-beta.0
- dev-v1.18.0-beta.2
- dev-v1.18.0-beta.1
- dev-v1.18.0-beta.0
- dev-v1.19.0-alpha.0
- dev-v1.18.0-alpha.5
- dev-v1.18.0-alpha.4
- dev-v1.16.8-beta.0
- dev-v1.17.4-beta.0
- dev-v1.15.11-beta.0
- dev-v1.18.0-alpha.3
- dev-v1.16.7-beta.0
- dev-v1.18.0-alpha.2
- dev-v1.15.10-beta.0
- dev-v1.17.3-beta.0
- dev-v1.15.9-beta.0
- dev-v1.16.6-beta.0
- dev-v1.17.2-beta.0
- dev-v1.18.0-alpha.1
- dev-v1.16.5-beta.1
- dev-v1.15.8-beta.1
- dev-v1.14.11-beta.1
- dev-v1.14.11-beta.0
- dev-v1.15.8-beta.0
- dev-v1.16.5-beta.0
- dev-v1.17.1-beta.0
- dev-v1.17.0-rc.2
- dev-v1.17.0-rc.1
- dev-v1.17.0-beta.2
- dev-v1.14.10-beta.0
- dev-v1.16.4-beta.0
- dev-v1.15.7-beta.0
- dev-v1.17.0-beta.1
- dev-v1.18.0-alpha.0
- dev-v1.17.0-beta.0
- dev-v1.17.0-alpha.3
- dev-v1.13.13-beta.0
- dev-v1.14.9-beta.0
- dev-v1.16.3-beta.0
- dev-v1.15.6-beta.0
- dev-v1.17.0-alpha.2
- dev-v1.16.2-beta.0
- dev-v1.17.0-alpha.1
- dev-v1.15.5-beta.0
- dev-v1.16.1-beta.0
- dev-v1.13.12-beta.0
- dev-v1.14.8-beta.0
- dev-v1.16.0-rc.2
- dev-v1.16.0-rc.1
- dev-v1.16.0-beta.2
- dev-v1.16.0-beta.1
- dev-v1.14.7-beta.0
- dev-v1.15.4-beta.0
- dev-v1.13.11-beta.0
- dev-v1.16.0-beta.0
- dev-v1.17.0-alpha.0
- dev-v1.16.0-alpha.3
- dev-v1.13.10-beta.0
- dev-v1.14.6-beta.0
- dev-v1.15.3-beta.0
- dev-v1.16.0-alpha.2
- dev-v1.15.2-beta.0
- dev-v1.16.0-alpha.1
- dev-v1.14.5-beta.0
- dev-v1.13.9-beta.0
- dev-v1.12.11-beta.0
- dev-v1.15.1-beta.0
- dev-v1.15.0-rc.1
- dev-v1.13.8-beta.0
- dev-v1.14.4-beta.0
- dev-v1.15.0-beta.2
- dev-v1.12.10-beta.0
- dev-v1.15.0-beta.1
- dev-v1.14.3-beta.0
- dev-v1.15.0-beta.0
- dev-v1.16.0-alpha.0
- dev-v1.13.7-beta.0
- dev-v1.15.0-alpha.3
- dev-v1.11.11-beta.0
- dev-v1.15.0-alpha.2
- dev-v1.12.9-beta.0
- dev-v1.15.0-alpha.1
- dev-v1.14.2-beta.0
- dev-v1.14.1-beta.0
- dev-v1.13.6-beta.0
- dev-v1.12.8-beta.0
- dev-v1.11.10-beta.0
- dev-v1.14.0-rc.1
- dev-v1.14.0-beta.2
- dev-v1.11.9-beta.0
- dev-v1.13.5-beta.0
- dev-v1.12.7-beta.0
- dev-v1.14.0-beta.1
- dev-v1.14.0-beta.0
- dev-v1.15.0-alpha.0
- dev-v1.10.14-beta.0
- dev-v1.14.0-alpha.3
- dev-v1.13.4-beta.0
- dev-v1.14.0-alpha.2
- dev-v1.11.8-beta.0
- dev-v1.12.6-beta.0
- dev-v1.14.0-alpha.1
- dev-v1.13.3-beta.0
- dev-v1.13.1-beta.0
- dev-v1.10.13-beta.0
- dev-v1.13.2-beta.0
- dev-v1.12.5-beta.0
- dev-v1.11.7-beta.0
This package is auto-updated.
Last update: 2024-08-30 01:17:38 UTC
README
这是一个从Kubernetes的Swagger定义逆向工程得到的完整PHP客户端。
您可以使用PHP来控制您的Kubernetes集群,以编程方式。
Kubernetes版本兼容性
支持的Kubernetes版本
由于此客户端是从Kubernetes的swagger文件生成的,因此它遵循Kubernetes的任何向后兼容性。您应该使用与您的集群对应的正确版本。
一个例外,关于兼容性,kpc
支持等效的Kubernetes次要版本号。次要版本是版本号中的第二个数字。kpc
版本1.8.0的次要版本为8。编号遵循语义版本规范,MAJOR.MINOR.PATCH。
例如,kpc
1.8.0不支持Kubernetes 1.9.2,但kpc
1.9.0支持Kubernetes 1.9.2和之前的Kubernetes版本。只有当kpc
次要版本与Kubernetes次要版本匹配时,kpc
才正式支持Kubernetes版本。kpc
不会阻止用户使用不匹配的K8s版本,但Kubernetes版本始终要求kpc
安装特定版本的组件,如docker,这些组件针对特定的Kubernetes版本进行了测试。
kpc
不一定遵循Kubernetes发布中的PATCH编号。每个次要版本都是针对Kubernetes最新次要版本生成的。
兼容性矩阵
对于Kubernetes的所有版本,使用kpc的最新版本,但要注意,Kubernetes的更高版本不是kpc的官方支持。
kpc发布计划
此项目在每晚自动构建针对最新Kubernetes版本。如果您发现某个特定版本不可用,请创建一个问题,以便我可以手动生成它。
安装
通过使用[Composer] (https://getcomposer.org.cn/)包管理器,将kubernetes/php-client添加到您的项目composer.json
中的依赖项。
{ "require-dev": { "kubernetes/php-client": "~{KUBERNETES_VERSION}" } }
KUBERNETES_VERSION
应至少匹配您的Kubernetes集群的次要版本。
例如,使用"kubernetes/php-client": "~1.8"
针对Kubernetes版本1.8.x
使用说明
现在您需要通过静态方法配置认证凭据(您只需要这样做一次)。
<?php require_once('./vendor/autoload.php'); use KubernetesRuntime\Client; use Kubernetes\API\ConfigMap as ConfigMapAPI; use Kubernetes\Model\Io\K8s\Api\Core\V1\ConfigMap; $master = 'https://you-kubernetes-cluster.com'; $authentication = [ 'caCert' => '/usr/local/your-ca-file-location', 'token' => 'base64-based-token' ]; // This configure function only need to run once in the whole session Client::configure($master, $authentication); $ConfigMapAPI = new ConfigMapAPI(); $ConfigMap = new ConfigMap([ 'metadata' => [ 'name' => 'kubernetes-php-client-test' ], 'data' => [ 'bar' => 'foo' ] ]); $ConfigMapAPI->create('default',$ConfigMap); $response = $ConfigMapAPI->read('default','kubernetes-php-client-test'); print_r($response); /* Kubernetes\Model\Io\K8s\Api\Core\V1\ConfigMap Object ( [apiVersion] => v1 [data] => Array ( [bar] => foo ) [kind] => ConfigMap [metadata] => Kubernetes\Model\Io\K8s\Apimachinery\Pkg\Apis\Meta\V1\ObjectMeta Object ( [annotations] => [clusterName] => [creationTimestamp] => 2018-08-07T10:32:06Z [deletionGracePeriodSeconds] => [deletionTimestamp] => [finalizers] => [generateName] => [generation] => [initializers] => [labels] => [name] => kubernetes-php-client-test [namespace] => default [ownerReferences] => [resourceVersion] => 24374466 [selfLink] => /api/v1/namespaces/default/configmaps/kubernetes-php-client-test [uid] => 21f7036f-9a2d-11e8-89e9-0eeed2d5ffa8 [isRawObject:protected] => [rawData:protected] => ) [isRawObject:protected] => [rawData:protected] => ) */
认证
如文档所述,您可以使用满足您需求的任何认证模式。
$authentication
支持以下配置
- caCert
- clientCert
- clientKey
- token
- username
- password
如果您需要修改客户端以满足您的Kubernetes集群需求,请参阅Guzzle的文档以传递您可能在$authentication
数组中需要的任何额外配置参数。
类命名约定
Kubernetes是用GoLang编写的,因此它的swagger字段遵循Go命名约定。
模型
io.k8s.api.batch.v1beta1.CronJob
将被转换为Kubernetes\Model\Io\K8s\Api\Batch\V1beta1\CronJob
API
根据swagger定义,每个API端点是独立条目。幸运的是,Kubernetes提供了额外信息,因此我们可以将它们分组,更多信息请参阅Kubernetes API
/apis/batch/v1beta1/cronjobs
可在 Kubernetes\API\CronJob
中找到
预GA版本功能
如所示,CronJob目前处于 v1beta1
状态。当你创建一个 Kubernetes\Model\Io\K8s\Api\Batch\V1beta1\CronJob()
对象时,它可能稍后会被移动到 Kubernetes\Model\Io\K8s\Api\Batch\V1\CronJob()
。这是一个很好的方式,这样你就可以始终知道应该使用哪个版本。
此外,按照Kubernetes约定,如果你已经升级了集群,当CronJob API期望一个 v1
CronJob,但你还没有将代码升级到匹配的版本,将会触发PHP错误
PHP Fatal error: Uncaught TypeError: Argument 2 passed to Kubernetes\API\CronJob::create() must be an instance of
Kubernetes\Model\Io\K8s\Api\Batch\V1\CronJob, instance of Kubernetes\Model\Io\K8s\Api\Batch\V1beta1\CronJob
given,
API实现
此API包装器实现了Kubernetes当前提供的所有API端点,有关如何使用它的完整文档,请参阅 API
Patch
操作
如Kubernetes文档 中所述,Patch
接受三种不同类型的操作
- JSON Patch,
Content-Type: application/json-patch+json
- Merge Patch,
Content-Type: application/merge-patch+json
- Strategic Merge Patch,
Content-Type: application/strategic-merge-patch+json
为了定义要使用哪种操作,开发者需要自己指定Content-Type。
为了在不修改Patch
模型类的情况下实现API操作,你可以将patchOperation
作为附加数据传递到模型中,可接受选项包括
- patch
- merge-patch
- strategic-merge-patch
示例
$Patch = new \Kubernetes\Model\Io\K8s\Apimachinery\Pkg\Apis\Meta\V1\Patch([ 'patchOperation' => 'merge-patch', 'spec' => [ 'template' => [ 'spec' => [ 'containers' => [[ 'name' => 'nginx-ingress-controller', 'image' => 'quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.23.0' ]] ] ] ] ]); $DeploymentAPI = new \Kubernetes\API\Deployment(); $DeploymentAPI->patch('default','nginx-ingress', $Patch);
上述请求将发送json到你的服务器
{ "spec": { "template": { "spec": { "containers":[{ "name": "nginx-ingress-controller", "image": "quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.23.0" }] } } } }
请注意,'patchOperation'字段将从请求中删除,并且Content-Type
头将设置为merge-patch+json