34 Commits

Author SHA1 Message Date
Sirisha Gopigiri
4da8a54887 Separate folders-Create airshipctl cli user guide documentation
Current modified go code, generates RsT files for each airshipctl
cmd and places them in a folder specific to the airshipctl subcommand.
It also generates the index.rst file for the specific airshipctl
subcommand folders. These generated rst files are appropriate to sphinx,
so that they can be easliy rendered in docs.airshipit.org

Steps to render the document locally

	* Install sphinx: python3 -m pip install sphinx
        * Clone airshipctl: git clone https://github.com/airshipit/airshipctl.git
        * Download current PS: cd airshipctl; git fetch "https://review.opendev.org/airship/airshipctl" refs/changes/50/789250/2 && git checkout -b change-789250-1 FETCH_HEAD
	* Build sphinx html pages: cd docs/source; sphinx-build -b html . _build
	* Run local server: cd _build; python3 -m http.server
	* Open URL to access the page: http://localhost:8000/ navigate to commands section access the document

Relates-To: #280
Change-Id: Ifa1dafc7b296014cc826072ac2c52f4488421352
2021-06-28 10:20:55 +05:30
Sirisha Gopigiri
4c3140be93 Phase- updating cmd files for documentation
The description and examples are updated for the airshipctl
commands, which will be inturn used for generating documentation.
Please ignore the .md file changes in this PS. They are added for zuul
gates to pass. Here is the PS with generated documention
files https://review.opendev.org/c/airship/airshipctl/+/789250

Relates-To: #280
Change-Id: I3587ad211f7d614b5cc6a162ca352ac54c3b90f0
2021-06-09 11:53:58 +05:30
Zuul
310bc282f5 Merge "[#358] Introduce Phase List command to output phase list(cmd module)" 2021-03-30 01:02:39 +00:00
Niharika Bhavaraju
0cc7c9cafd [#358] Introduce Phase List command to output phase list(cmd module)
* Phase list command lists phases of current documentset/plan.
 airshipctl phase list
 airshipctl phase list --plan planName
 airshipctl phase list --plan planName -o table(default output)
 airshipctl phase list --plan planName -o yaml

Co-Authored-By: Niharika Bhavaraju <niha.twinkle@gmail.com>

Relates-To: #358

Change-Id: Iab3a6cdf5a25583ba3d01341da350841c9cc362d
2021-03-25 16:11:10 +00:00
bijayasharma
60488d4d7a Add phase status command
Signed-off-by: bijayasharma <vetbijaya@gmail.com>
Change-Id: I09fc1e84f195982a43c97f80feb82fb2e489771d
Relates-To: #411
2021-03-25 12:36:01 +00:00
Ruslan Aliev
3ccafd9d0f Remove deprecated options for phase/plan run cmd
There are some debries left after removing --kubeconfig flag
from support, this patch cleans them up.

Change-Id: Iabdd6bcbc59d169bf162c9cddb3cb264fb88a3f7
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
2021-03-24 13:39:13 -05:00
Kostiantyn Kalynovskyi
6207e2c24d Add multiple kubeconifg sources to ClusterMap
Change ClusterMap API object to support multiple kubeconfig sources
for a cluster. If one kubeconfig source fails, kubeconfig builder
will not fail and move on to the next one. This behaviour will allow
to support cases when ephemeral cluster is not accesible anymore or
when target cluster is not yet accessible.

For more information please read issue #460 in airshipctl github

Relates-To: #460
Related-To: #460

Change-Id: I7cd32f78cd7c4ad8814eac357424c24216f40d76
2021-03-10 18:22:30 +00:00
muly
b0eabe544b Phase Validation: cmd changes to support Phase Validation sub command
Relates-To: #330

Change-Id: I8e45696723823d568e2f2eac8de65b38d30c09c3
2021-03-02 13:19:45 +00:00
Alexey Odinokov
f2dc2ca3f6 Allow airshipctl phase render to display encrypted secrets
Relates-to: #453
Change-Id: I150a48cbec5c87943ed6c07a8ef8d562437fda46
2021-02-16 19:27:23 +00:00
Ruslan Aliev
d1c7913ed3 Add cluster name filter for phase list cmd
This patch implements ability to filter phase by given
cluster name.

Change-Id: I4eb95f9f75c57eff4ae8eb41c608c6f6d7fa009c
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
2021-02-05 17:09:44 -06:00
Kostiantyn Kalynovskyi
6807547ab2 Add ability to render different document sets
Now we would be able to render phase bundle, executor bundle
and config bundle. Config bundle will contain documents such as
phases and executors.

Relates-To: #459
Closes: #459

Change-Id: Ia6b9196dfb3d8fb3264fef676c975ccc32883fee
2021-02-04 17:40:35 +00:00
Dmitry Ukov
c36a8ea022 Introduce generic table printer
* Table printer is based on cli-utils approach
* Rename 'phase plan' command to 'phase list' and print all Phase
documents from model instead of just printing PhasePlan object

Relates-To: #358
Change-Id: If3c5e2463e32f6794af4c82c12955a45583fce80
2021-01-27 14:10:31 +04:00
Zuul
cfa2bc0ab6 Merge "Add progress bool flag for phase run command" 2021-01-20 17:30:22 +00:00
bijayasharma
2615afa87b Add phase tree command in cmd module
*This is the smaller patchset from earlier work:
 https://review.opendev.org/#/c/750449/

* This is the second part of huge PS
* First: https://review.opendev.org/#/c/762386/

Change-Id: I8e7a13445f73b46a8b83f79711551a6fd5f5ce1f
Relates-To: #296
2021-01-08 13:26:08 +00:00
Zuul
b6d52343dc Merge "Allow to perform phase render using document entrypoint" 2020-12-16 16:51:46 +00:00
Kostiantyn Kalynovskyi
a6987107bd Allow to perform phase render using document entrypoint
In current setup, we rely on executor to perform render operation,
however there are many usecases, when we want to have a simple
`kustomize build` performed against document entrypoint in phase.
Now this will be a default behaviour and if a user would like
executor to perform rendering to actually understand what it's
doing, he will be able to specify --executor boolean flag.

Relates-To: #403

Change-Id: I181830f9814ff48a19ba0a1284e89900187bc7d8
2020-12-15 11:28:16 -06:00
Vladimir Kozhukalov
be3ce0917a Add progress bool flag for phase run command
* Phase executors accept run options which
   have progress boolean field.
   `airshipctl phase run` must be able to set
   this options from the command line flag.

Change-Id: I0645680ae68bf8690800aac5f3837ca78909ade0
2020-12-10 20:46:38 +03:00
Dmitry Ukov
653a553d1c Add plan subcommand group frame
Change-Id: Ie90b88ed47fb0050b874eecadafeef3d3fc5f3b1
Relates-To: #395
Relates-To: #385
2020-12-04 17:29:09 +04:00
Ruslan Aliev
fc33287204 Remove kubeconfig from config struct
Change-Id: I5ab8722dd151d9e652e0b20e1d82988cd98505af
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
2020-10-07 14:35:07 -05:00
Sirajudeen
3e4c228638 Add timeout flag for phase run in cli
Syntax:
	airshipctl phase run <PHASE_NAME> --timeout <time_unit>

Exmaple:
	airshipctl phase run initinfra-ephemeral --debug --wait-timeout 1000s

Change-Id: Ic8c699f5302eb482f32aee0e7d7c593df2ed7d3b
2020-09-28 16:58:18 +00:00
Ruslan Aliev
2f5402ae80 Remove phase apply command
Command phase run will be used instead, so phase apply became no
longer needed.

Change-Id: I8bdbd6bcad7efbb03632978d8952700fc39d55ba
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
2020-09-23 01:42:16 -05:00
Ruslan Aliev
0c736af2e8 Implement render methods
Change-Id: I03b7aad33576eaa9ef7dfaabfb579ac90cc26a12
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
2020-09-23 03:06:51 +00:00
Ruslan Aliev
2e85043c20 Fix typos
Change-Id: I0ce87ec00d2b5974cf861d9c9685f23d7d0f5fc1
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
2020-09-21 02:49:33 -05:00
Kostiantyn Kalynovskyi
5c6709478b Switch phase commands to use refactored command objects
Change-Id: I1f9f1620d6e0d3ac836e0189f403b7f794818d53
Relates-To: #342
2020-09-12 15:21:30 +00:00
Ruslan Aliev
fba618225a Remove AirshipCTLSettings from root level cmd
AirshipCTLSettings will no longer be used by any command, so this
patch removes it from root level.

Change-Id: I2aa1d80ab0785b498af1ac2c86334f9b0d9ff047
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Relates-To: #327
2020-09-03 23:52:49 -05:00
Ruslan Aliev
88ec55d34b Refactor phase* commands
All the phase commands was refactored for usage with new config
factory. Config object now is being initialized in pkg module on demand,
which provides more flexibility and cleaner code.

Change-Id: I742c39788098c3185ce89936ea81cd461bf97af3
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Relates-To: #327
2020-09-03 23:52:49 -05:00
Ruslan Aliev
4c0d2c0b57 Remove debug field from AirshipCTLSettings
As part of config refactoring process, we should remove debug field
from AirshipCTLSettings structure since debug variable is stored in
log module.

Change-Id: I02f3c7160ed0301605de32e0d0267be8524ccc12
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Relates-To: #327
2020-09-02 23:41:05 -05:00
Kostiantyn Kalynovskyi
2f1b520ab2 Change executor interface to accept channels
Now Run method will accept channels that they will write
events to, this will allow us to pass channels we want to them,
instead of execting them to return us a channel.

Wait method is removed from interface for now, as it needs more
design.

Change-Id: Ibd47dfe49172f537b79bcc8f83f7c76aece8e862
2020-08-18 09:05:56 -05:00
Kostiantyn Kalynovskyi
5ff6d38e03 Add airshipctl phase run
Commands execution logic will be added when executors are implemented

Change-Id: I78ef95a858117d0c6d407289955228b6ba1a3d5e
2020-08-10 16:07:45 -05:00
Kostiantyn Kalynovskyi
e4adce2bcf Integrate cli-utils applier with phases.
This will also enable us to wait for kubernetes resources to reach
required state

Relates-To: #238

Change-Id: Ia2c9cebd94ca2ef5bfd9ed5830ae469e6aa6b167
2020-07-15 11:10:37 -05:00
Dmitry Ukov
325d824503 Introduce phases and phase plan
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
2020-06-23 13:12:36 +04:00
Dmitry Ukov
6d05ae69ee Implement document rendering sub-command
Kustomize filtering and rendering mechanisms are used.

Related: #14
Related: #15
Related: #16
Relates-To: #247
Closes: #247
Co-authored-by: Ruslan Aliev <raliev@mirantis.com>
Change-Id: Ied06b95577772cc51f51f3ebb3acd441388d5cda
2020-05-22 12:05:44 +04:00
Ruslan Aliev
bc90c4f39e Move config init and load from root cmd level
There are several commands which do not require to load config:
completion, help, secret, version. Hovewer, PersistentPreRun call
at root level forces airshipctl to load config anyway. Therefore,
we can observe unnecessary config load errors instead of actual result.
This patch moves config load to subcommand level where it is necessary.

Change-Id: I774a7d038c408e71688f7bf04f1cb87a2132a342
2020-05-09 01:51:09 -05:00
Ruslan Aliev
0bbc88b4a9 Add phase commandline option for interacting with phases
Instead of having a lot different arbitrary named commands
such as "cluster initinfra", "cluster control-plane", add
a generic phase command that would provide capabilities
for interacting with phases (e.g. getting list or applying
specific one).

Change-Id: I1ab797121aecbfd2348933dfd993c1a5974edaf9
Relates-To: #162
2020-04-30 12:34:07 -05:00