diff --git a/docs/changelogs/CHANGELOG-2.0.md b/docs/changelogs/CHANGELOG-2.0.md index e3cc7f548b..d22e835c04 100644 --- a/docs/changelogs/CHANGELOG-2.0.md +++ b/docs/changelogs/CHANGELOG-2.0.md @@ -5,6 +5,7 @@ ### Added - [#2701](https://github.com/epiphany-platform/epiphany/issues/2701) - Epicli prepare - generate files in separate directory +- [#2812](https://github.com/epiphany-platform/epiphany/issues/2812) - Extend K8s config validation ### Fixed diff --git a/schema/common/validation/configuration/kubernetes-master.yml b/schema/common/validation/configuration/kubernetes-master.yml index 15c8a23399..717c2efc95 100644 --- a/schema/common/validation/configuration/kubernetes-master.yml +++ b/schema/common/validation/configuration/kubernetes-master.yml @@ -3,9 +3,87 @@ title: "K8s-master specification schema" description: "K8s-master specification schema" type: object properties: + version: + type: string + cni_version: + type: string + cluster_name: + type: string + allow_pods_on_master: + type: boolean + storage: + type: object + properties: + name: + type: string + path: + type: string + enable: + type: boolean + capacity: + type: integer + data: + type: object + required: + - name + - path + - enable + - capacity + - data advanced: type: object properties: + api_server_args: + type: object + properties: + profiling: + type: boolean + enable-admission-plugins: + type: string + audit-log-maxbackup: + type: integer + audit-log-maxsize: + type: integer + secure-port: + type: integer + required: + - profiling + - enable-admission-plugins + - audit-log-maxbackup + - audit-log-maxsize + - secure-port + controller_manager_args: + type: object + properties: + profiling: + type: boolean + terminated-pod-gc-threshold: + type: integer + required: + - profiling + - terminated-pod-gc-threshold + scheduler_args: + type: object + properties: + profiling: + type: boolean + required: + - profiling + networking: + type: object + properties: + dnsDomain: + type: string + serviceSubnet: + type: string + plugin: + type: string + required: + - dnsDomain + - serviceSubnet + - plugin + imageRepository: + type: string certificates: type: object properties: @@ -26,6 +104,49 @@ properties: description: |- Whether to renew certificates or not type: boolean - default: false - examples: - - false + required: + - expiration_days + - renew + etcd_args: + type: object + properties: + encrypted: + type: boolean + required: + - encrypted + kubeconfig: + type: object + properties: + local: + type: object + properties: + api_server: + type: object + properties: + hostname: + type: string + port: + type: integer + required: + - hostname + - port + required: + - api_server + required: + - local + required: + - api_server_args + - controller_manager_args + - scheduler_args + - networking + - imageRepository + - certificates + - etcd_args + - kubeconfig +required: +- version +- cni_version +- cluster_name +- allow_pods_on_master +- storage +- advanced