56 Commits

Author SHA1 Message Date
Dmitry Ukov
e6d2bf9ecb Use create schema instead of upgrade for ironic
Ironic uses SQLite as database. SQLite does not support ALTER which is used
in alembic migration.

Change-Id: I3495f7eae9a9e22175052005314e82ab280bfdf2
Closes: #235
2020-05-12 20:41:40 +04:00
Zuul
a6addc3873 Merge "Ironic: Move to use sqllite rather than mariadb" 2020-05-12 00:52:13 +00:00
Dmitry Ukov
25e7d92d48 Rename gating test site
* New name for gating site is 'test-site'
* Renamed 'test-bootstrap' type. New name is 'gating'.
* Moved BareMetalHost and its settings from ephemeral function to
  shared directory within the site

Change-Id: I510e74c1a553bb2b1f84e66f8e4a7796640b59cc
2020-04-29 17:32:40 +04:00
Zuul
21dceb20d1 Merge "Removed old v1alpha2 version of CAPI componets" 2020-04-28 17:59:40 +00:00
Zuul
9fe36fb4b2 Merge "Add version to bootstrap kubeadm provider" 2020-04-28 16:15:17 +00:00
Zuul
425a570ddc Merge "Add cert manager" 2020-04-28 16:15:15 +00:00
Zuul
82e860086b Merge "Add CAPI Metal3 prodvider" 2020-04-28 16:08:53 +00:00
Zuul
1393a50967 Merge "Add CAPI ControlPlane provider Kubeadm" 2020-04-27 18:46:17 +00:00
Zuul
ffafe7d7cd Merge "Add CAPI function" 2020-04-27 17:16:50 +00:00
Dmitry Ukov
48bf0b87c3 Add version to bootstrap kubeadm provider
Contents of cabpk moved to appropriate directory to comply with
clusterctl requirements

Change-Id: Ic65ab669155ef3bdb4d1e87bae62506703cd9c04
2020-04-27 17:49:27 +04:00
Dmitry Ukov
9f1916d8dd Add CAPI ControlPlane provider Kubeadm
Forked kustomization from 0.3.3 release

Change-Id: I7e7074fe6e68aff4c3280567160ebb25bd9f7780
2020-04-27 17:47:03 +04:00
Dmitry Ukov
719c347197 Add CAPI function
Forked kustomization from 0.3.3 release

Change-Id: Ib84914f8e00d4e35c3670095b56e2c4dd33d1650
2020-04-27 17:45:34 +04:00
Dmitry Ukov
cd7aea13b9 Add cert manager
Version 0.14.1 has been used as a basis for this function

Change-Id: If7b48d021f7b5dbb680000a0500d7c23a23263de
2020-04-27 17:44:34 +04:00
Dmitry Ukov
5cf6528dee Add CAPI Metal3 prodvider
Version 0.3.1 has been used as a basis for this function

Closes: #161
Change-Id: I7c15fdff0a0cb2ba90295d0a403f737ee4398deb
2020-04-27 17:42:14 +04:00
Zuul
585f885409 Merge "Add initinfra gating tests" 2020-04-23 18:28:27 +00:00
Vamsi Savaram
e40b5ffec5 Add initinfra gating tests
Relates-To: #180

Change-Id: Ie7a8daa532596f2d1d0fb2059ef4630607511711
2020-04-23 14:41:45 +00:00
Vamsi Savaram
2d8bc4cf9c Use HTTPS to deploy ephemeral node
PS [1] delivered a change to add apache running
sushy-emulator as wsgi backend. This allows us
to have a deployment that looks like a real BMC.
This PS switches gate test to use basic auth and
https on port (8443).

[1]:https://review.opendev.org/#/c/719320/

Relates-To: #136

Change-Id: I7d12bea92cb2c10954cdf1018898d352618c6694
2020-04-22 16:00:09 +00:00
Dmitry Ukov
8222ce55bf Removed old v1alpha2 version of CAPI componets
Change-Id: Ie4a3296df8b89b28b43f41b4b00e6abfde32675c
2020-04-20 18:05:40 +00:00
Dmitry Ukov
1100217edd Add CAPI bootstrap provider kubeadm
Forked kustomization from 0.3.3 release

Change-Id: Id507ca50518a103ec7df30b201928bba6f76840e
2020-04-17 18:20:27 +00:00
Dmitry Ukov
225ae4a6d1 Introduce initinfra composite
Change-Id: I3f67f315f60ea81c24ae8c5c8612ecc8b086fd39
2020-04-17 13:39:54 +00:00
Kostiantyn Kalynovskyi
da2799bee3 Change bootstrap bundle entrypoint to phase dir
Change-Id: I85151f42e510eb113bcc3bb86d56043d51bf348a
Relates-To: #175
2020-04-16 20:02:45 -05:00
Matt McEuen
e52ed80363 Update Kustomize integration to api/v0.3.1
This updates the Kustomize dependency for airshipctl to
api/v0.3.1, which is the oldest version which will support the
Replacement Transformer plugin.

Some changes were needed to accomodate the fact that various apis
that airshipctl was relying on were moved to kustomize-insternal
packages, namely:
- Integrated with the krusty.Kustomizer to drive kustomization
- Removed the custom plugin loader which leveraged the Unknown type
- Worked around NoFieldError becoming private, inc. removing a test

As a follow on we'll need to re-integrate plugin functionality somehow.

Also, in this release Kustomize has implemented support for the
"config.kubernetes.io/local-config" annotation, which we'd planned
to use to to avoid deploying some documents to the Kubernetes API.
It turns out the semantics are different than we anticipated;
Kustomize also fails to return these docs via document *selection*.
Therefore, this change reverts to an earlier approach which uses
a custom airshipit.org/deploy-k8s label.

Change-Id: I7022e12464ea7b6a3ca8609f99f3699bf8da0edd
2020-04-13 10:06:41 -05:00
Zuul
01ca21754d Merge "Fix ironic deployment template" 2020-04-03 14:59:02 +00:00
Zuul
effc58d511 Merge "Add Bare Metal Operator Ironic entrypoints" 2020-04-03 14:46:59 +00:00
Stanislav Egorov
b4a4be2a7f Switch gate to official isogen image
Change-Id: I65e02251b2f6c747c72a38bb20caf2dd3978ea7c
2020-04-02 14:17:15 -07:00
Zuul
17be5ca472 Merge "Remove personal keys from ephemeral userData" 2020-04-01 21:31:33 +00:00
Kostiantyn Kalynovskyi
c5978363b3 Remove mac address from networkdata
Change-Id: I275c2ec370d61ffcad08fd9ecafafcf782d9057f
2020-04-01 15:27:36 -05:00
Drew Walters
7732567483 Remove personal keys from ephemeral userData
There are personal authorized user keys in the ephemeral userData, but
cloud init already configures password auth. This change removes the
unnecessary keys.

Change-Id: I0054e0dd87dee2dbdbb74cbfe6084e586db4720b
Signed-off-by: Drew Walters <andrew.walters@att.com>
2020-04-01 20:24:11 +00:00
Pete Birley
5d7cfc8dc5 Ironic: Move to use sqllite rather than mariadb
This PS makes the ironic deployment a bit simpler by removing
mariadb and using sqllite instead. It also fixes the path of the
ironic inspector db to get it to persist pod restarts.

Change-Id: I522774597ff921449e86e2742131e5a51d60d559
Signed-off-by: Pete Birley <pete@port.direct>
2020-03-31 15:55:41 -05:00
Pete Birley
0f8b2032ce Fix ironic deployment template
This PS simply removes some duplicate keys in the ironic deployment
template.

Change-Id: Ib51fd05bf8c0be3b03b9265c90f341ac04000d76
Signed-off-by: Pete Birley <pete@port.direct>
2020-03-31 15:40:59 -05:00
Nikolay Fedorov
3ee25a7a7b Add Bare Metal Operator Ironic entrypoints
Relates-To: #105

Change-Id: Ia64033ec55865848ccf34cc3d8b8f51859c89785
2020-03-31 15:39:16 -05:00
Kostiantyn Kalynovskyi
559788c739 Add missing bmh secret for gate manifests
Change-Id: Ifbdf6210670786b4a769f8e3467aec51c3be96a1
2020-03-31 11:02:39 -05:00
Zuul
8fa2d4b45b Merge "Add Bare Metal Operator Ironic config files" 2020-03-31 14:49:46 +00:00
Zuul
bec9be6390 Merge "Add Bare Metal Operator resources" 2020-03-31 14:47:50 +00:00
Zuul
7e9f5fd175 Merge "Uplift dependencies on kubernetes to 1.17" 2020-03-26 19:20:34 +00:00
Kostiantyn Kalynovskyi
ad1e160c1a Add selector to filter docs to be deplyed to k8s
By default every document is to be deployed to kubernetes however
some documents may need to be skipped, because they serve only
informational purposes and have no consumers in kubernetes cluster

Change-Id: If2ea5659acb319c15cf3f55e9f3d9e86dc647e9f
Relates-To: #130
Closes: #130
2020-03-26 12:17:00 -05:00
Ian Howell
8495e83cce Uplift dependencies on kubernetes to 1.17
This change removes the dependencies on arbitrary 1.16 SHAs in favor of
depending on a tagged 1.17 version of various kubernetes packages.

Change-Id: I5c99e431b1d1b27502aeb0ad13b4a84c25011420
2020-03-26 11:48:08 -05:00
Zuul
58ebba43f6 Merge "Update network data format" 2020-03-24 15:57:45 +00:00
Dmitry Ukov
5f1b3f4198 Update network data format
Metal3 supports only network_data.json (converted to yaml) format.
Ephemeral node should also be configured using this format

Relates-To: #120
Change-Id: I46380a0fd708c0bc260d355545b27fd007885de6
2020-03-23 11:27:35 +00:00
Dmitry Ukov
7df1237ac7 Shift CAPI function to upstream implementation
Cluster API function documents are handled by its community and should be
used as an external dependency for Airship document model. This change
will bring CAPI manifests maintenance to Cluster API git repo tag
management inside of an appropriate functions

Change-Id: I31acb3de7f3ae339ab0b9a48a37df09eb694bdb7
Relates-To: #104
Relates-To: #121
2020-03-23 13:34:38 +04:00
Nikolay Fedorov
68aa064e93 Add Bare Metal Operator Ironic config files
Relates-To: #105

Change-Id: I948b48c5c8bacf21dd220b9975124e0bccf1fa58
2020-03-20 10:55:56 +04:00
Nikolay Fedorov
2ca469830b Add Bare Metal Operator resources
Add CRD, RBAC, operator's Deployment, NameSpace
Relates-To: #105

Change-Id: I049b577193547a7e762da26fa9762171025f2dff
2020-03-20 10:22:31 +04:00
Ruslan Aliev
0e9cd303cb Fix network and cloud data for ephemeral host
Change-Id: I954971d52e708ae5e89d99dfc926f6570570f94a
2020-03-13 16:32:52 -05:00
Kostiantyn Kalynovskyi
c1cce8f9c5 Add single source of Seletors
Also this commit, adds condition to setup testbundle, that ignores
directories

Commit adds new set of functions that allow easy selection of
documents from bundle for different modules.

Relates-To: #61
Closes: #61

Change-Id: I6011203a1f573cbb847e9f57c04aa60bf8278ef1
2020-03-13 16:31:12 -05:00
Kostiantyn Kalynovskyi
147b97048b Split document model, add entrypoints for repos
Add NewBundleByPath function, that would return bundle built from
the specified path argument

Add CurrentContextEntryPoint method of the config
object, that would allow easily get kustomize root path based on
clusterType and phase. You can also leave phase arg empty string,
which would try to return bundle for all phases

Introduce changes to config pakage objects:

- Manifest:
  SubPath: this is relative path to the root of the repository that
contains directories with sites (SiteNames)
    PrimaryRepositoryName: this is a string that must correspond to a key
of the Repositories map of manifest object, which is used to derive
primary repository
    Repositories object is a map, map keys correspond to names of the
directories where `document pull` command will download repositories
defined in manifest prepended by manifest.TargetPath.

Introduce new config method CurrentContextEntryPoint(), method takes
TargetPath, PrimaryRepo.URL, SubPath, and clusterType and phase
constructs a path to the entry point out of which the DocumentBundle
should be build, and returns it to the caller. After that caller can
build a bundle out of it, the bundle will contain documents relevant to
particular cluster-type and phase.

All objects that depend on bundle interface are updated to use the
CurrentContextEntryPoint() method of the config object

Relates-To: #99

Closes: #99

Change-Id: I99320c4cb626841d46f4c298b583e9af90b1dce4
2020-03-12 09:55:05 -05:00
Zuul
3ca4d7d266 Merge "Remove IMAGE_PULL_POLICY variable" 2020-02-27 20:29:29 +00:00
Dmitry Ukov
b645820061 Remove IMAGE_PULL_POLICY variable
Since value of imagePullPolicy key is a one word string it can be easily
overridden by strategicMerge

Change-Id: I3d78765ce3fb277bc7825639746b734f655efcf0
2020-02-27 19:46:13 +04:00
Kostiantyn Kalynovskyi
e1bc8ee07d [AIR-97] Adding initinfra subcommand
Command will deploy initial inftrastructure that is identified by
airshipctl document module, bundle interface, documents will be fitered
based on label and annotation, which will indicate that it belongs to
initial infrastructure.

After the documents are identified, they will be labeled
indicating that these resources are deployed by initinfra, if flag
`prune` is specified, resources that have initinfra annotation and
deployedBy initinfra label, but are not part of the documents supplied
by bundle interface will be deleted. If user wants to avoid pruning of
some resources he can remove label deployBy manually from the kubernetes
resources that should not prunned.

Change-Id: I143835291d449be420bfcb2944ba7eaec37c3411
2020-02-27 08:38:51 -06:00
Zuul
be7e122b05 Merge "Add Cluster API Bootstrap Provider Kubeadm" 2020-02-26 17:08:32 +00:00
Zuul
671154e77f Merge "Add Cluster API Provider for Bare Metal Hardware" 2020-02-26 17:07:49 +00:00