* Define GVK for metadata.yaml
* Added supoorting type and registered the kind 'AirshipMetadata' to
runtime scheme
* Used document object to read metadata instead of reading it as config
Relates-To: #530
Change-Id: I748cd0921ba7bb04ca6fb2999294776e6803ed3e
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 helper provides plenty of useful methods for
a phase client. But these methods are not used by
phase executor initializers except for getting some
configuration values. So, it is better to provide
initializers with necessary values instead of passing
them the phase helper.
Change-Id: I8c596455e30444570a86efad73d792af0ca83a33
Relates-To: #464
Relates-To: #465
Since document.NewBundleByPath() is pretty resource and time
consuming call (because it invokes kustomize under the hood),
we should avoid unnecessary calls of this function. There are
lots of the same constructor calls of new bundle from phase
bundle root path, mostly in helper, which slows airshipctl
and makes no sense. This patch fixes this problem by storing
phase root bundle variable in helper, which creates only once
during airshipctl execution.
Change-Id: I6b59d440f7ab7a68dc613091dafcc9e82df10eb7
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Closes: #488
* 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
This patch implements ability to filter phase by given
cluster name.
Change-Id: I4eb95f9f75c57eff4ae8eb41c608c6f6d7fa009c
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
This parameter allows to get full path to current site.
Also change phaseRoot to phaseBundleRoot and
change the corresponding methods.
Change-Id: Ia4b1b55ceaa8c544ed429ec314bc8772a2fee6de
Relates-To: #379
* 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
This allows to avoid nil pointers when working with unmarshaled
objects, that may be missing some fields.
Next step would be to revisit why pointers are used in such obj
as Clusterctl and ImageConfiguration
Change-Id: I99a711529a53943ef1b0cb1ebb4d240f2482fac8