Commit Graph

46 Commits

Author SHA1 Message Date
Ruslan Aliev 12f448963f ETCD improvements
* remove healthcheck sidecar, perform probes in etcd
   container itself, failing liveness probes in sidecar
   do not restart problematic etcd container;
 * verify that etcdctl member list cmd in anchor is
   always successfull;
 * adjust ETCDCTL_ENDPOINTS env in etcd container to
   POD_IP variable instead of localhost (127.0.0.1);
 * add liveness/readiness probes to auxiliary etcd as
   well as properly passing etcd configuration variables
   as strings;
 * monitor current leader in initial etcd cluster, in case
   if aux member is current leader pass it to permenant
   member, same check applies for aux suicide process;
 * etcd aux pod will be alive unless all permanent nodes
   come up and join the cluster plus apiserver no longer
   relies on aux members;
 * add 5 seconds sleep between aux member remove for more
   smooth transition process.

Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Change-Id: I7918072a6ba5a6b22b359d1616def8c31425462d
2024-04-25 01:01:06 -05:00
Ruslan Aliev a58678d5d2 Add configurable ETCD parameters to aux cluster
Bump k8s, calico, etcd, coredns and helm.

Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Change-Id: I77373c223c6ea723ee31fe51e6fb4a9e84be03f7
2024-04-18 13:22:17 -05:00
SPEARS, DUSTIN (ds443n) 12fdf402f6 Add resource allocation setting for etcd sidecar
Change-Id: I4c284d9bbf2da91a6a0e43758d92bf007be25f9c
2024-02-12 11:58:18 -05:00
SPEARS, DUSTIN (ds443n) 7ce7301476 Update ETCD to v3.5.11
Since after v3.5.6 etcd-io switched to a
distroless base image. Etcd anchor pods
are now using etcd-utility and etcd is
running a sidecar for health checks.

Change-Id: I198dca1209097de4d60a53a7568f0c4790679599
2024-02-08 10:35:33 -05:00
Sergiy Markin c1da28f637 [backups] Add throttlling of remote etcd backups
This PS adds a possibility to limit (to throttle) the number of
simultaneously uploaded backups while keeping the logic on the client
side using flag files on remote side.

Change-Id: I753faab8f3d934346d54e38bfc94cec3a8f79385
2023-12-19 16:14:43 +00:00
Zuul eb4efc172b Merge "Airflow stable 2.6.2" 2023-08-30 21:59:03 +00:00
Sergiy Markin 69a74590e7 Airflow stable 2.6.2
This PS updates python modules and code to match Airflow 2.6.2:

- bionic py36 gates  were removed
- python code corrected to match new modules versions
- selection of python modules versions was perfoemed based on
  airflow-2.6.2 constraints

Change-Id: I9c3e139b3437414a61af7e7c0b7d7e533fadefda
2023-08-29 21:12:11 +00:00
Anselme, Schubert (sa246v) 558acaf3bf
Parametrise etcd-anchor readiness probe
Change-Id: Iae3f1e5900c91b0ee7cb07c6f024cdcf41455125
Signed-off-by: Anselme, Schubert (sa246v) <sa246v@att.com>
2023-08-22 12:36:03 -04:00
SPEARS, DUSTIN (ds443n) 1717ed84e5 k8s upgrade to 1.27.1
upgrades kubernetes client to v1.27.1
upgrade etcd to v3.5.6

Change-Id: Iaf287353425aa6263a81617890a2ca3c2f2e4281
2023-05-17 10:32:04 -04:00
Ruslan Aliev e207bbe966 k8s upgrade to v1.23.7
Address changes and deprecations in Kubernetes v1.21=>v1.23

controller-manager:
* --authorization-kubeconfig and --authentication-kubeconfig must be set
* liveness/readiness probes must use HTTPS
* the default port has been changed to 10257

kubelet:
* --dynamic-config-dir has been deprecated, will not move to GA
* --cni-bin-dir has been deprecated, will be removed with dockershim
* --cni-conf-dir has been deprecated, will be removed with dockershim
* --network-plugin has been deprecated, will be removed with dockershim

https: //github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.23.md#deprecation
https: //kubernetes.io/docs/tasks/administer-cluster/reconfigure-kubelet/
https: //github.com/kubernetes/enhancements/tree/master/keps/sig-node/281-dynamic-kubelet-configuration
Change-Id: Ia996d7c14d81d1d8b8067f11c02ffb4ce90eb49a
2022-06-29 00:21:45 -05:00
Sophie Huang 91c21ce14e Enhance ETCD backup
Pick up the helm-toolkit DB backup enhancement in etcd
to add capability to retry uploading backup to remote server.

Change-Id: If6ea347a4c2c55f14f35d95681aaf482d0a6103c
2022-01-25 22:04:25 +00:00
Phil Sphicas 023e7d4d7d Uplift etcd to v3.4.13
Change-Id: I1e4452f3bd9ff434b0b68ddbbdc63c9d600f6932
2021-02-11 17:23:32 +00:00
dt241s@att.com 97427904bc Upgrade etcd to 3.4.3
1) Updated all reference of etcd Imags to 3.4.3

Change-Id: I629af43eb7e9689af3237361cf7a41fc35ed364c
2020-08-25 17:22:15 +00:00
KHIYANI, RAHUL (rk0850) fffb57109d Add security context template for etcd-backup chart
This change also removes etcd-perms container which is not required

Change-Id: Ia6c38424e0c2d177e35fc904a9551d601a31ac3b
2020-07-27 16:29:53 +00:00
Zuul c6c7a3accd Merge "ETCD remote backup enhancements" 2020-06-30 22:23:33 +00:00
anthony.bellino 95c1689e03 ETCD remote backup enhancements
1) Include framework for remote etcd backups.
2) Use porthole etcdctl utility image for backups.
3) Move helm-toolkit pin to latest commit.
4) Add a keystone user for RGW.
5) Add a secret for Swift API access.
6) Add a secret for backup/restore configuration.

Change-Id: Ica549c3b6bc00ca55540b8ffedd4c46af0d8d25e
2020-06-29 23:34:50 +00:00
KHIYANI, RAHUL (rk0850) 1e4b5e0d45 Add pod/container security context to promenade charts
This updates the coredns, haproxy and etcd chart to include the pod
security context on the pod template.

This also adds the container security context to set
readOnlyRootFilesystem flag

Change-Id: I9b5b0ea83acd4c5656577d8cbc684a5031ca0111
2020-06-29 17:06:02 -05:00
KHIYANI, RAHUL (rk0850) b51eb9802d Add apparmor profile to apiserver and etcd jobs
Change-Id: I8bed3213868b45a438e5ae5929bca8bef699a503
2020-05-28 13:04:12 -05:00
KHIYANI, RAHUL (rk0850) 83104b345f Promenade: Add apparmor profile to promenade charts
This change adds apparmor profile to coredns, haproxy, etcd and
promenade charts

Change-Id: Ic0000f0bf515f6ddf0085b5ec0085a5a51e591b2
2020-05-18 16:18:28 +00:00
KHIYANI, RAHUL (rk0850) f2869e68cf Add apparmor profile to etcd chart
Change-Id: Ic17db9b9e96e6c47b6d970a8dd63ea338a8b4f7e
2020-02-19 18:36:48 -06:00
Phil Sphicas 7c6043772b etcd chart: additional env vars for etcd pods
Allows extra environment variables to be applied to the etcd pods. Can
be used to apply tuning parameters, enable experimental flags, etc.

Change-Id: I9d82514b6e3a292edc472d885c0a61d5c81199f5
2020-02-07 16:06:43 -08:00
Doug Aaser 4cd75e26a0 Uplift etcd to v3.4.2
Uplift etcd to v3.4.2
Also uplifts calico in the gate so that it works with etcd v3

Change-Id: Iac93cadfad813223f9364e513fae00afa178113e
2019-11-25 17:12:00 +00:00
Zuul 3d7ecfd190 Merge "(etcd) Support dash shell" 2019-09-10 22:05:54 +00:00
Luna Das d3501bc006 Add facility to configure log levels in kubernetes-etcd
Change-Id: Iefaa48b9eb3403cf6955374d5ea460f676e0806b
2019-09-10 19:42:03 +05:30
Scott Hussey 6aeab9e490 (etcd) Support dash shell
- Rewrite some anchor scripting to support dash
  - 'function' not supported, refactor POSIX function declarations
- Rewrite aux monitor to support dash
  - Same
Change-Id: If44c59be2f30fd30c1a668bc27e58b37575610b5
2019-09-01 01:22:44 -05:00
rajesh.kudaka 490dd63c2c Enable probes config for etcd
This commit enables configuration of probes
for etcd pod by manipulating/overriding values in
values.yaml or through manifests.

Change-Id: I69eabd13f8ea8b97a33281ad993ec2e88b9280bc
2019-08-09 09:28:47 +00:00
Hussey, Scott (sh8121) d2f020fbb7 Allow etcd anchor to recover from bad state
- If an etcd member has corrupted data or has somehow
  been removed from a cluster, the anchor does not currently
  recover. This change adds a threshold of X monitoring loops
  after which the anchor will remove the member from the cluster
  and recreate it.

Note: This is safe due to etcd's strict quorum checking on
      runtime reconfiguration, see [0].

[0] https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/configuration.md#--strict-reconfig-check

Change-Id: Id2ceea7393c46bed9fa5e3ead37014e52c91eac3
2019-06-26 07:56:59 -05:00
RAHUL KHIYANI f50a0c8d78 ETCD: Add pod/container security context
This updates the etcd chart to include the pod
security context on the pod template.

This also adds the container security context to set
readOnlyRootFilesystem flag to false

Change-Id: I34a8ab3e850779192491b9b127a82b82f05fa00b
2019-06-13 02:01:16 +00:00
Matt McEuen 46b6437e72 Make static manifest cleanup configurable
By design, the anchor pods clean up after their static pods
(and associated secrets/configs) via a hook when they the anchor
pods are stopped, to make sure that cruft is not left lying around
(or running) when an anchor pod is no longer scheduled to a host.

However, it's been observed that on a host under high load, e.g.
if one or two other control plane hosts are down, then the anchor
pods may be stopped in an unplanned manner.  This results in
service unavailability for the anchored static manifest pods.

This change makes that cleanup behavior configurable (following the
pattern already implemented in the haproxy chart) but leaves it on by
by default.

Change-Id: Iab14510ef8ea5b9e400e0f744231811117029887
2019-06-12 11:16:38 -05:00
Alexander Vlasov 1f5c57d1de Apply docker-default AppArmorProfile for etcd pod
Change-Id: Ia086ca3d28f1a1e4ac013d0f29018faf027b914e
2019-05-30 16:10:56 +00:00
Zuul 8c9be2b5b1 Merge "Revert "Add Liveness/Readiness probe to calico-etcd."" 2019-05-16 19:39:28 +00:00
Matt McEuen 42b72da391 Revert "Add Liveness/Readiness probe to calico-etcd."
The probe script is not being mounted into this pod, causing failures at runtime.

This reverts commit a2e452ae42.

Change-Id: If005ff4244159262c88bfcd85bf2c48caf4b279b
2019-05-16 14:17:41 +00:00
Zuul 4f7999bd00 Merge "Add Liveness/Readiness probe to calico-etcd." 2019-05-03 14:21:15 +00:00
Goutham Pratapa a2e452ae42 Add Liveness/Readiness probe to calico-etcd.
This commit is to add liveness probe to calico-etcd-anchor pod
and both liveness/readiness probe to calico-etcd pod.

Change-Id: I2f856fa9d73152073accd753e715558457ff59e2
2019-04-30 13:24:57 +05:30
Sreejith Punnapuzha eefdbe0581 [fix] etcd backup to use different filename
- Changed backup path to /var/backups/etcd
- Chanded backup filename to service name to support multiple releases
- Removed additional etcd from cronjob name

Change-Id: I1fabdfe1dccd8e170090eec0a69b2598e1e3e422
Signed-off-by: Sreejith Punnapuzha <Sreejith.Punnapuzha@outlook.com>
2019-04-17 19:16:52 +00:00
Zuul ea6b129606 Merge "Implements: etcd backup" 2019-03-06 21:05:42 +00:00
Sreejith Punnapuzha b65752d7c5 Implements: etcd backup
This is an effort to impletment etcd backup.
This will create a k8s cron job to take a regular backup.

Change-Id: If2c89ac01540c0f13f9b57a6833a8ea770379717
Signed-off-by: Sreejith Punnapuzha <Sreejith.Punnapuzha@outlook.com>
2019-02-25 14:58:46 +00:00
Matt McEuen e4cab73d0f Update to Kubernetes 1.11.6
This change updates the following components in the Promenade charts,
docs, and example bootstrap configuration:
  Kubernetes 1.10.11 -> 1.11.6
  CoreDNS 1.1.2 -> 1.1.3 (per k8s 1.11 recommendations)
  Etcd 3.2.14 -> 3.2.18 (per k8s 1.11 recommendations)
  Tiller 2.10.0 -> 2.12.1 (per Helm k8s support)

This change has been tested by the Promenade resiliency gate.

Change-Id: Ia70de212dd2d50c6638578b92c750a4d5c791229
2019-02-05 17:29:59 -06:00
Aaron Sheffield 5afff6e407 Added Helm Test for ETCD
- Uses etcdctl endpoint health for a helm test.

Change-Id: I25162a228f1725d30a3346cd365dee7de491a26d
2018-04-11 15:55:44 -05:00
Scott Hussey ccd372a974 Resource limits on Promenade charts
- Update Makefile to more closely match UCP standards
- Add resource limits to any Pods missing them

Change-Id: Ia791a6b207c2baca7dd3141be71aef513c916661
2018-03-29 08:52:56 -04:00
Aaron Sheffield cf0037597d Fixes etcd race condition bug
- During genesis there was a race condition on the genesis node leaving
   and other nodes joining.
- Updated etcd anchor to update the config when a host is not healthy.

fixes #54

Change-Id: I0ba2c831c73cc3136ee635e7d0c0efcc8b009858
2018-03-21 20:14:00 -05:00
Hassan Kaous f9c8481927 Refactor the generator function to use PKIcatalog.
Change-Id: I9c049b8499a14a537e7cc862ca96f84cf80b6694
2018-02-13 11:24:02 -05:00
Mark Burnett 338b0c2e40 Update component versions
* etcd - bump to 3.2.14 (latest stable)
* calico - bump to 2.6.5 (latest 2.6 series)
* replace :master with :latest in tests (master is no longer a published
  tag by CICD)

Change-Id: I82df5038a139658aed015bc2f53eab6e79a15c40
2018-01-12 09:34:39 -06:00
Mark Burnett 78d7437193 Add rest of UCP to complete example
* Adds missing services to tools/g2/manifests/genesis.json
* Removes init containers from kubernetes component anchors
* Forces refresh of "latest" containers in gate.sh image cache

Change-Id: I7cce39dd77cc7f60dc3824c36b39e0c7034db245
2017-11-30 10:09:50 -06:00
Anthony Lin 3b4b4661a4 Refactor etcd Chart
Refactor etcd chart to align with OSH standards

Change-Id: Ie71fcf045b3ec896dcdd03bb3455fb85af8f2e7a
2017-11-29 17:33:41 +00:00
Mark Burnett 95643147c5 Migrate to self hosted using charts
This change includes several interconnected features:

* Migration to Deckhand-based configuration.  This is integrated here,
  because new configuration data were needed, so it would have been
  wasted effort to either implement it in the old format or to update
  the old configuration data to Dechkand format.
* Failing faster with stronger validation.  Migration to Deckhand
  configuration was a good opportunity to add schema validation, which
  is a requirement in the near term anyway.  Additionally, rendering
  all templates up front adds an additional layer of "fail-fast".
* Separation of certificate generation and configuration assembly into
  different commands.  Combined with Deckhand substitution, this creates
  a much clearer distinction between Promenade configuration and
  deployable secrets.
* Migration of components to charts.  This is a key step that will
  enable support for dynamic node management.  Additionally, this paves
  the way for significant configurability in component deployment.
* Version of kubelet is configurable & controlled via download url.
* Restructuring templates to be more intuitive.  Many of the templates
  require changes or deletion due to the migration to charts.
* Installation of pre-configured useful tools on hosts, including calicoctl.
* DNS is now provided by coredns, which is highly configurable.

Change-Id: I9f2d8da6346f4308be5083a54764ce6035a2e10c
2017-10-17 13:29:46 -05:00