This commit adds get-manifests and set-manifests option for airshipctl
config. get-manifests prints all the manifests in current config file.
set-manifests helps in setting/creating new manifests in current config
file.
Closes: #115
Change-Id: I7c677ed491a1d456744d27bf105f21e2b3c4e6aa
Signed-off-by: Sreejith Punnapuzha <sreejith.punnapuzha@outlook.com>
The `update-golden` make target generates updated documentation for
each command, but has not been run for recently merged changesets.
This leads to out of date documentation, and requires remediation in
two steps:
1. (This patch) update documentation
2. Update gates to determine if commands have changed that warrants
new documentation, and prevent patches from being merged without
running `make update-golden` first. This can be added to
tools/git_diff_check
Change-Id: Ide31f24caf8818e811d15397616805ed79bdea10
Signed-off-by: Alexander Hughes <Alexander.Hughes@pm.me>
This CR brings feature for Ephemeral node deploy.
Here is using a hard disk instead of tmpfs in RAM for kubelet.
Relates-To: #287
Change-Id: I6b67f20eee10ce71ace0c7f3cbf901e3a68864bd
* This commit adds python3-setuptools to required packages, so that
the job airship-airshipctl-update-github-issues will not fail
Change-Id: I7b5a93e83175bb19dd6145f1af6bf7f6fd7a4d61
Airship API is extended with Phase and PhasePlan objects which
implemet k8s runtime.Object interface. Phase plan command is
added to airshipctl.
Closes: #262
Closes: #261
Closes: #260
Change-Id: I4c299ec9078af4ace29ab46bd6440f47ae18a094
Each object must implement runtime.Object interface. Therefore we
need DeepCopy methods implemented for each API struct.
Implementation is generated by controller-get utility.
Relates-To: #259
Change-Id: I535bf9ec3ff61597a778f73ca449313b7455b989
Change 725820 [1] configured airshipctl to fail an airship config file
isn't present. The present change makes an exception to that behavior
for the document plugin subcommand, and moves the plugin loading from
the parent document command into the pull subcommand.
There are multiple reasons we don't want config enforcement in place for plugins:
- If a non-standard config file location is configured via an environment variable,
the plugin won't know about it (since it's invoked separately by kustomize), and it
would look for a potentially non-existant default config file, and fail.
- If a user is using the kustomize cli by hand along with airshipctl plugins
(as opposed to driving the process via airshipctl itself), then they do not
need the config anyway -- the plugin subcommand doesn't actually use it.
Forcing the user to create a config file seems awkward here.
[1]: https://review.opendev.org/#/c/725820/16
Change-Id: Ic1b652efb14439ed2757eb9fb0a86feb8b3ef21c
This commit updates kubectl version from 1.16.2 to 1.17.4 as part of
gate setup
Change-Id: I88728be65474ee7ce57f243e1356b84c7609a45f
Signed-off-by: Sreejith Punnapuzha <sreejith.punnapuzha@outlook.com>
* Added bash scripts in place of ansible playbooks/roles
* zuul will run bash scripts, and this means that they are actually tested
which will make development experience easier
Change-Id: I60d1dac589ae8ad835d3f1dda5e2a45523367496
Relates-To: #222
This commit adds python3-setuptools to needed packages so that
sushy-tool installation will not fail
Change-Id: I7b6de0ebf09b7c187061030463327831c7d856f3
Signed-off-by: Sreejith Punnapuzha <sreejith.punnapuzha@outlook.com>
The change would allow to build a document object from bytes
Change-Id: I15c13a960b4e989cffa4525c85b8f32f2a51a0e1
Relates-To: #238
Relates-To: #279
Closes: #279
This commit makes mock filesystem reusable by moving it to importable
package in testutils
Change-Id: I4885480a9ef3b8c81da0058db708c32187af8e12
Relates-To: #277
Relates-To: #238
Closes: #277
Adds FakeFactory function, that allows to inject custom handlers
for HTTP and Unstructured client, which in turn enables better
testing for kubernetes api related packages
Relates-To: #276
Relates-To: #238
Change-Id: Ic27352bdc64bfccb91cc6a49afa6164e4624b1e1
Closes: #276
This change adds documentation links to other airship projects, bringing
airshipctl in line with the latest docs.airshipit.org theme changes.
Change-Id: I42fe5371770437d0f106bfdfc1173c9fdade746b
Signed-off-by: Drew Walters <andrew.walters@att.com>
There is need to ensure that appropriate directory does not exist
before clonining source code into it, otherwise git throws an error.
The destination folder name for cloning was fixed. Variable name which
uses for task fail verification was corrected.
Relates-To: #271
Closes: #271
Change-Id: I9c2bd03f68e6c34fc28b900f11dbaadd190087e8
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Currently, if config file doesn't exist - airshipctl doesn't
throw an error and uses empty config object instead. It seems
this behavior was an attempt to hide an error if there was a call
of subcommand which is not require proper config file. Since we
moved config load calls to the specific subcommands from
root level - current behavior should be changed and we have to
throw an error instead if it's not possible to access config file.
Change-Id: I7e949fbc9d48d682e26500e0b6b6b9bd12665e24
Relates-To: #199
Closes: #199
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
* command: airshipctl image build
* For now it is just a wrapper for baremetal isogen.
* Removed isogen subcommand from baremetal
Change-Id: I5c1260c4b167e5768eba27a7cd83c9b60ab29184
Relates-To:#251
Closes:#251
* when remote_work_dir is set, document pull happens from the
remote_work_dir (/tmp/airship) with a folder created within
remote_work_dir with repo name (/tmp/airship/airshipctl).
However the manifest yamls of kind "Clusterctl"
refers to a relative path from work_dir and it fails
finding expected objects.
example: manifests/function/capm3/v0.3.1
* So trying to avoid document pull, and use current dir for workspace.
similar to Zuul gate implementation
Change-Id: I63fd5476247f957745e15cbdfceb5fb483758e83
This causes the `airshipctl config get-management-config` command to
print all management configurations in order.
This fixes an issue where unit tests would randomly fail, since the
output order from the command was not consistent.
Change-Id: I83da272d56b90026dac8c07d7522119500935406
K8s control plane is deployed by KubeadmControlPlane controller. This
controller creates CAPI machines and infrastructure objects
(Metal3Machine). Metal3Machine objects are created based on a template
which contins host selector label. Control plane label is assigned to a
particular BareMetalHots object defined inside of the shared
kustomization.
Relates-To: #149
Closes: #221
Change-Id: I3be1750aacf9736ece2944045c036f405e404561
This is temporary solution an job can be enabled for voting once
phase framework is implemented
Change-Id: Iab5087144485ece0495de02edfecf1a7af941614
Closes: #270
This change adds a get-management-config command that allows the user to
view defined management configurations on stdout.
Change-Id: I9c49016bbedcc3a4609d1b17631ecc9e1f4be104
Signed-off-by: Drew Walters <andrew.walters@att.com>
This change removes the deprecated "remoteType", "useProxy", and
"insecure" fields from the remoteDirect field of bootstrapInfo
Change-Id: I64d28b715b81464c871f99ad0348fadc2e9fc5f6
Relates-To: #242
This change introduces the subcommand `status` to the `airshipctl
cluster` command. The `status` command will iterate over all defined
custom resources in the target path, check their status against the
resources currently in the cluster, and then report results on stdout.
Change-Id: Ieaff6b91fd9055f995c5ba8ce79959356a2a8a02
Relates-To: #73