183 Commits

Author SHA1 Message Date
Zuul
1f88a95a33 Merge "Force loadbalancer pods to master nodes" 2021-07-21 21:15:49 +00:00
Zuul
3a371a939d Merge "Support for configurable HAProxy LoadBalancer" 2021-07-19 14:36:38 +00:00
Manoj Alva(ma257n)
07b94538c0 Support for configurable HAProxy LoadBalancer
- Moved HAProxy control plan/worker templates as
  configMap

Relates-To: #19
Closes: #19
Change-Id: I9d2a3992827fa3a589c930e40ab3ab9d34527731
2021-07-14 15:37:49 +00:00
Reddy, Hemachandra (hr858f)
fe0dac4a55 Force loadbalancer pods to master nodes
Loadbalancer pods which run haproxy should run on
Kubernetes master nodes as per the design. This commit
adds appropriate node selectors and tolerations.

Change-Id: Ic35a0130d8767e3cda7bbf4370f5dd07de1f6b8e
2021-07-13 11:59:30 -05:00
Reddy, Hemachandra (hr858f)
e65bd9e134 Increase memory limit to prevent OOMKilled
The current memory limits seems too small.

Change-Id: I0473dad307ba1a879a0b89c0e138c8894a93329d
2021-07-08 16:49:43 -05:00
Sean Eagan
a938b1eec6 Fix Zuul job host targeting
- Move to ubuntu-focal to account for:
  http://lists.opendev.org/pipermail/service-announce/2021-May/000019.html
- Set an explicit nodeset on jobs to prevent this issue in the future
- Fix unit test and doc gen issues which cropped up while CI was
  falsely passing

Closes: #22
Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: I4a53d2099c29ad3fc7a8188a9153008c56a7fd72
2021-06-18 10:13:32 -05:00
Kostiantyn Kalynovskyi
8a75ff0ecf Add ability to injest both json and yaml networkData
Change-Id: I43e8a4b64e618e3233f15b0813ae55f64dccba70
2021-06-16 01:16:47 +00:00
Zuul
fbb81d1801 Merge "Add liveness and readiness probes to jumphost" 2021-05-26 13:29:15 +00:00
Matthew Fuller
606bffec8b Add liveness and readiness probes to jumphost
Adds TCP liveness and readiness probes for the jumphost
container's sshd service.

Closes: #6
Change-Id: Ifa2e63bbea7773aa5c9154d03df32e4da3b57994
2021-05-25 23:29:52 +00:00
Zuul
f223bcedd0 Merge "Remove nodePort config from loadBalancerWorker service" 2021-05-24 18:44:22 +00:00
Sean Eagan
4d14fac01a Fix host list generation
Closes: #17
Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: Id9835ca0f6bddb35daad68fcde1abaccac45aa96
2021-05-21 14:26:49 -05:00
Sean Eagan
e49a9eeebe Remove nodePort config from loadBalancerWorker service
Closes: #21
Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: I0f24553cfbf5de7ea95a2ef9298c0fe6632df62e
2021-05-21 11:04:17 -05:00
Sean Eagan
f9226befbd Complete workload load balancer implementation
- Add API to configure a node port range
- Map each port to same port on sub-cluster
- Implement haproxy settings for workload services, including tcp connect
  health checks

TODO (later):
- The existing singular NodePort field is now ignored for this service,
  since the node port range is used instead, and so should be removed,
  which will require some refactoring of base service types.

Change-Id: I6a5be3e330270c13c3d42c8bba4004b67524911d
2021-05-11 11:50:20 -05:00
Zuul
fb2f4f4d89 Merge "Fix sample BMH label selectors" 2021-05-06 21:21:10 +00:00
Zuul
9880cbc51a Merge "Move CRDs to apiextensions.k8s.io/v1" 2021-05-06 21:20:42 +00:00
Zuul
6e6f7a33d3 Merge "Minor fixes to minikube startup script" 2021-05-06 21:20:39 +00:00
Zuul
07446cf11c Merge "Fix namespaces on BMH Secrets" 2021-05-06 21:20:36 +00:00
Sean Eagan
e4081ba421 Minor fixes to minikube startup script
- Set back ownership of ~/.kube and ~/.minikube to current user
- Remove not needed -E flag to sudo commands
- Remove unused etcd data directory
- Uplift minikube to latest stable release

This merely copies over the following Vino change:
https://review.opendev.org/c/airship/vino/+/782880

Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: Iadf605b9028811f645262aa1b6354ed574f212ba
2021-05-03 14:30:15 -05:00
Sean Eagan
ed841b29e5 Fix namespaces on BMH Secrets
A couple of the BMH Secrets had explicit namespaces set, which
weren't getting used anyway since the config/samples kustomization
overrides the namespace, leading to confusion about the actual
namespace used, thus this removes them.

Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: Iaac3d34911d14295897a0225682ac973f3ce6795
2021-05-03 14:28:03 -05:00
Sean Eagan
d5d34c8060 Fix sample BMH label selectors
Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: I57eddc55524d17483bed2dba156bfe663414be0e
2021-05-03 14:26:11 -05:00
Sean Eagan
459504111b Split scheduling label into namespace/name
Closes: #15
Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: I03504f4f57a418ab9f2bc927e149e57597fab3b4
2021-05-03 14:24:07 -05:00
Sean Eagan
f5faa72150 Move CRDs to apiextensions.k8s.io/v1
Closes: #18
Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: I76c75b19fb0055db70f2377b91212ff76108c5f9
2021-05-03 14:22:43 -05:00
Sean Eagan
068afe5bb9 Remove Auth service from SIP
The auth service (Dex) does not depend on the SIP scheduling output
like the other services do, so it can be put in place independet
of SIP. This will remove complexity from SIP and give more
flexibility in how we deploy Dex through kustomize.

Change-Id: I1f871ae3be7d228cef867af6bed8ffffd6d0ea56
2021-04-27 14:03:40 -05:00
sa069q
ab0d3f097c Dex deployment related changes for SIP
- This patchset installs ClusterIssuer that references the selfsigned certificates generated via Issuer in config/samples
 - Passing in the generated secret from Issuer in SIP CR so that it can be consumed by ClusterIssuer
 - Changes made in overall structure of config/samples since Issuer and Secret required for dex needs to be in cert-manager namespace
 - Changes made in install-k8s.sh since minikube installation needs that apiserver-names param for dex endpoint to work
 - Changes made in deploy-sip.sh for installation of Cert-Manager since we need to enable it temporarily for gates
 - Added TODO for Auth related Test cases, for more details https://github.com/airshipit/sip/issues/14

Note: This patchset doesn't install Dex but the pre-req for Dex

Change-Id: If1962ead2a38dd0082a5e8978e5869f5c06aa757
2021-04-26 07:23:56 +00:00
Sean Eagan
b42b808ddb Remove duplicate docker install
This was causing gate failures after we started using the
airshipctl docker-install script [0].

[0]: https://review.opendev.org/c/airship/sip/+/785248

Change-Id: Ibcd5ae8fb7ffc2b5d0d968945e67d7e0641a9f09
2021-04-23 13:04:45 -05:00
Zuul
5cc8b2314d Merge "Worker Load Balancer" 2021-04-14 21:16:11 +00:00
francisy
03085759e8 Worker Load Balancer
Spin up a new load balancer for services exposed on the
sub-cluster(ControlPlane and Worker)

TODO: Support node port range
Map each port to same port on sub-cluster (instead of 6443)
Optimize haproxy config for generic workload services

Change-Id: I59125d7af06886fe128d068f657f0d9f1be7e926
2021-04-13 17:29:40 -04:00
Zuul
7bde960f69 Merge "Use role from airshipctl to install docker" 2021-04-13 14:21:36 +00:00
Shturm, Svetlana
bfc7e1e981 Use role from airshipctl to install docker
Change-Id: Ia353f7a1e428379a9e50f34e55fdfda33953dfa9
2021-04-12 14:23:19 -05:00
Kostiantyn Kalynovskyi
8c7d108831 Remove change BMH names in test to controlplane
Change-Id: I3aacf675f2231b60b9e4bcd069bf6c14ac464929
2021-04-12 15:36:31 +00:00
Shturm, Svetlana
43946aac5b Fix secret name
Change-Id: If8101129cb0728cb75f546b69eee8ae0cf404ab8
2021-04-06 16:59:09 -05:00
Zuul
73166ddb3d Merge "Ensure we install pkgs as root" 2021-04-06 21:53:24 +00:00
Shturm, Svetlana
3c0a0cb844 Support overrides for internal Zuul setup
Change-Id: I0ffc0a4482ecf04aa5b74416ecea0f24f1cb14d6
2021-04-05 17:23:28 -05:00
Roman Gorshunov
9b86cde5e2 Ensure we install pkgs as root
Change-Id: I2502f6dfd3c3eac87bce84b19badcfa945b6e7c7
2021-03-29 18:09:55 +02:00
Sean Eagan
2659215b84 Support anti-affinity across arbitrary topology keys
Closes #10

Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: Ie2dd2ac6c986c6802a0ddf8efee03854a76ea13e
2021-03-23 14:22:49 -05:00
Zuul
190c28ce44 Merge "Refactor scheduling labels" 2021-03-23 19:04:54 +00:00
Zuul
194346b22e Merge "Light refactoring" 2021-03-17 14:30:40 +00:00
Zuul
13d4f7f674 Merge "Label vBMHs with SIP name along with namespace" 2021-03-16 19:49:21 +00:00
Zuul
907d86deab Merge "Update proxy documentation" 2021-03-16 19:46:57 +00:00
Sean Eagan
91def87243 Refactor scheduling labels
This removes the `sip.airshipit.org/scheduled` label, and SIP now
relies solely on the presence/absense of the `sip.airshipit.org/cluster`
(renamed from `sip.airshipit.org/workload-cluster`) label to determine
which if any sip cluster a BMH is already scheduled to.

Closes #7

Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: I10f0c3a0cf420e41916fe9c1144fab9df21f3b97
2021-03-16 14:11:02 -05:00
Ian Howell
58faa0d491 Label vBMHs with SIP name along with namespace
Relates-To: #5

Change-Id: Ia3e553f5032ba199abc18345cd3fedbfe381578c
2021-03-16 08:59:20 -05:00
Ian Howell
d6bc04e03e Light refactoring
This is a small change to fix some spelling issues, logging mistakes,
and simplifying small functions.

Change-Id: I9c90d4b9b83074a0ddfb681d9d5ee5e21b599ede
2021-03-16 08:47:08 -05:00
Sean Eagan
44ee037f5b Remove VM assumption from API
This removes references to "vm", "vino", and "vbmh" in the API and
replaces them with "bmh" since at least the existing functionality of
SIP is applicable to any BMH, not just those backed by vino/VMs.
If/when we add functionality specific to VM nodes, the API for those
features should be named/documented accordingly.

This also updates BMH scheduling to support arbitrary label selectors [0].

[0]: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements

Closes: #8
Closes: #9
Change-Id: I105fe3dc854c032c755997c47c24997a03cd65e6
2021-03-15 15:40:49 -05:00
Zuul
59532f09fc Merge "Add jumphost configuration to ssh to VMs" 2021-03-15 13:52:43 +00:00
Zuul
73db9aa36b Merge "Remove BMH CRD from SIP CRD entrypoint" 2021-03-12 17:53:59 +00:00
Sean Eagan
0db9ec08ba Add jumphost configuration to ssh to VMs
This adds a field to the SIP CRD to reference a Secret containing
SSH private keys to inject into the jump host container to be
used to SSH into the cluster's nodes. These should correspond
to whatever SSH authorized keys that will be included in the nodes.

These keys are then added to the jumphost container, and an SSH
config file is added to the ubuntu user's SSH config which includes
these keys along with host entries for each VM, which allows
them to be consumed by bash completion, which this also adds to
the jumphost image.

Signed-off-by: Sean Eagan <seaneagan1@gmail.com>
Change-Id: If2e948f567a867d8ee11353d79f3224faeac9215
2021-03-11 14:00:08 -06:00
Zuul
f224ee3d42 Merge "Add SSH access to Jump Host" 2021-03-09 23:11:56 +00:00
Zuul
85544202d1 Merge "Add certificate injection support to images" 2021-03-09 23:06:52 +00:00
Drew Walters
e545165a57 Remove BMH CRD from SIP CRD entrypoint
The BMH CRD should not be bundled with the SIP CRD because it could
cause conflicts with baremetal operator deployments. The reason the CRD
was bundled with the SIP CRD was to load it into the unit tests.

This change moves the BMH CRD near the sample BMH objects for testing
purposes and adjusts the tests to load from that directory.

Signed-off-by: Drew Walters <andrew.walters@att.com>
Change-Id: I7e5b67ebbabb815fd19320d248246055decbde1e
2021-03-09 15:20:52 +00:00
Drew Walters
ff4e8068d5 Add SSH access to Jump Host
This change enables operators to SSH into a sub-cluster Jump Host from
outside the base K8s cluster using a Node Port service. Operators
authenticate using SSH authorized keys to the SIP CR.

Signed-off-by: Drew Walters <andrew.walters@att.com>
Change-Id: Ib1d94b5b0813e34014375d97f9189948af49f42c
2021-03-09 15:20:48 +00:00