* validation config is now part of airshipctl api
* additional CRD locations can be only kustomize entrypoints
* changed mechanism to call document-validation executor to allow
to pass validation config from phase or plan
* kubeval version pinned to the latest 0.16.1
* default k8s version to validate against uplifted to 1.18.6
* default URL with k8s schemas changed to more updated and reliable
Change-Id: Ifb24be224d5f0860d323a671b94e28a86debc65b
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Closes: #563
This patch introduces ability to validate phases using kubeval.
Appropriate functionality was embedded into phase/plan validate
command.
Change-Id: I1e1ccae2b7e4948bdc97a199c96c07a3eb7292b2
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Relates-To: #503
Closes: #2
Closes: #19
* phase related errors were moved to separate package to prevent
cycling import error;
* error duplicates were removed;
* non-related to package errors were moved to appropriate ones.
Change-Id: If6cfb08c48d356c1517a13157a5fe740dc1635a4
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Relates-To: #485
Plan validation:
1. Each phase must be defined within phase document bundle.
2. Each phase does not return error for Validate method
Phase validation:
1. Document bundle associated with the phase can be rendered without an
error.
2. Associated executor must not return an error.
Relates-to: #330
Change-Id: I08c5e8e42570f2cafdced5a02481b033414ffae0
* The phase.docEntryPointPrefix field in the metadata.yaml
allows you to define a common part of the documentEntryPoint
for all phases in the phase bundle.
For example, let metadata.yaml be
---
phase:
path: manifests/phases
docEntryPointPrefix: manifests/site/test-site
and a phase be
---
apiVersion: airshipit.org/v1alpha1
kind: Phase
metadata:
name: initinfra-ephemeral
clusterName: ephemeral-cluster
config:
executorRef:
apiVersion: airshipit.org/v1alpha1
kind: KubernetesApply
name: kubernetes-apply
documentEntryPoint: ephemeral/initinfra
Then the documentEntryPoint for executor will be prepended with
docEntryPointPrefix and the path to the executor bundle will be
manifests/site/test-site/ephemeral/initinfra
Change-Id: I29ec14378790d95b66c3ff1fe6120bb200f91a50
Relates-To: #356
The test makes sure that correct error is returned when bundle
factory fails, and increases test coverage of executor() function
Change-Id: Ibfc5d8ea1941a5d4d304a8afaedc5c89efe7c398