From 4d331e92a2d9c78a63db9f6728001941615c1b6c Mon Sep 17 00:00:00 2001 From: Andrew Lavery Date: Mon, 10 Oct 2022 20:13:30 -0400 Subject: [PATCH 001/234] document rook-ceph expansion and contraction --- .../install-with-kurl/reducing-storage.md | 207 ++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 src/markdown-pages/install-with-kurl/reducing-storage.md diff --git a/src/markdown-pages/install-with-kurl/reducing-storage.md b/src/markdown-pages/install-with-kurl/reducing-storage.md new file mode 100644 index 00000000..1fbcde55 --- /dev/null +++ b/src/markdown-pages/install-with-kurl/reducing-storage.md @@ -0,0 +1,207 @@ +--- +path: "/docs/install-with-kurl/changing-storage" +date: "2022-10-10" +weight: 27 +linktitle: "Changing Storage" +title: "Changing Storage" +isAlpha: false +--- + +It is relatively common to initially allocate less (or more) storage than is required for an installation in practice. +Some storage providers allow this to be done easily, while others require far more effort. + +# Rook-Ceph + +## Expanding Storage + +Rook does not support expanding the storage of existing block devices, only adding new ones. +However, a 100GB block device added to a node that already had a 100GB block device used by rook will be treated similarly to a freshly created instance with a single 200GB disk. + +## Contracting Storage + +Rook does not support shrinking a block device once it has been allocated to Rook. +However, entire block devices can be removed from the cluster. +The procedure to do so is long and painful, but it does exist. + +### Identifying OSDs +The first step is to determine what OSD number corresponds to the block device you wish to be freed up. + +With a shell into the tools deployment from `kubectl exec -it -n rook-ceph deployment/rook-ceph-tools -- bash`, we can get a list of disks that ceph is using, and which disk is on which host. + +``` +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph osd tree +ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF +-1 0.58597 root default +-3 0.39067 host laverya-rook-main + 0 ssd 0.09769 osd.0 up 1.00000 1.00000 + 1 ssd 0.09769 osd.1 up 1.00000 1.00000 + 2 ssd 0.19530 osd.2 up 1.00000 1.00000 +-5 0.19530 host laverya-rook-worker + 3 ssd 0.04880 osd.3 up 1.00000 1.00000 + 4 ssd 0.14650 osd.4 up 1.00000 1.00000 +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph osd df +ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS + 0 ssd 0.09769 1.00000 100 GiB 13 GiB 13 GiB 0 B 52 MiB 87 GiB 13.45 0.76 37 up + 1 ssd 0.09769 1.00000 100 GiB 25 GiB 25 GiB 0 B 93 MiB 75 GiB 25.38 1.44 47 up + 2 ssd 0.19530 1.00000 200 GiB 32 GiB 32 GiB 0 B 124 MiB 168 GiB 16.17 0.92 85 up + 3 ssd 0.04880 1.00000 50 GiB 9.4 GiB 9.4 GiB 0 B 39 MiB 41 GiB 18.88 1.07 45 up + 4 ssd 0.14650 1.00000 150 GiB 25 GiB 25 GiB 0 B 100 MiB 125 GiB 16.75 0.95 115 up + TOTAL 600 GiB 106 GiB 105 GiB 0 B 407 MiB 494 GiB 17.62 +MIN/MAX VAR: 0.76/1.44 STDDEV: 4.05 +``` +If this is enough to identify your disk already, fantastic! +For instance, a 200GB disk on `laverya-rook-main` would be osd.2 above. + +If this is not enough - for instance if you have multiple disks of the same size on the same instance - you can use kubectl from the host. +You can get the list of rook-ceph OSDs with `kubectl get pods -n rook-ceph -l ceph_daemon_type=osd`, and then check each one by searching the describe output for `ROOK_BLOCK_PATH`. + +``` +kubectl describe pod -n rook-ceph rook-ceph-osd-0-6cf7c5cb7-z7c8p | grep ROOK_BLOCK_PATH + DEVICE="$ROOK_BLOCK_PATH" + ROOK_BLOCK_PATH: /dev/sdb + ROOK_BLOCK_PATH: /dev/sdb +``` +From this we can tell that the OSD using /dev/sdb is OSD 0. + +### Draining OSDs +Once this is known, there are many commands to be run within the rook-ceph-tools deployment. +You can get a shell to this deployment with `kubectl exec -it -n rook-ceph deployment/rook-ceph-tools -- bash`. + +Once you have determined the OSD to be removed, you can tell ceph to relocate data off of this disk with `ceph osd reweight 1 0`. +``` +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph osd reweight 1 0 +reweighted osd.1 to 0 (0) +``` + +Immediately after running this, if we run ceph status there will be a progress bar: +``` +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph status + cluster: + id: be2c8681-a8a8-4f84-bf78-5afe2d88e48e + health: HEALTH_WARN + Degraded data redundancy: 6685/32898 objects degraded (20.320%), 39 pgs degraded, 13 pgs undersized + + services: + mon: 1 daemons, quorum a (age 37m) + mgr: a(active, since 35m) + mds: 1/1 daemons up, 1 hot standby + osd: 5 osds: 5 up (since 20m), 4 in (since 21s); 32 remapped pgs + rgw: 1 daemon active (1 hosts, 1 zones) + + data: + volumes: 1/1 healthy + pools: 11 pools, 177 pgs + objects: 16.45k objects, 62 GiB + usage: 95 GiB used, 405 GiB / 500 GiB avail + pgs: 6685/32898 objects degraded (20.320%) + 4418/32898 objects misplaced (13.429%) + 126 active+clean + 15 active+recovery_wait+undersized+degraded+remapped + 14 active+recovery_wait+degraded + 5 active+recovery_wait+remapped + 5 active+recovery_wait + 5 active+recovery_wait+degraded+remapped + 3 active+undersized+degraded+remapped+backfill_wait + 2 active+remapped+backfill_wait + 2 active+recovering+undersized+degraded+remapped + + io: + client: 18 MiB/s rd, 35 MiB/s wr, 79 op/s rd, 18 op/s wr + recovery: 46 MiB/s, 0 keys/s, 11 objects/s + + progress: + Global Recovery Event (0s) + [............................] + +``` + +At this point, ceph is removing data from the OSD to be removed and moving it to the OSD(s) to be kept. + +When completed, every PG should be active+clean, and none should be in any other status. + +There should be no progress bar at the bottom, and it will look similar to this: +``` +[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph status + cluster: + id: bbda49de-24b8-4f28-9ea5-ee56b570a7c9 + health: HEALTH_WARN + 11 pool(s) have no replicas configured + + services: + mon: 1 daemons, quorum a (age 23h) + mgr: a(active, since 22h) + mds: rook-shared-fs:1 {0=rook-shared-fs-a=up:active} 1 up:standby-replay + osd: 2 osds: 2 up (since 23h), 1 in (since 86s) + rgw: 1 daemon active (rook.ceph.store.a) + + task status: + scrub status: + mds.rook-shared-fs-a: idle + mds.rook-shared-fs-b: idle + + data: + pools: 11 pools, 177 pgs + objects: 1.43k objects, 3.9 GiB + usage: 5.9 GiB used, 194 GiB / 200 GiB avail + pgs: 177 active+clean + + io: + client: 5.0 KiB/s rd, 12 KiB/s wr, 5 op/s rd, 1 op/s wr +``` + +You can then run `ceph osd df` to ensure that the OSD to be removed is empty: +``` +[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph osd df +ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS + 0 ssd 0.09769 1.00000 100 GiB 4.9 GiB 3.9 GiB 625 KiB 1023 MiB 95 GiB 4.92 1.00 177 up + 1 ssd 0.09769 0 0 B 0 B 0 B 0 B 0 B 0 B 0 0 0 up + TOTAL 200 GiB 5.9 GiB 3.9 GiB 661 KiB 2.0 GiB 194 GiB 4.92 +MIN/MAX VAR: 1.00/1.00 STDDEV: 0 +``` + +And additionally run `ceph osd safe-to-destroy osd.` to ensure that ceph really is done with the drive: +``` +[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph osd safe-to-remove osd.1 +OSD(s) 1 are safe to destroy without reducing data durability +``` + +### Disabling OSDs +The next set of commands will need to be run with kubectl, so you can exit the rook-ceph-tools shell with `exit`. + +First, scale the rook-ceph-operator to 0 replicas to keep it from undoing things. `kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=0`. Then, scale down the OSD you wish to remove with `kubectl -n rook-ceph scale deployment rook-ceph-osd- --replicas=0`. + +After this, it's time to TEST AND MAKE SURE NOTHING IS BROKEN before actually deleting things for real. + +Does kotsadm still work? +Can you make a support bundle through the web UI? +Can you browse the files of a release? +Does the application itself still function? + +If any of the above answers are "no", you should scale the rook-ceph-operator and rook-ceph-osd deployments back to 1 replica. + +### Destroying OSDs + +Once again, you will need to get a toolbox shell with `kubectl exec -it -n rook-ceph deployment/rook-ceph-tools -- bash`. + +An OSD can be destroyed with `ceph osd purge 1 --yes-i-really-mean-it`. +If you do not in fact "mean it", please do not run this. + +``` +[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph osd purge 1 --yes-i-really-mean-it +purged osd.1 +[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph osd df +ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS + 0 ssd 0.09769 1.00000 100 GiB 5.0 GiB 4.0 GiB 625 KiB 1023 MiB 95 GiB 4.97 1.00 177 up + TOTAL 100 GiB 5.0 GiB 4.0 GiB 625 KiB 1023 MiB 95 GiB 4.97 +MIN/MAX VAR: 1.00/1.00 STDDEV: 0 +``` + +Once the OSD has been purged, you can `exit` the toolbox again and reformat the freed disk for your purposes, or remove it from the instance entirely. + +After the free block device has been made unavailable for use by rook-ceph, you can restore the operator with `kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=1`, because the operator is needed for normal use. + +# Openebs localpv + +## Expanding Storage + +## Contracting Storage From 40998d9ef32c990c1a9fce3d2e020acba961125b Mon Sep 17 00:00:00 2001 From: Andrew Lavery Date: Mon, 10 Oct 2022 22:44:05 -0400 Subject: [PATCH 002/234] move openebs to top, include the simplest documentation --- .../install-with-kurl/reducing-storage.md | 80 ++++++++++--------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/reducing-storage.md b/src/markdown-pages/install-with-kurl/reducing-storage.md index 1fbcde55..fd502880 100644 --- a/src/markdown-pages/install-with-kurl/reducing-storage.md +++ b/src/markdown-pages/install-with-kurl/reducing-storage.md @@ -10,6 +10,13 @@ isAlpha: false It is relatively common to initially allocate less (or more) storage than is required for an installation in practice. Some storage providers allow this to be done easily, while others require far more effort. + +# OpenEBS LocalPV + +OpenEBS LocalPV consumes a host's storage at `/var/openebs/local`. +If you increase the amount of storage available here, OpenEBS will use it. +If it shrinks, OpenEBS will have less storage to use. + # Rook-Ceph ## Expanding Storage @@ -121,54 +128,53 @@ When completed, every PG should be active+clean, and none should be in any other There should be no progress bar at the bottom, and it will look similar to this: ``` -[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph status +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph status cluster: - id: bbda49de-24b8-4f28-9ea5-ee56b570a7c9 - health: HEALTH_WARN - 11 pool(s) have no replicas configured + id: be2c8681-a8a8-4f84-bf78-5afe2d88e48e + health: HEALTH_OK services: - mon: 1 daemons, quorum a (age 23h) - mgr: a(active, since 22h) - mds: rook-shared-fs:1 {0=rook-shared-fs-a=up:active} 1 up:standby-replay - osd: 2 osds: 2 up (since 23h), 1 in (since 86s) - rgw: 1 daemon active (rook.ceph.store.a) - - task status: - scrub status: - mds.rook-shared-fs-a: idle - mds.rook-shared-fs-b: idle + mon: 1 daemons, quorum a (age 112m) + mgr: a(active, since 111m) + mds: 1/1 daemons up, 1 hot standby + osd: 5 osds: 5 up (since 95m), 4 in (since 75m) + rgw: 1 daemon active (1 hosts, 1 zones) data: + volumes: 1/1 healthy pools: 11 pools, 177 pgs - objects: 1.43k objects, 3.9 GiB - usage: 5.9 GiB used, 194 GiB / 200 GiB avail + objects: 18.02k objects, 68 GiB + usage: 137 GiB used, 363 GiB / 500 GiB avail pgs: 177 active+clean io: - client: 5.0 KiB/s rd, 12 KiB/s wr, 5 op/s rd, 1 op/s wr + client: 136 MiB/s rd, 51 KiB/s wr, 580 op/s rd, 1 op/s wr ``` You can then run `ceph osd df` to ensure that the OSD to be removed is empty: ``` -[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph osd df -ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS - 0 ssd 0.09769 1.00000 100 GiB 4.9 GiB 3.9 GiB 625 KiB 1023 MiB 95 GiB 4.92 1.00 177 up - 1 ssd 0.09769 0 0 B 0 B 0 B 0 B 0 B 0 B 0 0 0 up - TOTAL 200 GiB 5.9 GiB 3.9 GiB 661 KiB 2.0 GiB 194 GiB 4.92 -MIN/MAX VAR: 1.00/1.00 STDDEV: 0 +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph osd df +ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS + 0 ssd 0.09769 1.00000 100 GiB 26 GiB 25 GiB 0 B 225 MiB 74 GiB 25.64 0.93 56 up + 1 ssd 0.09769 0 0 B 0 B 0 B 0 B 0 B 0 B 0 0 0 up + 2 ssd 0.19530 1.00000 200 GiB 43 GiB 43 GiB 0 B 423 MiB 157 GiB 21.51 0.78 121 up + 3 ssd 0.04880 1.00000 50 GiB 15 GiB 15 GiB 0 B 133 MiB 35 GiB 29.91 1.09 49 up + 4 ssd 0.14650 1.00000 150 GiB 54 GiB 53 GiB 0 B 470 MiB 96 GiB 35.77 1.30 128 up + TOTAL 500 GiB 137 GiB 136 GiB 0 B 1.2 GiB 363 GiB 27.46 +MIN/MAX VAR: 0.78/1.30 STDDEV: 5.34 ``` And additionally run `ceph osd safe-to-destroy osd.` to ensure that ceph really is done with the drive: ``` -[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph osd safe-to-remove osd.1 -OSD(s) 1 are safe to destroy without reducing data durability +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph osd safe-to-destroy osd.1 +OSD(s) 1 are safe to destroy without reducing data durability. ``` ### Disabling OSDs The next set of commands will need to be run with kubectl, so you can exit the rook-ceph-tools shell with `exit`. -First, scale the rook-ceph-operator to 0 replicas to keep it from undoing things. `kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=0`. Then, scale down the OSD you wish to remove with `kubectl -n rook-ceph scale deployment rook-ceph-osd- --replicas=0`. +First, scale the rook-ceph-operator to 0 replicas to keep it from undoing things. `kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=0`. +Then, scale down the OSD you wish to remove with `kubectl -n rook-ceph scale deployment rook-ceph-osd- --replicas=0`. After this, it's time to TEST AND MAKE SURE NOTHING IS BROKEN before actually deleting things for real. @@ -177,7 +183,7 @@ Can you make a support bundle through the web UI? Can you browse the files of a release? Does the application itself still function? -If any of the above answers are "no", you should scale the rook-ceph-operator and rook-ceph-osd deployments back to 1 replica. +If any of the above answers are "no", you should scale the rook-ceph-operator and rook-ceph-osd- deployments back to 1 replica. ### Destroying OSDs @@ -187,21 +193,19 @@ An OSD can be destroyed with `ceph osd purge 1 --yes-i-really-mean-it`. If you do not in fact "mean it", please do not run this. ``` -[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph osd purge 1 --yes-i-really-mean-it +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph osd purge 1 --yes-i-really-mean-it purged osd.1 -[root@rook-ceph-tools-7c878bf856-2nlcl /]# ceph osd df -ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS - 0 ssd 0.09769 1.00000 100 GiB 5.0 GiB 4.0 GiB 625 KiB 1023 MiB 95 GiB 4.97 1.00 177 up - TOTAL 100 GiB 5.0 GiB 4.0 GiB 625 KiB 1023 MiB 95 GiB 4.97 -MIN/MAX VAR: 1.00/1.00 STDDEV: 0 +[rook@rook-ceph-tools-6fb84b545-js4rg /]$ ceph osd df +ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS + 0 ssd 0.09769 1.00000 100 GiB 26 GiB 25 GiB 0 B 287 MiB 74 GiB 25.72 0.93 58 up + 2 ssd 0.19530 1.00000 200 GiB 43 GiB 43 GiB 0 B 500 MiB 157 GiB 21.63 0.78 119 up + 3 ssd 0.04880 1.00000 50 GiB 15 GiB 15 GiB 0 B 162 MiB 35 GiB 29.97 1.09 48 up + 4 ssd 0.14650 1.00000 150 GiB 54 GiB 53 GiB 0 B 573 MiB 96 GiB 35.99 1.30 127 up + TOTAL 500 GiB 138 GiB 136 GiB 0 B 1.5 GiB 362 GiB 27.59 +MIN/MAX VAR: 0.78/1.30 STDDEV: 5.37 ``` Once the OSD has been purged, you can `exit` the toolbox again and reformat the freed disk for your purposes, or remove it from the instance entirely. After the free block device has been made unavailable for use by rook-ceph, you can restore the operator with `kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=1`, because the operator is needed for normal use. -# Openebs localpv - -## Expanding Storage - -## Contracting Storage From 7dd18217c2fcc657b8e4805069c9c27854fa618e Mon Sep 17 00:00:00 2001 From: Andrew Lavery Date: Wed, 12 Oct 2022 14:08:02 -0400 Subject: [PATCH 003/234] address review comments filename change, use osd.1 consistently, callout more limitations --- ...educing-storage.md => changing-storage.md} | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) rename src/markdown-pages/install-with-kurl/{reducing-storage.md => changing-storage.md} (90%) diff --git a/src/markdown-pages/install-with-kurl/reducing-storage.md b/src/markdown-pages/install-with-kurl/changing-storage.md similarity index 90% rename from src/markdown-pages/install-with-kurl/reducing-storage.md rename to src/markdown-pages/install-with-kurl/changing-storage.md index fd502880..92f68eca 100644 --- a/src/markdown-pages/install-with-kurl/reducing-storage.md +++ b/src/markdown-pages/install-with-kurl/changing-storage.md @@ -10,6 +10,7 @@ isAlpha: false It is relatively common to initially allocate less (or more) storage than is required for an installation in practice. Some storage providers allow this to be done easily, while others require far more effort. +This guide is not for changing the size of an individual PVC, but instead the storage of the entire PVC provisioner. # OpenEBS LocalPV @@ -23,12 +24,17 @@ If it shrinks, OpenEBS will have less storage to use. Rook does not support expanding the storage of existing block devices, only adding new ones. However, a 100GB block device added to a node that already had a 100GB block device used by rook will be treated similarly to a freshly created instance with a single 200GB disk. +In general, all nodes in a cluster should have the same amount of storage, and lopsided amounts of storage can lead to inefficiencies. + +Rook will use all block devices attached to the host unless a `blockDeviceFilter` is set, explained [here](docs/add-ons/rook#block-storage). ## Contracting Storage Rook does not support shrinking a block device once it has been allocated to Rook. However, entire block devices can be removed from the cluster. -The procedure to do so is long and painful, but it does exist. +This procedure is not intended to be used on a regular basis, but can be very helpful if you have accidentally added a disk to Rook that was intended for something else. + +Removing all OSDs from a node will fail if there would be less than three nodes with sufficient storage for your usage remaining. ### Identifying OSDs The first step is to determine what OSD number corresponds to the block device you wish to be freed up. @@ -57,18 +63,19 @@ ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL MIN/MAX VAR: 0.76/1.44 STDDEV: 4.05 ``` If this is enough to identify your disk already, fantastic! -For instance, a 200GB disk on `laverya-rook-main` would be osd.2 above. +For instance, a 150GB disk on `laverya-rook-worker` would be osd.4 above. +However, a 100GB disk on `laverya-rook-main` could be either osd.0 or osd.1. If this is not enough - for instance if you have multiple disks of the same size on the same instance - you can use kubectl from the host. You can get the list of rook-ceph OSDs with `kubectl get pods -n rook-ceph -l ceph_daemon_type=osd`, and then check each one by searching the describe output for `ROOK_BLOCK_PATH`. ``` -kubectl describe pod -n rook-ceph rook-ceph-osd-0-6cf7c5cb7-z7c8p | grep ROOK_BLOCK_PATH +kubectl describe pod -n rook-ceph rook-ceph-osd-1-6cf7c5cb7-z7c8p | grep ROOK_BLOCK_PATH DEVICE="$ROOK_BLOCK_PATH" - ROOK_BLOCK_PATH: /dev/sdb - ROOK_BLOCK_PATH: /dev/sdb + ROOK_BLOCK_PATH: /dev/sdc + ROOK_BLOCK_PATH: /dev/sdc ``` -From this we can tell that the OSD using /dev/sdb is OSD 0. +From this we can tell that the OSD using /dev/sdc is osd.1. ### Draining OSDs Once this is known, there are many commands to be run within the rook-ceph-tools deployment. From 13eabc15027eb88927a0c3961742b592d8291bb0 Mon Sep 17 00:00:00 2001 From: Andrew Lavery Date: Wed, 12 Oct 2022 14:37:03 -0400 Subject: [PATCH 004/234] Apply suggestions from code review Co-authored-by: Ethan Mosbaugh --- src/markdown-pages/install-with-kurl/changing-storage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/changing-storage.md b/src/markdown-pages/install-with-kurl/changing-storage.md index 92f68eca..a631d520 100644 --- a/src/markdown-pages/install-with-kurl/changing-storage.md +++ b/src/markdown-pages/install-with-kurl/changing-storage.md @@ -10,7 +10,7 @@ isAlpha: false It is relatively common to initially allocate less (or more) storage than is required for an installation in practice. Some storage providers allow this to be done easily, while others require far more effort. -This guide is not for changing the size of an individual PVC, but instead the storage of the entire PVC provisioner. +This guide is not for changing the size of an individual PVC, but instead the storage of the entire PV provisioner. # OpenEBS LocalPV @@ -26,7 +26,7 @@ Rook does not support expanding the storage of existing block devices, only addi However, a 100GB block device added to a node that already had a 100GB block device used by rook will be treated similarly to a freshly created instance with a single 200GB disk. In general, all nodes in a cluster should have the same amount of storage, and lopsided amounts of storage can lead to inefficiencies. -Rook will use all block devices attached to the host unless a `blockDeviceFilter` is set, explained [here](docs/add-ons/rook#block-storage). +Rook will use all block devices attached to the host unless a `blockDeviceFilter` is set, explained [here](/docs/add-ons/rook#block-storage). ## Contracting Storage From 5cb78bfa1e7336c5cf979562811a26eaf102714a Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Wed, 12 Oct 2022 13:59:24 -0700 Subject: [PATCH 005/234] Netlify deploy workflow (#886) * Netlify deploy workflow * Update releasing documentation * Production netlify site id --- .github/workflows/deploy.yaml | 64 ++++++++++++++++++++++++++++++++++ .github/workflows/preview.yaml | 33 ++++++++++++++++++ .github/workflows/test.yaml | 2 +- CODEOWNERS | 16 +++++++++ README.md | 13 +++---- 5 files changed, 119 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/deploy.yaml create mode 100644 .github/workflows/preview.yaml create mode 100644 CODEOWNERS diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 00000000..674698ac --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,64 @@ +name: deploy + +on: + push: + branches: + - main + +jobs: + + deploy-staging-netlify: + environment: + name: staging + url: https://staging.kurl.sh + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: yarn + + - name: build + run: make deps build-staging + + - name: release + uses: nwtgck/actions-netlify@v1.2 + with: + publish-dir: public + production-branch: main + github-token: ${{ secrets.GITHUB_TOKEN }} + deploy-message: "Deploy staging.kurl.sh from GitHub Actions" + github-deployment-environment: staging + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: 9cc8b96a-2c23-4f71-bb0f-cbdc19ccbf76 + timeout-minutes: 1 + + deploy-production-netlify: + environment: + name: production + url: https://kurl.sh + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: yarn + + - name: build + run: make deps build-production + + - name: release + uses: nwtgck/actions-netlify@v1.2 + with: + publish-dir: public + production-branch: main + github-token: ${{ secrets.GITHUB_TOKEN }} + deploy-message: "Deploy kurl.sh from GitHub Actions" + github-deployment-environment: production + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: 7e8d8070-273a-45a3-9c84-885a52d8ab69 + timeout-minutes: 1 diff --git a/.github/workflows/preview.yaml b/.github/workflows/preview.yaml new file mode 100644 index 00000000..c52262fb --- /dev/null +++ b/.github/workflows/preview.yaml @@ -0,0 +1,33 @@ +name: preview + +on: + pull_request: + branches: + - main + +jobs: + + deploy-staging-netlify: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: yarn + + - name: build + run: make deps build-staging + + - name: release + uses: nwtgck/actions-netlify@v1.2 + with: + publish-dir: public + production-branch: main + github-token: ${{ secrets.GITHUB_TOKEN }} + deploy-message: "Deploy preview staging.kurl.sh from GitHub Actions" + github-deployment-environment: preview + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: 9cc8b96a-2c23-4f71-bb0f-cbdc19ccbf76 + timeout-minutes: 1 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a6a5f21d..4bbf4adb 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -11,5 +11,5 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 16 - - run: npm install -g yarn + cache: yarn - run: make deps test diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..007af1af --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,16 @@ +# Lines starting with '#' are comments. +# Each line is a file pattern followed by one or more owners. + +# More details are here: https://help.github.com/articles/about-codeowners/ + +# The '*' pattern is global owners. + +# Order is important. The last matching pattern has the most precedence. +# The folders are ordered as follows: + +# In each subsection folders are ordered first by depth, then alphabetically. +# This should make it easy to add new rules without breaking existing ones. + +## RULES + +* @replicatedhq/embedded-kubernetes diff --git a/README.md b/README.md index 25755d93..27a8bf49 100644 --- a/README.md +++ b/README.md @@ -24,11 +24,8 @@ Before you are able to run this locally you need to have NodeJS above v.8.12. ## Releasing the documentation -The kurl.sh website is built off of the `release` branch. Pull requests are first created and reviewed so that they can be merged into the `main` branch. Once the needed documentation updates are in `main`, you can create a pull request to merge them into `release`. - -To merge `main` into `release`: -1. Click the [**Pull requests** tab](https://github.com/replicatedhq/kurl.sh/pulls) and click **New pull request**. -1. Change the base branch to `release`. The compare branch should be set to `main`. -1. Click **Create pull request**. -1. Wait for all checks to pass. View the deploy preview to ensure that the changes are correct. -1. Click **Merge pull request**. +The [deploy workflow](https://github.com/replicatedhq/kurl.sh/actions/workflows/deploy.yaml) is responsible for releasing to both staging and production. + +Staging will be released on merge to main. + +Releasing to the production environment requires review from the @replicatedhq/embedded-kubernetes team. From ece74d5ec656560e3eb99ff23cfc5047a9b32dab Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Fri, 14 Oct 2022 15:51:24 +0000 Subject: [PATCH 006/234] Remove Add-on Author page --- src/markdown-pages/add-on-author/index.md | 63 ----------------------- 1 file changed, 63 deletions(-) delete mode 100644 src/markdown-pages/add-on-author/index.md diff --git a/src/markdown-pages/add-on-author/index.md b/src/markdown-pages/add-on-author/index.md deleted file mode 100644 index 1628eefb..00000000 --- a/src/markdown-pages/add-on-author/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -path: "/docs/add-on-author/" -date: "2019-10-15" -linktitle: "Overview" -weight: 40 -title: "Contributing an Add-On" ---- - -## Structure - -New add-ons should be added to a source directory following the format `/addons//`. -That directory must have at least two files: `install.sh` and `Manifest`. - -The Manifest file specifies a list of images required for the add-on. -These will be pulled during CI and saved to the directory `/addons///images/`. - -The install.sh script must define a function named `` that will perform the install. -For example, `/addons/weave/2.5.2/install.sh` defines the function named `weave`. - -Most add-ons include yaml files that will be applied to the cluster. -These should be copied to the directory `kustomize/` and applied with `kubectl apply -k` rather than applied directly with `kubectl apply -f`. -This will allow users to easily review all applied yaml, add their own patches and re-apply after the script completes. - -All files and directories in the add-on's source directory will be included in the package built for the add-on. -The package will be built and uploaded to `s3://kurl-sh/dist/-.tar.gz` during CI. -It can be downloaded directly from S3 or by redirect from `https://kurl.sh/dist/-.tar.gz`. -The built package will include the images from the Manifest saved as tar archives. - -The install.sh script may also define the functions `_pre_init` and `_join`. -The pre_init function will be called prior to initializing the Kubernetes cluster. -This may be used to modify the configuration that will be passed to `kubeadm init`. -The join function will be called on remote nodes before they join the cluster and is useful for host configuration tasks such as loading a kernel module. - -## Runtime - -For online installs, the add-on package will be downloaded and extracted at runtime. -For airgap installs, the add-on package will already be included in the installer bundle. - -The [add-on](https://github.com/replicatedhq/kurl/blob/master/scripts/common/addon.sh) function in kURL will first load all images from the add-on's `images/` directory and create the directory `/kustomize/`. -It will then dynamically source the `install.sh` script and execute the function named ``. - -## Developing Add-ons - -The `DIR` env var will be defined to the install root. -Any yaml that is ready to be applied unmodified should be copied from the add-on directory to the kustomize directory. -``` -cp "$DIR/addons/weave/2.5.2/kustomization.yaml" "$DIR/kustomize/weave/kustomization.yaml" -``` - -The [`insert_resources`](https://github.com/replicatedhq/kurl/blob/5e6c9549ad6410df1f385444b83eabaf42a7e244/scripts/common/yaml.sh#L29) function can be used to add an item to the resources object of a kustomization.yaml: -``` -insert_resources "$DIR/kustomize/weave/kustomization.yaml" secret.yaml -``` - -The [`insert_patches_strategic_merge`](https://github.com/replicatedhq/kurl/blob/5e6c9549ad6410df1f385444b83eabaf42a7e244/scripts/common/yaml.sh#L18) function can be used to add an item to the `patchesStrategicMerge` object of a kustomization.yaml: -``` -insert_patches_strategic_merge "$DIR/kustomize/weave/kustomization.yaml" ip-alloc-range.yaml -``` - -The [`render_yaml_file`](https://github.com/replicatedhq/kurl/blob/5e6c9549ad6410df1f385444b83eabaf42a7e244/scripts/common/yaml.sh#L14) function can be used to substitute env vars in a yaml file at runtime: -``` -render_yaml_file "$DIR/addons/weave/2.5.2/tmpl-secret.yaml" > "$DIR/kustomize/weave/secret.yaml" -``` From 80538aabe2f406afb29a81754d6ca9794c2e92bb Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Mon, 17 Oct 2022 16:07:06 -0600 Subject: [PATCH 007/234] Adds new topic for Managing Nodes --- .../install-with-kurl/adding-nodes.md | 82 +----- .../install-with-kurl/dedicated-primary.md | 2 +- src/markdown-pages/install-with-kurl/ipv6.md | 26 +- .../install-with-kurl/managing-nodes.md | 263 ++++++++++++++++++ .../install-with-kurl/migrating-csi.md | 2 +- .../install-with-kurl/migrating.md | 2 +- .../removing-object-storage.md | 2 +- 7 files changed, 288 insertions(+), 91 deletions(-) create mode 100644 src/markdown-pages/install-with-kurl/managing-nodes.md diff --git a/src/markdown-pages/install-with-kurl/adding-nodes.md b/src/markdown-pages/install-with-kurl/adding-nodes.md index ae1690d5..00a328b9 100644 --- a/src/markdown-pages/install-with-kurl/adding-nodes.md +++ b/src/markdown-pages/install-with-kurl/adding-nodes.md @@ -5,89 +5,23 @@ weight: 19 linktitle: "Adding Nodes" title: "Adding Nodes" --- + +This topic describes how to add nodes to kURL clusters. +For information about managing nodes on kURL clusters, including removing, rebooting, and resetting nodes, see [Managing Nodes](/docs/install-with-kurl/managing-nodes). + +## About Adding Nodes At the end of the install process, the install script will print out commands for adding nodes. Commands to add new secondary nodes last 24 hours, and commands to add additional primary nodes in HA mode last for 2 hours. To get new commands, run `tasks.sh join_token` with the relevant parameters (`airgap` and `ha`) on a primary node. For instance, on an airgapped HA installation you would run `cat ./tasks.sh | sudo bash -s join_token ha airgap`, while on a single-primary online installation you would run `curl -sSL https://kurl.sh/latest/tasks.sh | sudo bash -s join_token`. -## Standard Installations +### Standard Installations The install script will print the command that can be run on **secondary** nodes to join them to your new cluster. ![add-nodes](/add-nodes.png) -## HA Installations -For HA clusters, the install script will print out separate commands for joining **secondaries** and joining additional **primary** nodes. +### HA Installations +For HA clusters, the install script will print out separate commands for joining **secondaries** and joining additional **primary** nodes. See [Highly Available K8s](/docs/install-with-kurl/#highly-available-k8s-ha) for HA install details. ![add-nodes-ha](/add-nodes-ha.png) - -## Resetting a Node - -It is possible to reset a node using the following script: - -*NOTE: The provided script is best effort and is not guaranteed to fully reset the node.* - -```bash -curl -sSL https://kurl.sh/latest/tasks.sh | sudo bash -s reset -``` - -Or for airgap: - -```bash -cat ./tasks.sh | sudo bash -s reset -``` - -## Rebooting a Node - -To safely reboot a node, use the following steps: - -*NOTE: In order to safely reboot a node it is required to have the [EKCO add-on](/docs/add-ons/ekco) installed.* - -1. Run `/opt/ekco/shutdown.sh` on the node. -1. Reboot the node - -## Removing a Node - -It is possible to remove a node from a multi-node cluster. -In order to safely remove a node it is required to have the [EKCO add-on](/docs/add-ons/ekco) installed. -When removing a node it is always safest to add back a node or check the health of the cluster before removing an additional node. - -When removing a node it is safest to use the following steps: - -1. Run `/opt/ekco/shutdown.sh` on the node. -1. Power down the node or run the [reset script](/docs/install-with-kurl/adding-nodes#resetting-a-node) -1. Run `ekco-purge-node [node name]` on another primary. - -### Etcd Cluster Health - -When removing a primary node extra precautions must be taken to maintain etcd quorom. - -First, there must always be at least one primary node. - -Once scaled up to three primary nodes, a minimum of three primaries must be maintained to maintain quorom. -If the cluster is scaled down to two primaries, a third primary should be added back to prevent loss of quorom. - -### Ceph Cluster Health - -When using the [Rook add-on](/docs/add-ons/rook) extra precautions must be taken to avoid data loss. - -On a one or two node cluster, the size of the Ceph cluster will always be one. - -Once the cluster is scaled up to three nodes, the Ceph cluster must be maintained at three nodes. -If a Ceph Object Storage Daemon (OSD) is scheduled on a node that is removed, Ceph cluster health must be regained before removing any additional nodes. -Once the node is removed, Ceph will begin replicating its data to OSDs on remaining nodes. -If the cluster is scaled below three, a new node must be added to regain cluster health. - -It is possible to check the Ceph cluster health by running the command `ceph status` in the `rook-ceph-tools` or `rook-ceph-operator` Pod in the `rook-ceph` namespace for Rook version 1.0.x or 1.4.x respectively. - -**Rook 1.4.x** - -``` -kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph status -``` - -**Rook 1.0.x** - -``` -kubectl -n rook-ceph exec deploy/rook-ceph-operator -- ceph status -``` diff --git a/src/markdown-pages/install-with-kurl/dedicated-primary.md b/src/markdown-pages/install-with-kurl/dedicated-primary.md index 0d7a8ec9..57443d43 100644 --- a/src/markdown-pages/install-with-kurl/dedicated-primary.md +++ b/src/markdown-pages/install-with-kurl/dedicated-primary.md @@ -1,7 +1,7 @@ --- path: "/docs/install-with-kurl/dedicated-primary" date: "2021-05-14" -weight: 20 +weight: 21 linktitle: "Dedicated Primary" title: "Dedicated Primary" --- diff --git a/src/markdown-pages/install-with-kurl/ipv6.md b/src/markdown-pages/install-with-kurl/ipv6.md index a0e1cacc..39403420 100644 --- a/src/markdown-pages/install-with-kurl/ipv6.md +++ b/src/markdown-pages/install-with-kurl/ipv6.md @@ -1,7 +1,7 @@ --- path: "/docs/install-with-kurl/ipv6" date: "2021-12-14" -weight: 24 +weight: 25 linktitle: "IPv6" title: "IPv6" isAlpha: true @@ -17,30 +17,30 @@ This example shows a valid spec for ipv6. ``` apiVersion: "cluster.kurl.sh/v1beta1" kind: "Installer" -metadata: +metadata: name: "ipv6" -spec: +spec: kurl: ipv6: true - kubernetes: + kubernetes: version: "1.23.x" kotsadm: version: "latest" - antrea: + antrea: version: "latest" - contour: + contour: version: "1.20.x" - prometheus: + prometheus: version: "0.53.x" - registry: + registry: version: "2.7.x" - containerd: + containerd: version: "1.4.x" - ekco: + ekco: version: "latest" - minio: + minio: version: "2020-01-25T02-50-51Z" - longhorn: + longhorn: version: "1.2.x" ``` @@ -91,7 +91,7 @@ The kURL installer includes a networking check after antrea is installed. If this fails, check the logs for the antrea-agent daemonset in the kube-system namespace. An error like the following indicates the ip6_tables kernel module is not available: ``` -E1210 19:44:12.494994 1 route_linux.go:119] Failed to initialize iptables: error checking if chain ANTREA-PREROUTING exists in table raw: running [/usr/sbin/ip6tables -t raw -S ANTREA-PREROUTING 1 +E1210 19:44:12.494994 1 route_linux.go:119] Failed to initialize iptables: error checking if chain ANTREA-PREROUTING exists in table raw: running [/usr/sbin/ip6tables -t raw -S ANTREA-PREROUTING 1 --wait]: exit status 3: modprobe: FATAL: Module ip6_tables not found in directory /lib/modules/4.18.0-193.19.1.el8_2.x86_64 ip6tables v1.8.4 (legacy): can't initialize ip6tables table `raw': Table does not exist (do you need to insmod?) Perhaps ip6tables or your kernel needs to be upgraded. diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md new file mode 100644 index 00000000..a71c8dfa --- /dev/null +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -0,0 +1,263 @@ +--- +path: "/docs/install-with-kurl/managing-nodes" +date: "2022-10-14" +weight: 20 +linktitle: "Managing Nodes" +title: "Managing Nodes" +--- + +This topic describes how to manage nodes on kURL clusters. +It includes procedures for how to safely reset, reboot, and remove nodes when performing maintenance tasks. + +## ECKO Add-On Prerequisite + +Before you manage a node on a kURL cluster, you must install the Embedded kURL Cluster Operator (EKCO) add-on on the cluster. +The EKCO add-on is a utility tool used to perform maintenance operations on a kURL cluster. + +For information on how to install the EKCO add-on to a kURL cluster, see [EKCO Add-on](/docs/add-ons/ekco). + +## Reset a Node + +Resetting a node is the process of attempting to remove all Kubernetes packages and host files from the node. + +Resetting a node can be useful if you are creating and testing a kURL specification in a non-production environment. +Some larger changes to a kURL specification cannot be deployed for testing by rerunning the kURL installation script on an existing node. +In this case, you can attempt to reset the node so that you can reinstall kURL to test the change to the kURL specification. + +_**Warning**_: Do not attempt to reset a node on a cluster in a production environment. +Attempting to reset a node can permanently damage the cluster, which makes any data from the cluster irretrievable. +Reset a node on a cluster only if you are able to delete the host VM and provision a new VM if the reset script does not successfully complete. + +To reset a node on a cluster managed by kURL: + +1. Run the kURL reset script on a VM that you are able to delete if the script is unsuccessful. +The kURL reset script first runs the ECKO shutdown script to cordon the node. Then, it attempts to remove all Kubernetes packages and host files from the node. + + * **Online**: + + ```bash + curl -sSL https://kurl.sh/latest/tasks.sh | sudo bash -s reset + ``` + + * **Air Gapped**: + + ```bash + cat ./tasks.sh | sudo bash -s reset + ``` +1. If the reset does not complete, delete the host VM and provision a new VM. + + The reset script might not complete successfully if the removal of the Kubernetes packages and host files from the node also damages the cluster itself. + When the cluster is damaged, the tools used by the reset script, such as the kubectl command-line tool, can no longer communicate with the cluster and the script cannot complete. + +## Reboot a Node + +Rebooting a node is useful when you are performing maintenance on the operating system (OS) level of the node. +For example, after you perform a kernel update, you can reboot the node to apply the change to the OS. + +To reboot a node on a cluster managed by kURL: + +1. Run the EKCO shutdown script on the node: + + ``` + /opt/ekco/shutdown.sh + ``` + + The shutdown script deletes any Pods on the node that mount volumes provisioned by Rook. It also cordons the node, so that the node is marked as unschedulable and kURL does not start any new containers on the node. For more information, see [EKCO Add-on](/docs/add-ons/ekco). + +1. Reboot the node. + +## Remove a Node from Rook Ceph Clusters + +As part of performing maintenance on a multi-node cluster managed by kURL, it is often required to remove a node from the cluster and replicate its data to a new node. For example, you might need to remove one or more nodes during hardware maintenance. + +This section describes how to safely remove nodes from a kURL cluster that uses the Rook add-on for Rook Ceph storage. For more information about the Rook add-on, see [Rook Add-on](/docs/add-ons/rook). + +For information about how to remove a node from a cluster that does not use Rook Ceph, see [kubectl drain](https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/) in the Kubernetes documentation. + +### Rook Ceph and etcd Node Removal Requirements + +Review the following requirements and considerations before you remove one or more nodes from Rook Ceph and etcd clusters: + +* **etcd cluster health**: To remove a primary node from etcd clusters, you must meet the following requirements to maintain etcd quorum: + * You must have at least one primary node. + * If you scale the etcd cluster to three primary nodes, you must then maintain a minimum of three primary nodes to maintain quorum. +* **Rook Ceph cluster health**: When you scale a Ceph Storage Cluster to three or more Ceph Object Storage Daemons (OSDs), such as when you add additional manager or worker nodes to the cluster, the Ceph Storage Cluster can no longer have fewer than three OSDs. If you reduce the number of OSDs to less than three in this case, then the Ceph Storage Cluster loses quorum. +* **Add a node before removing a node**: To remove and replace a node, it is recommended that you add a new node before removing the node. +For example, to remove one node in a three-node cluster, first add a new node to scale the cluster to four nodes. Then, remove the desired node to scale the cluster back down to three nodes. +* **Remove one node at a time**: If you need to remove multiple nodes from a cluster, remove one node at a time. + +### Rook Ceph Cluster Prerequisites + +Complete the following prerequisites before you remove one or more nodes from a Rook Ceph cluster: + +* (Recommended) Upgrade Rook Ceph to v1.4 or later. + +* In the kURL specification, set `isBlockStorageEnabled` to `true`. This is the default for Rook Ceph v1.4 and later. + +* Ensure that you can access the ceph CLI from a Pod that can communicate with the Ceph Storage Cluster. To access the ceph CLI, you can do one of the following: + + * (Recommended) Use the `rook-ceph-tools` Pod to access the ceph CLI. + Use the same version of the Rook toolbox as the version of Rook Ceph that is installed in the cluster. + By default, the `rook-ceph-tools` Pod is included on kURL clusters with Rook Ceph v1.4 and later. + For more information about `rook-ceph-tools` Pods, see [Rook Toolbox](https://rook.io/docs/rook/v1.5/ceph-toolbox.html) in the Rook Ceph documentation. + + * Use `kubectl exec` to enter the `rook-ceph-operator` Pod, where the ceph CLI is available. + +* (Optional) Open an interactive shell in the `rook-ceph-tools` or `rook-ceph-operator` Pod to run multiple ceph CLI commands in a row. For example: + + ``` + kubectl exec -it -n rook-ceph deployment/rook-ceph-tools -- bash + ``` + + If you do not create an interactive shell, precede each ceph CLI command in the `rook-ceph-tools` or `rook-ceph-operator` Pod with `kubectl exec`. For example: + + ``` + kubectl exec -it -n rook-ceph deployment/rook-ceph-tools -- ceph status + ``` + +* Verify that Ceph is in a healthy state by running one of the following `ceph status` commands in the `rook-ceph-tools` Pod in the `rook-ceph` namespace: + + * **Rook Ceph v1.4.0 or later**: + + ``` + kubectl -n rook-ceph exec deployment/rook-ceph-tools -- ceph status + ``` + * **Rook Ceph v1.0.0 or later**: + + ``` + kubectl -n rook-ceph exec deployment/rook-ceph-operator -- ceph status + ``` + + The output of the command shows `health: HEALTH_OK` if Ceph is in a healthy state. + +### (Recommended) Manually Rebalance Ceph and Remove a Node + +This procedure ensures that the data held in Rook Ceph is safely replicated to a new node before you remove a node. +Rebalancing your data is critical for preventing data loss that can occur when removing a node if the data stored in Ceph has not been properly replicated. + +To manually remove a node, you first use the Ceph CLI to reweight the Ceph OSD to `0` on the node that you want to remove and wait for Ceph to rebalance the data across OSDs. +Then, you can remove the OSD from the node, and finally remove the node. + +**Note**: The commands in this procedure assume that you created an interactive shell in the `rook-ceph-tools` or `rook-ceph-operator` Pod. +For more information, see [Rook Ceph Cluster Prerequisites](#rook-ceph-cluster-prerequisites) above. + +To manually rebalance data and remove a node: + +1. Review the [Rook Ceph and etcd Node Removal Requirements](#rook-ceph-and-etcd-node-removal-requirements) above. + +1. Complete the [Rook Ceph Cluster Prerequisites](#rook-ceph-cluster-prerequisites) above. + +1. Add the same number of new nodes to the cluster that you intended to remove. +For example, if you intend to remove a total of two nodes, add two new nodes. + + Ceph rebalances the existing placement groups to the new OSDs. + +1. After Ceph completes rebalancing, run the following command to verify that Ceph is in a healthy state: + + ``` + ceph status + ``` + Replace `OSD_NAME` with the name of the Ceph OSD on the given node. + +1. Run the following command to reweight the OSD to `0` on the first node that you intend to remove: + + ``` + ceph osd reweight OSD_ID 0 + ``` + Replace `OSD_ID` with the Ceph OSD on the node that you intend to remove. For example, `ceph osd reweight 1 0`. + + Ceph rebalances the placement groups off the OSD that you specify in the `ceph osd reweight` command. + To view progress, run `ceph status`. + +1. After the `ceph osd reweight` command completes, run the following command to verify that Ceph is in a healthy state: + + ``` + ceph status + ``` + +1. On the first node that you intend to remove, run the following command to mark the OSD as `down`: + + ``` + ceph osd down OSD_NAME + ``` + +1. On the first node that you intend to remove, run the following kubectl command to scale the OSD deployments to 0 replicas: + + ``` + kubectl scale deployment -n rook-ceph rook-ceph-osd-1 --replicas 0 + ``` + +1. Run the following command to ensure that the OSD is safe to remove: + + ``` + ceph osd safe-to-destroy osd.OSD_ID + ``` + Replace `OSD_ID` with the ID of the OSD. For example, `ceph osd safe-to-destroy osd.1`. + + **Example output**: + + ``` + OSD(s) 1 are safe to destroy without reducing data durability. + ``` + +1. Remove the node. + + After the node is removed, Ceph replicates its data to OSDs on remaining nodes. + If a Ceph OSD was scheduled on the node that you removed, verify that Ceph is in a healthy state. + +Repeat the steps in this procedure for any remaining nodes that you want to remove. Verify that Ceph is in a healthy state before you remove any additional nodes. + +### Remove Nodes with ECKO + +You can use EKCO add-on scripts to programmatically cordon and purge a node so that you can then remove the node from the cluster. + +_**Warnings**_: Consider the following warnings about data loss before you proceed with this procedure: + * **Ceph health**: The EKCO scripts in this procedure provide a quick method for cordoning a node and purging Ceph OSDs so that you can remove the node. This procedure is _not_ recommended unless you are able to confirm that Ceph is in a healthy state. If Ceph is not in a healthy state before you remove a node, you risk data loss. + + To verify that Ceph is in a healthy state, run the following `ceph status` command in the `rook-ceph-tools` or `rook-ceph-operator` Pod in the `rook-ceph` namespace for Rook Ceph v1.4 or later: + + ``` + kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph status + ``` + + * **Data replication**: A common Ceph configuration is three data replicas across three Ceph OSDs. + It is possible for Ceph to report a healthy status without data being replicated properly across all OSDs. + For example, in a single-node cluster, there are not multiple machines where Ceph can replicate data. + In this case, even if Ceph reports healthy, removing a node results in data loss because the data was not properly replicated across multiple OSDs on multiple machines. + + If you are not certain that Ceph data replication was configured and completed properly, or if Ceph is not in a healthy state, it is recommended that you first rebalance the data off the node that you intend to remove to avoid data loss. + For more information, see [(Recommended) Manually Rebalance Ceph and Remove a Node](#recommended-manually-rebalance-ceph-and-remove-a-node) above. + +To use the EKCO add-on to remove a node: + +1. Review the [Rook Ceph and etcd Node Removal Requirements](#rook-ceph-and-etcd-node-removal-requirements) above. + +1. Complete the [Rook Ceph Cluster Prerequisites](#rook-ceph-cluster-prerequisites) above. + +1. Verify that Ceph is in a healthy state before you proceed. Run the following `ceph status` command in the `rook-ceph-tools` or `rook-ceph-operator` Pod in the `rook-ceph` namespace for Rook Ceph v1.4 or later: + + ``` + kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph status + ``` + +1. Run the EKCO shutdown script on the node: + + ``` + /opt/ekco/shutdown.sh + ``` + + The shutdown script deletes any Pods on the node that mount volumes provisioned by Rook. + It also cordons the node, so that the node is marked as unschedulable and kURL does not start any new containers on the node. For more information, see [EKCO Add-on](/docs/add-ons/ekco). + +1. Power down the node. + +1. On another primary node in the cluster, run the EKCO purge script for the node that you intend to remove: + + ``` + ekco-purge-node NODE_NAME + ``` + Replace `NODE_NAME` with the name of the node that you powered down in the previous step. + + The EKCO purge script For information about the EKCO purge script, see [Purge Nodes](/docs/add-ons/ekco#purge-nodes) in _EKCO Add-on_. + +1. Remove the node from the cluster. diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index d49ba1a7..8313b3d7 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -1,7 +1,7 @@ --- path: "/docs/install-with-kurl/migrating-csi" date: "2021-06-30" -weight: 22 +weight: 23 linktitle: "Migrating CSI" title: "Migrating to Change kURL CSI Add-Ons" --- diff --git a/src/markdown-pages/install-with-kurl/migrating.md b/src/markdown-pages/install-with-kurl/migrating.md index d6c66e00..3aac6f66 100644 --- a/src/markdown-pages/install-with-kurl/migrating.md +++ b/src/markdown-pages/install-with-kurl/migrating.md @@ -1,7 +1,7 @@ --- path: "/docs/install-with-kurl/migrating" date: "2021-06-30" -weight: 21 +weight: 22 linktitle: "Migrating" title: "Migrating to Change kURL Add-Ons" --- diff --git a/src/markdown-pages/install-with-kurl/removing-object-storage.md b/src/markdown-pages/install-with-kurl/removing-object-storage.md index 20b9e3b3..67768a0a 100644 --- a/src/markdown-pages/install-with-kurl/removing-object-storage.md +++ b/src/markdown-pages/install-with-kurl/removing-object-storage.md @@ -1,7 +1,7 @@ --- path: "/docs/install-with-kurl/removing-object-storage" date: "2021-12-17" -weight: 23 +weight: 24 linktitle: "Removing Object Storage" title: "Removing Object Storage Dependencies" --- From ad20c6d13caecb12717a33ba8f7571d75dc272c3 Mon Sep 17 00:00:00 2001 From: Andrew Lavery Date: Mon, 17 Oct 2022 22:22:32 -0400 Subject: [PATCH 008/234] show 'Changing Storage' after 'Removing Object Storage' --- src/markdown-pages/install-with-kurl/changing-storage.md | 2 +- src/markdown-pages/install-with-kurl/cis-compliance.md | 2 +- src/markdown-pages/install-with-kurl/ipv6.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/changing-storage.md b/src/markdown-pages/install-with-kurl/changing-storage.md index a631d520..757e1da0 100644 --- a/src/markdown-pages/install-with-kurl/changing-storage.md +++ b/src/markdown-pages/install-with-kurl/changing-storage.md @@ -1,7 +1,7 @@ --- path: "/docs/install-with-kurl/changing-storage" date: "2022-10-10" -weight: 27 +weight: 25 linktitle: "Changing Storage" title: "Changing Storage" isAlpha: false diff --git a/src/markdown-pages/install-with-kurl/cis-compliance.md b/src/markdown-pages/install-with-kurl/cis-compliance.md index 3ded5678..66f39fa5 100644 --- a/src/markdown-pages/install-with-kurl/cis-compliance.md +++ b/src/markdown-pages/install-with-kurl/cis-compliance.md @@ -1,7 +1,7 @@ --- path: "/docs/install-with-kurl/cis-compliance" date: "2022-03-23" -weight: 26 +weight: 27 linktitle: "CIS Compliance" title: "CIS Compliance" isAlpha: false diff --git a/src/markdown-pages/install-with-kurl/ipv6.md b/src/markdown-pages/install-with-kurl/ipv6.md index 39403420..72765f03 100644 --- a/src/markdown-pages/install-with-kurl/ipv6.md +++ b/src/markdown-pages/install-with-kurl/ipv6.md @@ -1,7 +1,7 @@ --- path: "/docs/install-with-kurl/ipv6" date: "2021-12-14" -weight: 25 +weight: 26 linktitle: "IPv6" title: "IPv6" isAlpha: true From 1438c781a80fb2c4c222440e51d1c3f164871752 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Tue, 18 Oct 2022 08:32:34 +0000 Subject: [PATCH 009/234] feat: show installer object lint error this commit slightly changes the interface to show errors returned by the linter. only the first error is presented on the screen, future work will be made to show all returned errors. --- src/components/Kurlsh.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/Kurlsh.js b/src/components/Kurlsh.js index 1b0172ad..f9100e9d 100644 --- a/src/components/Kurlsh.js +++ b/src/components/Kurlsh.js @@ -852,7 +852,11 @@ class Kurlsh extends React.Component { this.setState({ installerSha }); } else { const body = await response.json(); - this.setState({ installerErrMsg: body.error.message || "something went wrong" }); + if (Array.isArray(body)) { + this.setState({ installerErrMsg: body[0].message || "something went wrong" }); + } else { + this.setState({ installerErrMsg: body.error.message || "something went wrong" }); + } } } catch (err) { this.setState({ installerErrMsg: `${err}` }); From 0c89c334b105ff1d87dd20fe305d4bdc983f2cd0 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Mon, 5 Sep 2022 17:07:40 +0200 Subject: [PATCH 010/234] Small fixes Follow some proposed fixes for things I have noticed while reading the documentation. --- src/markdown-pages/install-with-kurl/index.md | 6 +++--- src/markdown-pages/install-with-kurl/system-requirements.md | 2 +- src/markdown-pages/introduction/what-kurl-does.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/index.md b/src/markdown-pages/install-with-kurl/index.md index 59d2512b..51d34d36 100644 --- a/src/markdown-pages/install-with-kurl/index.md +++ b/src/markdown-pages/install-with-kurl/index.md @@ -164,14 +164,14 @@ install, the install time options can be easily viewed via kubectl. For example, if the install was done using the following command: ``` -curl https://kurl.sh/latest +curl https://kurl.sh/latest | sudo bash ``` Once the install is complete you can view the current state of the cluster and every option that was changed in the kURL YAML spec with the following command. ``` -kubectl get installer latest +kubectl get installer latest -n default ``` ## Modifying an Install Using a YAML Patch File at Runtime. @@ -211,7 +211,7 @@ Once the install is finished, the merged YAML that represents the install can be viewed by running the following command to show the current state of the cluster. ``` -kubectl get installer merged +kubectl get installer merged -n default ``` ## Select Examples of Using a Patch YAML File diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index 3ec125ad..442bebc0 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -37,7 +37,7 @@ For more information see [kURL Advanced Install Options](/docs/install-with-kurl ## Networking Requirements ### Firewall Openings for Online Installations -The following domains need to accessible from servers performing online kURL installs. +The following domains need to be accessible from servers performing online kURL installs. IP addresses for these services can be found in [replicatedhq/ips](https://github.com/replicatedhq/ips/blob/master/ip_addresses.json). | Host | Description | diff --git a/src/markdown-pages/introduction/what-kurl-does.md b/src/markdown-pages/introduction/what-kurl-does.md index 1a8326f6..50b3ad73 100644 --- a/src/markdown-pages/introduction/what-kurl-does.md +++ b/src/markdown-pages/introduction/what-kurl-does.md @@ -30,7 +30,7 @@ kURL will perform the following steps on the host prior to delegating to `kubead * Configure Docker/containerd and Kubernetes to work behind a proxy if detected ## After kubeadm (Adding Add-Ons) -Once kubeadm gets the cluster running, it’s not ready for an application yet. A cluster will need networking, storage and more. These services are provided by other other open source components, including a lot of the CNCF ecosystem. In a kURL installation manifest, you can specify the additional add-ons that are installed after kubectl starts the cluster. For example, you can include Weave for a CNI plugin, Rook for distributed storage, Prometheus for monitoring and Fluentd for log aggregation. In addition to specifying the add-ons and versions, most add-ons include advanced options that allow you to specify the initial configuration. +Once kubeadm gets the cluster running, it’s not ready for an application yet. A cluster will need networking, storage and more. These services are provided by other open source components, including a lot of the CNCF ecosystem. In a kURL installation manifest, you can specify the additional add-ons that are installed after kubectl starts the cluster. For example, you can include Weave for a CNI plugin, Rook for distributed storage, Prometheus for monitoring and Fluentd for log aggregation. In addition to specifying the add-ons and versions, most add-ons include advanced options that allow you to specify the initial configuration. After `kubeadm init` has brought up the Kubernetes control plane, kURL will install add-ons into the cluster. The available add-ons are: From 7fa70c401d1b8aaa8bbcc8c901fe197ad661f11e Mon Sep 17 00:00:00 2001 From: Nick Meyer Date: Tue, 18 Oct 2022 14:08:33 -0500 Subject: [PATCH 011/234] Update algolia-crawl.yaml --- .github/workflows/algolia-crawl.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/algolia-crawl.yaml b/.github/workflows/algolia-crawl.yaml index 9518dd00..85c91231 100644 --- a/.github/workflows/algolia-crawl.yaml +++ b/.github/workflows/algolia-crawl.yaml @@ -3,6 +3,7 @@ on: push: branches: release + workflow_dispatch: jobs: scrape: runs-on: ubuntu-latest From a05ab67c14ea4ca3b00ee36575ba754bb1d40eac Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Tue, 18 Oct 2022 20:32:38 +0000 Subject: [PATCH 012/234] Add Algoalia credentials to environment --- .env.development | 4 +++- .env.production | 4 +++- .env.staging | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.env.development b/.env.development index 272779e3..838e910c 100644 --- a/.env.development +++ b/.env.development @@ -7,4 +7,6 @@ ADDONS_JSON="https://kurl-sh.s3.amazonaws.com/staging/addons-gen.json" IS_DEVELOPMENT="true" BUGSNAG_API_KEY="d9853b1ecad8ac8750308fe7ce9335b8" BUGSNAG_RELEASE_STAGE="development" -BUGSNAG_DISABLE="true" \ No newline at end of file +BUGSNAG_DISABLE="true" +GATSBY_ALGOLIA_APP_ID = "UB8IN95AB5" +GATSBY_ALGOLIA_API_KEY = "4bcf277e75d8f888739aa06079fdb19d" diff --git a/.env.production b/.env.production index a7ecc5ae..706905b8 100644 --- a/.env.production +++ b/.env.production @@ -8,4 +8,6 @@ GOOGLE_ANALYTICS_TRACKING_ID="UA-61420213-15" MATOMO_SITE_ID="11" MATOMO_URL="data-2.replicated.com" BUGSNAG_API_KEY="d9853b1ecad8ac8750308fe7ce9335b8" -BUGSNAG_RELEASE_STAGE="production" \ No newline at end of file +BUGSNAG_RELEASE_STAGE="production" +GATSBY_ALGOLIA_APP_ID = "UB8IN95AB5" +GATSBY_ALGOLIA_API_KEY = "4bcf277e75d8f888739aa06079fdb19d" diff --git a/.env.staging b/.env.staging index ee9acb98..7b6e4a15 100644 --- a/.env.staging +++ b/.env.staging @@ -8,4 +8,6 @@ GOOGLE_ANALYTICS_TRACKING_ID="UA-61420213-15" MATOMO_SITE_ID="11" MATOMO_URL="data-2.staging.replicated.com" BUGSNAG_API_KEY="d9853b1ecad8ac8750308fe7ce9335b8" -BUGSNAG_RELEASE_STAGE="staging" \ No newline at end of file +BUGSNAG_RELEASE_STAGE="staging" +GATSBY_ALGOLIA_APP_ID = "UB8IN95AB5" +GATSBY_ALGOLIA_API_KEY = "4bcf277e75d8f888739aa06079fdb19d" From 658ae06e134825073e248a98564e359a16bbe9f6 Mon Sep 17 00:00:00 2001 From: Amber Alston Date: Tue, 18 Oct 2022 16:52:23 -0600 Subject: [PATCH 013/234] Update k3s.md --- src/markdown-pages/add-ons/k3s.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/markdown-pages/add-ons/k3s.md b/src/markdown-pages/add-ons/k3s.md index 5fa5a413..063a2392 100644 --- a/src/markdown-pages/add-ons/k3s.md +++ b/src/markdown-pages/add-ons/k3s.md @@ -3,11 +3,13 @@ path: "/docs/add-ons/k3s" date: "2021-02-18" linktitle: "K3s" weight: 42 -title: "K3s Add-On" +title: "K3s Add-On - Deprecated" addOn: "k3s" isBeta: true --- +**Note: The add-on is considered deprecated, and will be removed from kURL in the near future.** + [K3s](https://k3s.io/) is a lightweight Kubernetes distribution built by Rancher for Internet of Things (IoT) and edge computing. Rather than using the [Kubernetes add-on](/docs/add-ons/kubernetes), which uses `kubeadm` to install Kubernetes, the K3s add-on can be used to install the K3s distribution. This distribution includes Kubernetes as well as several add-ons for networking, ingress, and more. From 6b7af519e83fcdfe800f4f21cf33d1ee3df05b37 Mon Sep 17 00:00:00 2001 From: Amber Alston Date: Tue, 18 Oct 2022 16:55:14 -0600 Subject: [PATCH 014/234] Update rke2.md --- src/markdown-pages/add-ons/rke2.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/markdown-pages/add-ons/rke2.md b/src/markdown-pages/add-ons/rke2.md index 8aa68e78..7d7ae483 100644 --- a/src/markdown-pages/add-ons/rke2.md +++ b/src/markdown-pages/add-ons/rke2.md @@ -3,11 +3,13 @@ path: "/docs/add-ons/rke2" date: "2021-02-18" linktitle: "RKE2" weight: 52 -title: "RKE2 Add-On" +title: "RKE2 Add-On - Deprecated" addOn: "rke2" isBeta: true --- +**Note: The add-on is considered deprecated, and will be removed from kURL in the near future.** + [RKE2](https://rke2.io/), also known as RKE Government, is a fully-conformant Kubernetes distribution from Rancher. Rather than using the [Kubernetes add-on](/docs/add-ons/kubernetes), which uses `kubeadm` to install Kubernetes, the RKE2 add-on can be used to install the RKE2 distribution. This distribution includes Kubernetes as well as several add-ons for networking, ingress, and more. From e1ac1a8965acf4eb67d908d2ebbc7b4b384da2e6 Mon Sep 17 00:00:00 2001 From: Rafael Polanco <6497491+rrpolanco@users.noreply.github.com> Date: Fri, 21 Oct 2022 14:04:48 -0500 Subject: [PATCH 015/234] Add monitoring info for Rook add-on (#895) * Add monitoring info for Rook add-on * adds screenshots and docs edits * typo Co-authored-by: Paige Calvert --- src/markdown-pages/add-ons/rook.md | 14 ++++++++++++++ static/ceph-grafana-dashboard.png | Bin 0 -> 851312 bytes 2 files changed, 14 insertions(+) create mode 100644 static/ceph-grafana-dashboard.png diff --git a/src/markdown-pages/add-ons/rook.md b/src/markdown-pages/add-ons/rook.md index 11c27b37..0e8132ae 100644 --- a/src/markdown-pages/add-ons/rook.md +++ b/src/markdown-pages/add-ons/rook.md @@ -84,3 +84,17 @@ Alternatively, the upgrade from `1.0.x` to `1.4.9` can be triggered independentl This upgrade migrates data off of any hostpath-based OSDs in favor of block device-based OSDs and upgrades through Rook `1.1.9`, `1.2.7` and `1.3.11` before installing `1.4.9` (and then optionally `1.5.x`). The upstream Rook project introduced a requirement for block storage in versions 1.3.x and later. In instances without internet access, this requires supplying an additional file when prompted. + +## Monitor Rook Ceph + +For Rook version 1.9.12 and later, when you install with both the Rook add-on and the Prometheus add-on, kURL enables Ceph metrics collection and creates a Ceph cluster statistics Grafana dashboard. + +The Ceph cluster statistics dashboard in Grafana displays metrics that help you monitor the health of the Rook Ceph cluster, including the status of the Ceph object storage daemons (OSDs), the available cluster capacity, the OSD commit and apply latency, and more. + +The following shows an example of the Ceph cluster dashboard in Grafana: + +![Graphs and metrics on the Ceph Grafana dashboard](/ceph-grafana-dashboard.png) + +To access the Ceph cluster dashboard, log in to Grafana in the `monitoring` namespace of the kURL cluster using your Grafana admin credentials. + +For more information about installing with the Prometheus add-on and updating the Grafana credentials, see [Prometheus Add-on](/docs/add-ons/prometheus). diff --git a/static/ceph-grafana-dashboard.png b/static/ceph-grafana-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..b09378e3db2ec968b42cc636df1142c54e072d98 GIT binary patch literal 851312 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%0DK4C2e*!9Spxz(UL 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

    gL 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 z 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

    |M{UHT zpD;46xJV*APy1iM^PZ`2vBl*#(==OHhgL49M!h@{zM~&Rls$PxPS$VV}bf6PyD>W zf5loQNqfsvvl`!Hix5B3=Q?yC{9r<&5tk^oj`H2ijXWxq7Bg~h9aeE4b-KGy!_T;D z#KJ_f1#DYO9A&T<_BcGKJZW7vg&D$$Zc>gT{RM`?^1_22usDHH1j;#yGOH#J5Zd-$ z^Ygj@Z(`|C4TU@(swrMa2wUhQyKOfBY29F({Mu^D7DZIT@~}v@+^;@?eEMK}80qrt|;D8^@yi z5;$l%$qF>)xRZHfs{SnrYm7uzusHJ4J|GT;E0lOGX+6OBM$0lQ%@aa}>&z2j0QpuY~d zTbvh0A}%=QN}N49_l+^(;N1~K{Ttju#tO;(Jj5UoHk_2u{xO;=Z_;Y#>fh?`z#|cg z-9xhb}xRupRH5PEGVO1LojJj0r@z(%fBV4)+i zMu$3)aU0UrLuS*3@QBjq4?-sw^~mqr?xSu4rh&+V$YbV}$ile!X~*4$XEyKJrl^Pt z$SLOH)X>y^i$9VHMf>`$fH>NNb5p_+p|v4{Qh+qk#GxGX3(a*p*Qiw=p6d3R5E2RvMu`b>wC-fIYhvG925xTEI2LvQoL+cudEKZ6Jwr&aee=OO&^KRN4v-aDdH)FzC58<-yH+!8ElI2a1-MNYmd?y3dQ7l4g)C#gtkW8YxlgYR3 zrk5DplVCM5I?Q`m2t4X*82)~jfcSMRvLFWkL#Xy|a8}{A|A%l=bB4}AGPCIKq2^*v z_R6mqP=h|l|2~Ku2xado04~f$DHtDv`Up5FD9{T4h>QA#9hl1q;&Nh#HW}s;JkCE* zgaq-atp6}r0?G9o=?F1m~-kHHyPa!5oP)zwN zhi+p3fDe-2T>q6~8_M@6Xzu(ei1>+~2Ex#0{1Ii{c<${U6pB&*6HltQ19nj4`LR5p ziN!xDPmTNI&e}V^9@pD&0a-A4RF1Vs41=Jh20lbFDS4~+0DL`}1f`T-#f<^lGD8#LbS)+dxo(@R~N*(sPr3{ovkI_x$TeM1yFO3SQ z)^&B{?1eCg)WT%fH6JfK_z#v&b*7tGlq&5ev!(kxFgP-?R+hZl5I6^BpExLp#4pA6 zVi*xX@RLZ~2131M`$;^-Z7Vvb4^bf=tTw&U-ifECeXVq@kGpn!*Ac*pO1JPz5@+KYocfS7{E;(32OkSJ+Az6U8$ zi3t22sC4X~e;& z&z74SSLH+(4X0J-^Lz(A)9nqvL?P}Tfm5+PARLOZ@R6+Kw|gm$gMZMvS+w~9mJ-%c zaf97<;8dY|i|P)QBs4E{A!_M(^^aN4f$Hm^SN&Eih`mK;dtAPS^@-4m;K0-1)4yL! za-7;uB_=(pg?O`65?*7#qa=PW71}`VYl-q)o8ap%VlPvX3ZZQ4)<8Iu_b*arHarib z4fb^++Pf|P1xn?AzJdOQF&misUI(V_=)~2suzgz zs~qJDgrm=wW4-MGDCmI}+dex6%so`|3bcM^_ABW;m527p#_-EqAVnW`Nv5RyM;bb= zPOVNTQ=gizy8D(l03n&xyRR~35E<0!NK8+tr}3#UlElBo_Hr%-m1f%~O}_yw_b7hv zjvjc@l>pLARy1-|MbC#$-gAJ^RT&5NO<7%lg!P4|qk?HuKxy_tUSX-_ow*KO8vYuY zfLX&)K2VK1SUhSt5rV}Gjr_>BiNARTPYWsgA`g7WgZlD&cB-Z!y(rLBgT~|Q`ki=3 z&ZT;rz<1p2wg+s)aTMBoUQly;4Mtb-+QwaS@6alixNnO^_#lS&hiVW0l=Z;IVTi%X ztj6C+hbW#Y1O0Tr2+$o?7@tU`3O#{t+B>*uVkKp}X-E*w7O%1dPiZ%O13CT?`13tM4el&6j%~XJ6V9sG8 z^CwYZ_}GkR=>nAKiJmC6nc+nfL!E%=-9~(nq`!HPkhYle>5Q`pCKvN}7erJ-a+-e- z=_x+ymfTG%+qWzF@a;z>8smGA0;<@@qRrlZsY5Pq@HZ|F$zuIKaB+%?XZmf)&6J;S%g)6rr0}F%nZB_= zDf%mzl8|w869Q#!wpY;M{Yhv%2x}$c6H%l7ll8a>h2P;5_)Y+d(BaWVl;h~7ni7hu^LkK@8Oc~gPw);#iqR0R_CoCrji`d@P8{!>3q zBjW^Fb{EKeW;86s@~32_2?cE$hzm;YyYWTK4a zNqX2r-vP60cd;T{B9AIi2%-Wr{mwVU0<%5ApUrga<-$;yp#t;BmZ#Fs(B*~Ot>OUh zKVVBY%mRinG|<{ajS``sxF0+PIz_Vzp}=gB@izr#p?9r|71pVz%`-#a0-Z@y8aq+w zIUStY_e3$cCW;c(Tt9A!cOwOfgyi9k_s-ItLN$C!YjzXf0mNI~aVqKt_9!|iW`lxk zzet-5@Ef&Wvu$@+0t>jA(_V^zStbU$Tky>1U_#qPeeKA_C5m`7JYw6yXg*6+SUQ*y z7qAUZK*;OF+#z4Em73p}RI$G3yXxbYqkf53zVBzHqD z_dW^=4E$i7Ow=W`m0IBJE9z7wcOvD))8qV>3Pg#&2)G}(t^oM1JH(o~$luh=Q>Mm9 zw4UuYw|=zzp3=UhCkb@$B5v%0IAj>FFfXagBpiu zRLhHZsptj4C1ltS7tw$Y7{p^Zbv2ZsyrxQ=xQ+@5w*U9lgx3pgcv9*?5b?=OHL51x zG5si$YANP$m;; z(mA*YcsiCE>;z*-diWq>p_l&`^cg_z>pv0qV$4etD6@_@ZIk)vtyU|PyegoYP|~|0 zLsq*lFmTQLV_fSMSZf2SGir-b^)9eEJ^IZ|PldDM zxoOo#yMuJeh<6h5$kc%J6U6tzvX+;Ra@oLhePS||{q0MHwvTN1EN%n;3o-)#;RcGA zB>82WFt>C%n#*6UVB3ET6b2v4ekorB7g4zAPinqpGjr4%nx8$SjenPV9)}D@E3f>% zKb8-6IyGL_ftM}=R^;8Xm=uxY{OBwQUe%0+oZSWg8fR|jp+mh<>Lpvpcf|rpzQd zp4VM`tgOs}$duS9n{y^@H`J{FF?oihl@qfI&c}CFE~6}XzJe*~peoF? z)fg^zrQtF{mTjTwyvZH7`)&6!l#G_XhZTvX`G!NjF1>ysr5bp9WMwDPM)TXhXJtbMOG^ zW>|$fFK#s+d`Rw3I1}uvn0E&;G+-8nzkW5BK?NX&9VBFjAX5r`^CoHj59EjL$58Wf zK~sqj<;%5%p3%$?znBCIth}hk&<2~`j3gH&p!FoM_gZ$Zx6a9UOx|@SistLnZ}`It zlNAaM6xMAO%?Nw&z`D_$+^h>>JikPXL~{qAL`($WNek#n`cIEhc%z)p98hN22&%Di zS@9%AJo4d6fNCm(hwMJwBPazKE>-*I4nT)X>1v(eGKY_Q6tkg|C>rKQ=oY!Xwt|;* z;q5t2Iddkc#m0a79;-E4qK=xDutxa2F=-BqT-2%V5jgD$E;WSUQV(!zZY1gp%3>(G z_~FT5d{8W#p75pHoeIiM5|S4y%2T*9YNPDv<3f(T-sFeA=UP$T?U$agXrEwQ9{%_0 zN}>bSDta8bOCcPhkhJkRk2; zimXSt5Oj~7;UJe0YP5CSe{_Pb8ks5s)~k-Fti&wHY6~K|gCA8{G2E~&RFu_Ygshe> z9G}&4=g>dj3(+a?(nAw{p6nKYRk6QVe*jM~rMaDxj$*3uZ!J+H@U7;uT(uxUYE6*N zeM+CkN)&XPg;ME3?^iwzlx;JZyh@s^pnbgKCa1^q(RDf$a}Df-g;~%NvJbzx+!&dV-)t2_0H| zSupipHgstpqf@af=&1@Dy61MObH*qlPdx1_WsTaHiRLYS=J3Jc2SI#b1BpJdBYQ6u zZKq@T^Ss`IjmDqeRn^6~PVqL$F5a(?a?u~Sy4bfOEH;@=O%)^IJSA-3E*^H7WB-+v zBlaI}h1C_TlAqGl45`R^av`_$M=iDe>XuGpjyiHM14>3;2aGZKvJypF=*UmC_xf%! zYtU`uvQ4;=R}gii-7Wk<`y}rEk_&G-cCwnQjp`Jq#{Yk=H3KdZ8#miOm`eR>e zz~MO^&F;jjS_03OplcToef`Vs)Zln54Ss2^!1Q5Us)^TJiH>!>+ZtpEk;P$n{^I?X zQlOp((5K5s<)_fqYD^!~*a06r7fu#ZgnH+$`;#sKvym5HBd{0=%=Jwr8Q#r)#m7b> z6h;>gH`_i4vm@u^SzWOW8ym^;bS+8eO1pQGL-Zv3KFM5_bGCia>jhDsuUNwMc~AO> z?l4?Fo06VhZ8h>yL<9@5I(Uo!*|Y6J2Hd1w9t;BDgKSN)Z!WbSOah7U>{Q`UzDX_Lyh-5UBx- z^mkz_K}J!0F%6~$>~Kg_*}Zc>KTb~pRo;%$Us&ez1RIXWGMC6K(j{?sf()<(vMdf$ zju}X!=z6`k&oS?|X}r+u)*3B# zWrgEM(_*ijE@$Ly+}vdA84t%s6EU-9|Fwniic*!B<$eLN(XYVX{6fE7`cMQmgLiR) zSGQfOI$3|*_#p@%dCvLdz5j9~VJqnYlqv-sQQd^0M=cZXJxaU*s18j@>s7}~_XPfn z{!`8Y3?)j4ziud!{`F^gY0J&81H|B58LO`E3IdBW@=MmJ>MycJ&11!P4y_h30apq6 z&lkB#vqP|YiXNLZ1`uLlsxhW92nDW^u9--p&W#+3!T_wnDSxI(uRk>fgZhq|Q4*WP zrsO(V{4mOS>R|$q3qp76?{?r^FN?CD3HKl$-ejRKyJ{+C0WEx+Ue<8?7B%?;$FFvM z+;88yrO??$d3uN9RPl;hO6Js_G_8z)pfi#MpRcn6Hf4koEEd0N+Ig>z8wtu{wrbA~ z6yBwaGwEBr>Dz#|wZ2$Q979m{drt8f6~X^%TlbF*Z+9{QZF>sN2Ndy9A6;eeGa zRUS4Tc*$W>^XRR8rM3X$aKv7Zr>7$hy_K8F+Y!Z87wY-gsZpL;k2`k#he1n62me-o zX+cZFb2}R4Y)j^*I}O)n>d)p}>=u*!lFe&8Kyz5Jux-7p;;W3y&^z*>*mXDg@renO znLoCg3?=s_oSBwwY3|~hF5Q2|rhHh(+`^((yX0J!^-$Y%EZ>XGEd09dw!=Fr9Bat! z0YhH*sZAINY^voDTfc(DWJ(Rht*~04$ySU~MWvZ}Dv0CQ<@DP)i;!SN#|x&PB+>-WN#0MkxpX z;|9XP03(T4=KAj);YASV0wQn8EXi2AgQd&l{5g~5;n9^>nv9GgITzk6?=ew1Ja5%K zJu!&rGnG5`?HPTna59!_EC1=4!W}Mi+%Rl1%Hed?mWtH|-W10^9dnyLp7!?M!&5W; zuARjuBTd79>`FSNukYTtcKddN{g2>pDHC~@7baz|r|a2&)BLo0O#Pgk^Xm0b>E+Kp z`jZ#gz&vs7y>{grHp9`YqwC|mM}U@-(^UUMPd5lkY^=hTlqj2pyrYlN-9_&9{NrK@ z%so`46O>~<$%Wt!Ji{h-qzn*02&;MQ@h3ukKT+&Nf<;e%=&{2*Ik3pLx+DA`py?2# z{GBiAMZPE)`64#ti}sn8v_a)xL}v7;rVa8%l~H5rsN*yjLEc`3E~4&iA}9{23g9oo z_~l3Wk5WlYM06_2du?~$f+N4)SCx>Os#9u|3aI6=?%c4fp)yY=@YIv}t+}sL_q>>6 z{f0>^-H`r_-(&wt#}D59!9hteA8qAUPA1i^Op8`aCJx?qj0-Jn(4F0}eoal*AXlfn zs5317Osoe7ZAe3;L=Cm*n!c9jk3jY-FJI-%ca*KJK3xBJp?Gk;p`Ja`pp|;?x(wsC zh2@Ho+OBzy{KLrNXH#qDq{V5IDwBt*~hcM4!`538l#hD?? zPFI5o1HW-|a^U86;oKaG=`S@prl8>LdgHCs4=4+LAlaH=0NXPrPMd0nOkd%Mav=nh zgvxVU!%j;+&5gA>dG~2c`p;9bC5On$?P!P)w;Xa6I1^k@aBw{!R?j_XGuy$VtZZz? zE&KW#B`51v+%yxFUsU(YuFlL3=WE1iK8bbwu4!o*86|F=x?6ww$jDb+(_WF)<%LB# zS8v0hhpQ@=W0?z_Rx&E)KOANsuC{>^;h%Cw>DW5n)o)f?PQ!54J8|0HbPojo>1V$2W98s zEEiM4MaZ_fasXIz_mBhrP9ga60(>Gnr)-7*s` zYw9MDgM>?vu<`lYa$(Z&GO!xjY+$Nk{aX7m^|NPrEjuzpM`Kpfq!)h}ntTqRx33@C zrLN!GYdHP!BxitOQ+b2u4$ZiZA4}8KF3eFen(LHR$|1*SqX%qXES4MAtRa9-<~>YLs!tDN@L0^T}V6|(30JUx$e zT)!o|nM3S&iKe5lBgG0`wwBT7mj_w)B}Zy#-n+lz=A4pIv+DZM=i&RI{<@w7zL3cI zLKmI~y6MAl`$*H7KDQ>F8K0gP`i2pYjEu~f3K^lhqWSWL_sHt(dWq9Sd`e1<=BDKn zFBQFGWLy=ktuw5;vX20PFa1kkBKpgf{uiZ&;2LKe zi+5o4Md9M~KwpKc>pBhYB>`2ncly`c<^mhGH00P1E3UA{^Cn>CMRbj)HK|Q5X+9|J z@)St0%zb>FWZIy6VdJJ#N|tH6bqh|flAVW%APieUR$ zjjNY*bs~mgrfBe};We$bA8k9{uIM$=0{%JK&OZg?;nm>}G@sfZBs%NoHAE~sC2C$X zLdk`(SKae*SDQ@=8wn|z<<+j{vq;f}npx2f3Bou@_wStly8cHjF)1M&+%`UUe{QJx zYs1LfRJai8BDL2Em5MkRMB=cuL~b#z*3StAmBi8%%wWc5d~Yb`!Jx`h3m|~$Vqu-X zX*=+dO2PWJYu{`_&fgs0xz>zu9(V=;*4JByqvKW{@WCvZXq`s4(l0HR#*6PRtpZ!? zJ8$JuPu63PjQi}8?`adIWjyXD!* zjQZGh|0w5IW7<_Pi$GJqS3k4#)2Nu^=ez0i@87>4$|&p$5Y8$;4mL7p;Ts7_7#SfZ zs_CMiPwBj#k~tpw=37-*N8L!}RTpQ4XX%z>yp!tOJND?0te9~bug5i33%DS1dkK5e4Dl&g#P``dGq^hkg;*`H?@}_c=cImZyDb}jar!i$O z@@opyB8;tFZ%Kbp-`c8Ke7YFZ-rk-w+jv;P!NG60UQzZ3lS2SbKClfg(QO)zPwU!6 zWYm4F*+&)8I40Oxl5?or{ba>~HnTCT9F!TQU|(Stg9)iGWOtgU@2*lDM+u^1LHd2H zEd0Njnrsg5&&W%nik+8NGy$XVZt+;V*Xz)vl?Mre8}n79zG+AfvGsqWd?>Sar9033 zS=5@3!;s~=yOCD4*2zI)WF`Tkz#<|I9L}Sq4?!!+J#eysgX@m_s9?8s;XW~=mkXa( zp9oHy&W>_&2hk6ag=NSyGev?Ms9=R<^@fK0Af9Vj3jR zqD_!zu@h<|vaxXr-Hx79-sWgD>(BcXj9ku`7W+Ly^DT!HgCv`TZ2q99IF3qD8ae5( z^996eW&bu*e2tj`D3iJ5S1-?7?hi{( zNeSFxxUiLF-w%hig2U4hd=DF3_U6V)P;?3HwGY!_Ia~_PyrkwG`CLc|XNY756Ls^r z8wM_~{P+7_KTCI9=;|*SclmoQfgKH(J0^ww?MwJK)*X@pA`Xp-Qzyg#(R{+(acJ&f ziSo_s=s3ceuF>tOHU97XgKy?t{Go=MM(KZNj9&9;)-zNKyRF@=_ELarEw& zaJe0dq_!qI)$WoD-nekMOQ6K9@|GA>oV4|FJ?8`3I&Jy3Y>70PdEWnRaZ9(!;~!s= z3cpXsdMqmxyNu*(kA84ie3pVu5~!hbu~h}>@|yKhR7P-`P@Z}1*Q6*fp8)w&NY2XV z=WFFj>yM}!ONLtq(zPq1M4-wgFgZCn<7cSH2X(>I<55(_-(R!jRB^5k$2t%r&diYM z2XKg+rliy}qrOqE+wXACQ}^)b)tqU3G5f#+Rk;m=COHMddU&8sKxdNbg zm*FO6b@C;GV%NuVbNv1#{2NW!qai=IlT%^|4d%v2AwX1wsI-^=C|G)2Djb0LEjOo{ zWa3wbLAj5}9qc$lP>Vmbk;p#hfWR6Yv!k&8aRReM8;rLeJwd6ieBYnefBwZv?AMK1 z5fKr_pN4Er0;61(i)Y%ireeE0-oFo(Du}%1=~caAZq~KC>I{phh)72GrG+1_nTJaq zJfkEld(LTV2ZC&eL-btPJt$X%N(%I|wR`LIIb{|vpJ0)->a6E0TTV?C+8=u^Lx)=+ z*4}DlKOnpn20pK@oYH?t#UdV`S+^mBOeu1xLH ziq{AY;L>tS=&O3Cjz0SHO@ouNIR#^D8Dnl80s{*(o@1kfMP=wc;13F?Mjh7{d;9 z9vL_bA1RwZz=5%YK!vgJP$zU%bcw}k+ncE*w?xiBm0=8CbM7cn3!vNJbAzqNs;lRNrP=;KFd{M&&F%}` z=NiMWKChU}85^ywSQD49Tz}Bn&+W5mQqaJwGdRe<_PxZst7)}|p`2=J+6z-_Pv^BB z`^hHL>XSP%>fbk#lR7dUTK3ZL(o(*~?v9m{JC)`TZAWV6R1VTL|GzZf1s~3jw_CDl zS9n+-@h^8@smp%CYrHf=YjQ!zEiE`UB7&7g+=5p7#pV3c#p$JlD29oB^YgkjHYv-p z24#wUp6mU51!o$sE7f0o8#Zha;pHQ9<>f#h#m3 z#QEhr(R7RcE*b+?eXkfYN>uUQF2j6+%N`CBkH83M&mj8E#W}t0-d%7seILB{rAC$T z?Y}M7=*B>?CI%I2x{>FUkxRt`t42@GUxveJvhX9h?=-prQEZw$h~&cI5Kj#yJD4ws z(AGQ=(de||^y(#{H9tcczcH`UKlu!qdApLP(5bZ9ra{rnu*yUf+}e}qL|ejKkz9&c z`fMb(?Rr^3fMN(eX6)u3`n?d*i_DsyBLD46gg3IB6abXklk_Q8Kn~;@^N~8j$0!xv zQ-$0QXYAq$*hzCW1871p!XxN~A8^N0i_SjbKL<->Z_+ZCf>V!G_R-OU_t)j$YX!J$ zGTzOIXl@P5=%YkEI5oAU`{B1T|L#BtP+-Ikhu&x;e5d2AnfDi)^CKzyreqD(pm5uwsUNmVk8 z8mi(aWV%~!g^fG?+l_;LbFk3+$$#FZ>XQbaTrB0XjE9mWVz*?%85w^6#~5B@KLUyD zdnpiuX#*)Gt)sxd12$JA#XR0Af%r6@aTCCVoRS_Sgmobb ztx5i9p$;)x*h9@yfRVsB;n|b%k9mUVLJ-)w{E?eE`lec?9fvZHf^{MFlEC!;Qn!WbR zr^(IAa*NdZmg5w3bb1{8pQBwncsh`i?z0Z;TBd%Nua`1>QTGAm>qoedAet4eEVmK5 z*$0(_4Cty+L#D^)3`G~vHbRwKEe(zZ>VXWnGA#9o$C~@NN+&;z#KC#gyruG3isVezgNqsEdVmN57Z3|;f_XfV`^suTm6{h<}brDx4+tu(YT$|!inkQe#`=b zM>OpoBlUKJRT~bva2PX!oX*PN(-z?s&>8_EO=p6CuW@i>*b zO=}=F_tH4Z%WDDV$>BS7cB0???us)w8B$j-^EsM*5 z2afm!D`fvCSYZ?^s`cYWkwO1#08uwGRbtBVLubG_5TC3aC!n4P0_wkn4i7l}8D>>O zjd$TeGPgUGG))Slo>BlBuI2^Ay`=}f5QzUfxVLbrqQ1n_(4ogv;#H+>J zJG6o151!?COw-MW$651?D7GvoXuG4X_uurP{j`C{LA!>>mv|3X8sKYmJwwpxli zd``E-S*aEjN35D2zx4}jNcxm;Tm=-wN+TKlT`*!9UCG6CzmLAE(UwO&rsfJjGN$+5 zIb0xya>9F#L)-b%PUzma{2Da(oM>xsgXSJxo4PPvR>9NSSQ5w8`Jp(gTC-Cx!m0k{ zBzes(W`jLF3p=b4mV9i0f1 zkFP!J=7jeIC`TSlq($D99eLNlBdv*{XwfB^eC+|JDspm@awLxI+PK`KCAX8B4F}wO4>n3rR^(T zg#A%_Mm-x8DX3<$x02vk6W86g!4z4PYqg_X>(r;>I|MvR@qpV;G|HtD{_G-h<#S2u z+Tkmvu5ZnPQau8C z(rgZA$_I0<)bmdD@kUrD$-TxpZN!cd4GOB7v&~^KgQ;+Y(a@IXZY7UXN!&{=x=h3R zXc#0!-GbgH1c)fYPe@e1wq|L=U zG5g^08TTIwJH~YaR^;LzBkB}?Ai7-rfF6zac66-hBbB)6a^Xkr^KpjlE^)Y>aW03n|?-?E49^=NSJ0-@EE6Z|2`JHQl-OjVh&b2QmoxjTUJFi>0 zST*{z6rPb=dM6oH6L;kBa*yfSjFii`XKZ!U>}rZ>tv5O6C(pG}Im5v4^;y3*@yOwu zgDMMI)05ZcV@2!k3yao9y#XD!Y;+S>Oi$lghPXCi+A6so8MQC5`#8p-k{jx={|S#X z@-e0zjxY_(0`D%BCiTS904{R*m015y&|j`sm)t@kO!i|#2K~I)LB^-zm#^uMSDa`Q zNota8$_h&yx$0uN4=B`!=&fKiFdCu9al`)(u#lQ?{T2fAcSxBC@JI)1> zK342^@!Y+gF|I{!%T2~@)xDseD=s!1|I9aMGW(6`P$HYn;=`4R{+Q4S+ai7k|3$AM z8D}{m=<=Jir!v~l?5euF(Ce^x3H9)HxR)v>#z;%%_PWl_#x?}M^0}j^s~dSb$}RbT zgl*0HCImG@TtHV-CDUbeL)PynHyfap1o-aQKZYcr-}jCnK!0GC9$9t+2B_h7)Gtvy z-o4jc&u~nwSNR032xr`U*X+a(E|H)W@#j|oa~8!a&Z~-0mI;z}+c5mdTF=ZSb9ldo zE5Nt_W8r`M5+ch8HQak9i!4mKEtF_4H~3l5Q-IUeq7(5aYCqrxj|cwYKr7LI?G6;i zpY7JpIp26_BL1n>*2*)%3R{!DS4A)QY&Gtlq0Mb9{(M7tXg0RLj6g*J`rh1h?Adys z%-XjBa@!g2jWRNL9?FElNMv(~6d7SlKGnL~=PlbX2+8V3|Lc-X!6h4>`ZD%`c*#o8 z(EzNL12I}fG8As)HxP>8xbV^?=qLh!%L}Uk8!XRPS3>kdS|}e=kY2pf8BKc%d11?} z3ZYg}IYR&jts13lVe4?N`9x;uLUJBTrebS%?If#COD&Uz@4W!}=GD(=14A_g+ozsY z)tZDE4BAH8wZEMiPZKqXE?o8Uwy$e&Uh28rd;Qsuu^LJ3mBXGz7L`sp6PeF`G-qnC zsB3G#TcUHBd)HqxDq9%2nL~=lH1^zzXVmqvbqd zO-0#*{C$9@Muf|4Tsfo|6IcjMe)c5pIIyfDWOsLaW3ll6FgNTDVW?my)bG})gRO_* zg}5p9bNLY8We@YgJZ7tgsE05b2xqx@#}kB{`t4?lJk(od7B?A7VJ-V!S84=k1?3gc z$0hVgQ?|8O^R)SRp*~fcb`Ark1X;NW<78^0s3{qgz+k`snpk{>dUj}L(33r+cvaJu zTOklCS=OR3?@vQ!m~as+pvksD&GtA$lgtOt=|Oc(O%Z4joc(xCq$Sr>G`7)o-9qU2 z_IZKnF>UV3Si_GN$qUGP6 zm+Jiw1MJr0-Qu^a!3+x_+5reK^9W8P-#$A!OdvXxl)`>Izg|*ATUA?g5!6`0u+uS< zqjnYxJ|w9PNOgY(kzAVMCy3-CAd=H3y~-9r)y!%jdg*LM<>oAv?8UPa0t+6Mu`+-udmr8z0&qyM(<`b9?@Tp7HF2_JqRiEo|Hm9&8aCdu;10tB1O2 zChzn7eoUgfX5hN2DLGz!Y1Oc=a;u88dPkOFq(k4a3fGqYg^Dxl3O3cNJ1$1?;@mwPRY?I6XMwAl4;K z`WmfIUjQQ=1!~Hu?(;v1jfNc@->nVs`wu_6GZLsfP`VT5m}Z2}(w|Z^nkgz*Ka0GM zGMU+fQ)FhEba5eVyPuZs@zzlr&w+^*aC1V^<<6btqJgjaq&mV%u@eb?h)wA+dLIJM z;(ILIk}Ci~OKXZ8G)W25k2Afoc&M)J`*!50FaGWh-5ej~yuF!aPucbP+9%frA9N-Z zyZAv{w(g6eOfc1>)If2|b9D|)tC}&cYguBB)fAGKXSM;-bSie`D=%$zmTCV;MdvQn zw3HMDew8&XEl(eE+K||FtHg@Q-X+_*CFZEW{Pm~QnE|j9qMkh;x6;&qS((?T^_8d! z4b=iHD}9c6Yh`_TmggjPEZkmi;iJ0C*zoB79v9%8{x6+J(lXqF>oAuln$(xftn5X+ z!ib1PaEDgl$yi+hU7hz%La{ovNO9%#A(dk<5p`+vb_PBkI@ERx@QU*Hs)V~>F3qlZ zj4K}2n43hBgX95Rzm{u89oZ9PIF$JRr18G;M6e>EBVmyvsZY*u|j9sf!5Qq`F<2HDBt;*k9Cn?G;5rBH! zYYPBG)6Tp0D`u{naZ(^kn9UWfk$bdU>$MXEW5AQMR@FOJ~`|dKCm^K z7=}Asbb;`&^sjQDJ$ash@1}Rx#Iy`Di!uq7^7PK+gIeI>8NO! zYS*$EqYdkAV)vDVBn=LCjz!b~A8Z)B2n zH+Y{yHJc~P#dl&29D=?S4XQ}W#EMTEYd^oJ-MG-mhQN^B?sMnOZEeH8oxDHmY`AY# zhegspFE8&vUEoPi25kGc(w`wyt9EN*E%}b!!N+JhL{-rmX`!j>|ojLfFm6gTpW(uXI_Xw-j=^BqOHU=QNK%boR z)gSO%icueG)j-NdbbfWui_M|6wYBQBqlZYN7`m?Ztf{w_ozTkE8D5u})R;ZshkcDH zE9^c|@ZLgLJBZ5vLy_I3*X>taz@l`emdi34_2?e7dB4-LBi$~|r9_^K+k2|_McvgN z8)0SLg6i53;jO7R>UahcvGRpf-52h7w}dYDhlTFZPvv}~KQ!2$cJ{)zwDzn9fMR)J zZxEv{I$ZsmxXpK!;(|A1K+Z3!8__d7`Igk|tvEAB=CQa?n!iGi1>g`lqEdPsfR;t_ zW72PX5o?@BV5~7fGGw&3z%_)sW6s)kgMeeUm`FvY33!12x{7nOaFp{WSY_AWf>kE| z3|2At+VObbI$xNcV@SoMudrya=h|$De^NEz)@ns0`iE^JohBa4BngZfPfq{fPQ{8$ zOUYbst9{bXDhdevGeY;ROjA-*XGHq}BHo&H$Z%~wt2nxD*K#Nwv_sIT)yep#3DFZ}wfDI;uz36ocQqG0GaCVw}}PHV2_ zTkyU5aoLn4b?9bT#pU_n;NDV3UzvXY5;M9#-meq!+_`u5AQ+(If9oloDk}RioM0l> z1S!z{pGm%rAMsxJGQEX;CaLU5c zwfYgCQo@rbM_&2v1};_tl~qqgg;iNYM~+3ikoJqK`YB0v>`1!0>-t2-Tj~(KLYuO5 zy<&CzpT8x&KKD70N||%#g9i_Cu6=uS@eZQQZli)MraFN8#VJ?a7rU=b%iI#q-3GN3 zqe5a3EQ1Sz-?~E(To&~Zn}P}7ka1z1vN^Sy1`-iFTv;r`+904qs{0XD%O{vf4(Gp| z{7-~R0;Nm-r7YZ$FOj=Ae#?UUOYXHME?IZ|xe_v%mff6R|(S@ueEA>ZS-rfsCX@l#drH{J*wCIaE-J79f&7oN?a94uC7Z7dX!fJxs%HXNoQ3)4A?{%D9l4c(5d6#xW)V1s_Y>6bTN;c z&kw>UrGI!L3i>Q&N13o#UHD~r99wSTS$6}asBHepW9mXzHvLRcn(fT!=q>q%l6iiY zk8e#Ao<3FIQ~X^KIT_FXR!;>o)7}~LD;?>EjiGC+g|i#8J-+#+4Rw#kC`6y-W;Q%@ zY@utg;)lajsb#42!O>Us&V%)>O(9txPM+(tz)>msVc)T3ZN=8p^#;4=7mf8*HrsOk zFoT6>^^!|{$uw;<78TPma;HqjX~zrm@~R(5tR0VW{b-vKQ&Piyhdnf9I@)=(hKxBT zBx`p844P&EGZ5lkxr->sQU?-Fuv{i_c2vJuus2cRjFdA8YMiY^htPQnrQytrkcQ9O z%VJ`%RU0xc(M}1pYwAP)sW@3}M8qn%P}VHC#xuT2_Ks8n-0KuHJP`EPc!d5EYC^LOPyXbTO+S*Z1H5f9fZ#grxOKdIsUU=R0eAm@@ z*O~FM&yR8uLb#e8RrUT$c|q@1XvRL^P!k0z_mTw9VPWaz4^rkf^e%@PW8}TGOgUu9 zp_Bw-%T+u^p|FFva*`n8JlnS&A}2uvZm~-$8uzf0XvhD$a)fCLjYnQ0rM>!yb1m(F zzMLbyp&yIJSg=2UKDfc-SItk3{XxC|eD;7$kYbV+e!c0k^>F16nZ+wZ^i|b2zXio3 z@X@a6*y7*9Yi8CZtszMs`lRtyLrKZuvg`5#=2WM4&5D3Y@-G3DsWS^1+AnnWlwXV3 zt-E$%x%ozx8VDCN|ELYC;1@U}!}>O~d}IpkfEZZ?ZFx7W}MM5QY)lAr2$h zeG7XJJvPPL3lztZ+%swN?t2?BD#Xc?hRnFapE@f1H7s4FW_MLJ1gtUt3)%@70oeOi zd1mBkWt*qV$)UiCq#JoUJ(HWByf_a>**7H8kDD-A++iOn1KI-mt9yRxqRG>pLdq7$ zyNU$~bd>$fN4Ss}62pbjr$n$`B{X+{z|FhDtiOEKq^p@eN1D+p z|H``xB_4zaReQD&kZ-9~=eiza*dp2I6U=+tQ>(-|D^OyzER?F>0%~$aG(b^Rna_KX zm$b&Ueq*sO5IP)hoq!$c$CRK#^UBR++JCc{ z^|Lg9A2}cpe-1Qu$HX6AY$t%XAERY2&V6Q&zh_p=csaVRHRUIAq;#KApTm@1miKQ^ z{KrutVy;q;VP)sqy=wOi$O+h^Q4^!gz|#N>($}MTh+ zNzyZ5TFmKPRyJbt?5}juy@03uzr$GlH=#PwWd1VASsJ)-nvu5o`q1=5d~tr+EQ8w# zF4Spd7#{sZ0pNl-t@zU2{$5OQ63zE*^2KtY9vjaE6E)I2gf{Zqr%L*(<`##7Zk_wy zJal(aPxq8dhHezPzc9P*uO!(&-`}qvjz#@f1PIO_X_Q+S@KD#^eX1e>*s~AmPLzc1`DUkw5}=WM0;>9t-xJl#N9QicVFMB z!Y|v*0pfG2h&Ii~Wk-Rz4G(PceZ#ID-bg`^@#O{P-@n8Fk10fQ@0b|;wTa;UYmk=H zUwV29hSEVvYxhAF0)qs^SRu80QiM8O*&BbYa?I2?nsoJFS;%AQ=`73so z1J)LZuM~Rei6D$2fN7REL?dg#PekLS)OwN6ih^cBHRl_Ed+;L22Ssy^3q zK>?D~tb5;ulAkR|LNEw08dU@b2Ywq3UeLZWDw)CC9v!li4;<+BBB`MLBgaGjl)9mM zUATBwd>Rbo8>1wBAq!KrOAoRB0t@1S3DDES2?-XKOE|(~@&Kn#1j{7}3-~B^v=+Zy zzaT+Bg_j_KJdHnnH;TjD@={4c++InOgEynSe<^Zt{i1Dng`;0U>~PnBd7%<~Sc&lk zUW^ueoXOkm<{0lA@Z%VVE(l;wpnEmmh2UXG=h2%kwy_vQl%S3 zL{hp#B$V!!QUMhKX_c0c?vUJw(h}0WQ9!!8?^>|YbDrNh@AJOTxOa^Ej&c42_U0RF z%{B8gKa;uX((gaL1SeJDRHF?J1`L2tocDz+ACxGXj+1GP#qc!ITQD2qtAN4?Ocjn2 z3f$h_K(gkq016n5EX4PBUmp$(A01T&SdY=hgZI30_fqf9!o0pP)X5JO8aVllJ|8x4aHqdxt-w zfZj`ndawUWN)J7FaI<&x6-Ug>LY@F*W8#`LN;Axh@GMqiR=C#TP|AV0IwW-ZLb7nJRFblx>N7Lm04w@ zW3-{41VPt+V6RGe>|Gp=LD#Hc6~~uXpKgGoWtD%q6^M<5Th=eu{%KU2POkFkh{f-c zTG0b%0ov8Kwh1Qu@E!C6?DUesos3%i(~d}5x8y7Oz@1>bf%plpvEz7!6or#rO}!5y z!*OzKYR1!h`$Dj36EXS;d;jt&aEs%EmzuM*qDTOcQL{6%VI0&B9De$Mv@Xo{#R}@&=TBm1W8l5ZL4&| zHJ6%m9}rShxR}#A?jd&eYRJjS6+WpJ@{%kUA>Hd(Y^JYveA&T{0o*VZd&ydMfH{(j zntkgw?`}>)eo>NeK~Ygd$;5#OZ25OlY{&*F2k9CwLZH9Kt6m#_QwNU{MJedd4C3`%Op?sS*w2(~_W$98subIm|TdVcq1RxUR}5xK>Sguf%_}wj7C6 zD9Z1-VtXPA%mb)}Zr1GNl|hK|V7_pPCknB5)IQRrm7UK(u z#UIAY>jRdX3&lXNc5QxU?`?qo;N?Ml4}c3|4Px_{GCd+~@+ar6w`O>?fyCaz_tLmo zz|;MI-GNh5lM{;zCrRc6t<8x^NnHpvz%eoC*h;aqe3hkggtE>%|Q9 zOLekq!Uy}`cMR4o=NFO30<*V~Z&4w?zdA;7P_Yp~o{gX-O0%yHr8U^|v4889RDKb5 z`UhD5QZ4Yv{OFwOI|iPYLMf8!NLD=tp3gvd2&+t_j`neu<48ZPExQ7)r^jWNTLAkc zq)!lmMbnzmugb@byC09#(Z!E~4?!SstZV*0HD-F5)TwTxN4lp~it3hgmI0q{}Abc$OC~iU#!$ic1l|dAto&h~%?qze^*)^wf}` z0rLR<&=SK`22cE-smFltVsxzUR)C+GGY;UQIro*kG$vxXwPBBGQf8(MJ%zKJ>{)$n}UP0%(9xVbp~hX5aUmzBblzMtZUhrbML9u(kv!cGeyG~||AK6S+Z zfrFwH&Hx(wP}_~8{F}yDw1=Q3@fO-fUhcFa7>V%zyi0N%WcHgu-5*2U6$$;OzLf+Q z48SFZ3S8gCqXJiNOnbb}WyT>r-`4t9O&;Of+3p)HjO9s5>VR8LxFNH6=uKfo=jo>o zDG?U2V|HOKcy$-=XI52t4eWS1pqM8z%|mO?SjpY5@-$C!-I&jNuqA2SpI37eP2*0L zyVw5Sj)b}SY4yTsTH{BL3J`jHx2rCC3Awp6sc3dJfhI|V(OMZod)aiHUbY;-rlfG7 zsmi7f3Y7;<`vFsD&>S&blHC{PqqhYgkNWuMxio7yl6_Fbpg5C~o*Cx8x6}BunPB;w zI5mIUb(TvbF(QVBg`HjN5d?r~Xz2&tJX)JIjo0u{|JZ=COkPpNEh>vtTsv0mIyO0N zZ5IB8@(>R0;`(ZD{82VfCeUVXfUXnQ4RZaEj_W+L6IOMQ8bkuxyMk!_# z^a;KLix=P^^?bzrzUyiBUWMok(k?JR< zm?lZ-d$SM48;S{er5%RsL(TG=KYZ6%sN4yU^7#IC>a(Ofom{#BBcUAxCt~|Z`?Wwl zI6G-PcoE#3f{ZJZ4}zm@X+P-sLTmb{w_q9uNG<+RK9n%C5U71v!@Ux|!?zl+I!#YE}BIO!w$OwqR|M>v2l0d23oxcK+;Fn0WO#`qH?kADTq zhUD;lKYdQHLsbYlz}dn*o`-bumoE_~d*n+1Rn*?uNdpLY8qZY%PR+50!WCle$W$VP zYhs3W8CO0clpC1$_g}96C$Z~sBpCr;&bWVd`Z$u*hA)?7+>w6VtAb*O)p2hH*RqWG z@)o!X@hzNZpTi=MQ&b5kq#kY}2Fcw6(v7ZkVM2EsUv{VY_>)+cU@vjOyG31Kmob5! z*k9Of;h4U61kY@u;2l$~I{^OY%DKaSCKhkesgI$c=Tj>`Y6J8$Wh5)cbyF4((N?%_ zgoTG2y|w!qpW4$cy%a((8-zQ`upMg&Sn-^<+3p#whb{X+E>oV`|4;}2Y|o^iPT??j zu?O|UL#kHRBcs@~0ALu)bHO|zBAJ&vOX$&;z>X0Iva24W7)DS|;>daw00|fYRe9K| z`ycv&9m=n*g_8NNRx%OLS%eBA9DaF6omb^dA%y2?ty>4%W|v1LbMdf40)Q3VDjKkG zEitKGOU=m~-mheD-OggxS-$zbmTwM-F%b@RG~_OsTIwi=Qw`OH?)Qt*fK1eR-IEx{ zEpepagC$Cls$;}DNZ6i70(MKNSNBQNXJ3o3guVNgEr!bRCqi{E88ZVzQ?S1x*HI#T z-FO{3W_tNrl+Khu zMwznqmHl1=0ry_P;wQ@WZon=ASw;}!$6yuS4%Tqk<=@}GZBeap;)KWviQ6}o4(VF# z2gebJgJI$Ao9b*8%TKgyo0Hz|0U*ox@|1Ac#j;oRcqy@OZMfBaXTzVP*4h(^FxL|#nEK-I(XjAMha#i$FZz`q!A@_>T43+V?;ujkN8piH}JDsAUN+O5x&=PGT z+OLQp1Kg=LAfTEBWILLkTxtAbpmkpg*=MIr3IJNEIRt3Ou|3c~;GBB;qjI0*2+CDJ zMf8i@=sma{lZLK}cpQugz3qB^f0KKL!d%x?Nebu+j-gz+tju5*sFyArC3PPIEYTZU z?G#{krTl5rY2uE1jQ`gU{WqXIRNLovH)z7E%%4iT0TQVSdgSO1V2KRtD5lVl5clLL z;s7pp{z-spKAiq`*Vpa0&jzwdpe=1G=d{-&Akr^u!<5fn0WKj_{eY10Og*aAP)n0e z6M}oL531oYJ*opkb^5N0m&(C0Ib`B0H;=}iM&WT@{NFUWO)(u6d`gNWi$H6A?*rJs+!nBcdzjFPhlGcm0U1v`QQ~28>u=zX ze|l(;=1MxGATI=WOX2aZI06m0We226R_TB1_3aj z)x39eE{*}?cPBK8`!$d6Pof5dgo#X5MJx`^WtNoxaRJntX;hDlfQ@;W8N|5NSb-{W z9OVR{SOA-T3-T`hl}77-{m@_;r9K$T;e&QHki(p5Fgb3j{#Hy6I8CEvRKw1ubcNv! zoXI)%-jBSL-Ycj)?b5)_dmv8>p#it}W<_b>#=c)OwEvT+LC6?KR>n(_t6;I98wCwv z))7>1yq~e}J!pOK`(CS{c9Xvazz6`FnD;Mm8A?1-aM6CR^xr)6ag#SjClsgdkgj75 z@!nDf6z=&Wvl#!Q3;nSCnj5)^>dla&nfH(dxJ@>y?`fnck zZ*=kDVC1Nmm7Hf`^JHlnXqe7Y>hU$x$`F>duja^wb|o=yL1CpH4N{STIF3 zo%Xk=K_Pi>ZK#YP2~G-3#z1${2IV~Ts5G31sG(B;G=%rB0Rf8)nJfN;>i*Y&{A)n| zH6X`U?{9SRk&F4S0r|hdfb4m!&!3bvxp6SM8K`~c*-3S!Gw1Lnmqt1f1o#fEK4HU2 zxC*y1Zt`8i!MV%U&P=1Q#%y)TMeUv-lam8;@0FLHN@Qp!q;q6yN5s*zTV)mppHhR^0Ql5VFcfT$KZWK9R?4O)qW`QF z%*06e-oO}y=`~7K6EPYpV5@$}KY*mlG#Vm3_JD2dy?G(?H%^fTE+2fU2E1*3SMjA5`;8bxJid0M#7+dKP5xNVwa{G*gIlwIeZ&D)RrskP8806^OGZC#igqV;K^gr>0 zIf+#l1#)zHU@Q%Pq`VmbPTW_@NHrE(Ii_&DrZbB$Z?bcy+4-uO%cdCC1|2PLmAOaqle3{}Gh5!>_gZT3Te-sX`ei-Dee^{?yoZ;bM9jPh@c@^3KzZ!rIV9L!5}c_&3hN#^O-ts6u}cCHgQQeWIz zUkDl;6t(UN2@7K}$#9tKC*9!E(E_waYyo8E4u|vb3{pwFR$&jp{`ELaoR1K2H&ERf zD6$Pw2$Hdau6L@;VS3?wvO7jQoJ+Jl+sBS>0papR*VbrXyMqtgg|T!@&;X$k84GC2 zD(BQGIPdiXR*)!Ix{nDFmGCBAEG{VnD(!Y3Fs>f-aD!9<@06U6XBqgRWJYQZhX>>s z#uG(J(dS{_BY>&!(ixcXTDp=8Mk3RkVTqe51wG8)iZsF}$>I#iM}K-JVUcKEqU5t9 zS(D1(i=UX7Xo?Xm1I+=L%e&JL{km3HTFUNjuTo8ZY%aB5Xqe3XT-}|jvc^NoF)5V# zc=ftMo`FP}*}=Zs^1Q2M)7Vx0&)o#kQ@!z#TJC+yHk;oK#fHr6Cgozxko$hpZ+IlR z%r-CCDeFoTrHuROB@(>@E7Xo5!HEK~JiQfirVZlDjO5Zpt7yQwoFY5*?ujP^({nsk zphU-lIh3~hZRapJ!15)LhEAWkCI@mTC$Vcr=s|<@;>edrWT44fPVJfJJ#g*i29b7x zqb}mdSK?+$aJge$7caUhMND@K%Dm$?r?sEnm8liDrX;kxSdn6{1{T!_-lE&7?H%mR zW6H0M90ncTpu2VSrs)mXP5Jf0Ll@&@u&71>_?aMuv~rZ(YD&uOhWW zlH4pT*~-u7!w3`y=PkW>tM+R|f#7h@s>on|}iC&l;ydhwcOR z*|1)u?G%OW=;xT$FeHWe#L|w%2+e1w1 zsOStxCTbm}IcG^GV~5-qS}qFAfctVvQ4 zXNje|;uUTC3QZqsX-^K#P?c={U>a+S7f>%*PJJ_wu`}tWj@aM3-?wTUc(*XEu75=; zf+ci9Md+%y3ZLZmkf2roe^zP5 zTTsgWs;cHHy@IA}xQr>XNv zU`iKEO-JR%(cw%&a3B6${Ep2fYWNQOu?FK-q zk4q01-5vfr8?A)!5jJx%)-!8@e$Z+DlSjYDdWy2&dV8Wox-iKz>9Z-sPd;5n$AXx? z#gR4+B-AN87n7g<{tMWR@qzdxeJTiSI{EZA5r8}1JzjFBUrU~!Y@R5#;^5G6iLHpj zWB0`k=N}Yhvt6pX!B;!*s?%Ri*SXQwN>!A8XtG3rxrQHKY8>?H2Sykx{_IPySl`xo zD`045MYI;-SK}8GrjSG!qU+wrs9jb_5bjUOu58kkLF?@7++I2-V>43abzgm^n=)~U zg=KC_KEbyho4TBcd1V_ctPb_f{%qLn8vU-*+fyAbEGJa~78*BLC>zl*zOzRSm$hCh zG$TG>6)jQ}7*KtgJZ*RwhvP~Kl&5bWwQrK0?$8ANzf-j5hJ^stj^G>7s(av)TgDty zpi3Fn8}|PIiS1|Pt%93UeC6D3^JJF^Sj#)zc zs91>SR=o4X!2sr)-||ea_CffFG%0R>5KL5q^lpc02i#Tj+mFC_5ht;uYJ?V$G^LUAE&Qii($%H+&5)e4L|u_G+S4ias;)< z?oF4q`E#aWIfgQ1#i1%J_|x;>@+-`S^R8w*UaShT=~iEx8_A$=&cY2(jmvCLYO3!+ zn!N@SdN3l=U)YQ{HdNQ`>#=F(8-)pQJd{*(9+M8a!!o|R!WO)MKwgmwX9;DEUU*F; z%Ol?y%B#g?zAdlgF-q)gF&?sRsf$O|8*OSm4_z>7LV0mPdfsP8hN-HDG4)Xh% z(iHaFQO0nw`k!|orJ<4yxf5Aw1hKtuxqhs2hk*5KO#GId{TASVRg(RA_L^Zf{f2cX z(E?z)dohrtF9noYe2dW8yAW-WYHh@Jl-;M1dkm{bAD0G2mt04qSz35!9`jC5CX8dw zl=zmHi`wYyVYMTW*UC=5z%q$`Y{N1&m>a2-s?h90|Nhl%f1y<6;Nsh_MKS5UWscd7 zR*$ZtQ^Au+ds2+u4eBs9-!NHcNGA|@>Rj_`7`S&OnJnMvb?|foT=zLh&@f(|J**F~ zMEEGdl8pd2D|7R^+^W*MHm`PZW|NIE={am{x$*aoK*MJUmBfV~O|B-y>>ZCkTl5Dh#!=s3< zQw=RGFEu9m9;(*s9&B^-j)(Tk8>Y=UYR2mz-FK98q`h4PIc(#*4iFd--m)2*8!?02 zCUTSSKPKaLzVv$$b_24yoFaWx`Zfse;#f|{)G64P_8BW`-UuQ#NjV4YxIV*O%t8B5 zMhd&l?+|cDH^U(*H_WQ0EbaiM6c+S3#_9v$6@J6YLJk;r&O11~6p;k~B#Fz;e+*s5 zzyKw*@3pq4aqa5zBQKMubS2x1%d?#gT;nyUkSjm%jL~Zq{Gt(P2tZP>*X`v*O+U^g z1dDy3x4-zOKLO<@<$K8<#j{_MOAOBckuSvR76A)6(C)NX*Tv+WjIG=YL#&~<8fCB%OO`)#058Io2Q+r|$YKRxxhyAs}meIDCG$E|Cvy-B*$3Rcrp17FA)~yxawS?ErSZP&1rnzm4lYB(LiDOP8n&hz`V_| z5c}nZ57ZKFGjnVVnqKCv5OwKu zieu>OUATERy;FA3;|RNWQihuyQi8ssaNvv9gL2U8$KmUQ&&KKC|2QsiKI$kCvVp z;NYfemAn)Hho-{p`{>Fz^*uKKevAEbx?siJV6&l8vC_3iB+68!G#qlK-LqGhfB2<8 zsi|0?pdrzb zJA>?vT;f4aGbh9d*OD|u`TsFv0CAXaZ?vznLwd2sFY+H+f9p+Hy}n^wFl7o`hr^6% zWj)wI#W7Qw%zXRZZxsyA3lovJ;F1tgO4vtjz9P^mM>#!9aWI}5c<|(B-i63R z3F)-zP={*ahMCAC**oy!XFp3b5WwO^n^(L#pcpLo%$gyDZ4RBKSXcUfmRRdaIL4_o z1Sc7M*T2_yQJdevB7z(FSZ4U~3@7jSSbux6JvP*Ik>95thBrO&ww*H$K`$hv;GtpB zM4sVNVu-eTDZt~NTrt~35ZmPGRZ-oDeVXFx!)RrsPIpR!@~1q^K%uMCWg(HSclqp0 z7(x3IZn!pxTofvAVfK|zF*r{Q6+dYjeG66y)Uq3(vA0K#4*$i}imb~kBq z>+Q&6``;rCm0`!7sC^??g@4P@zsd<+g2sZg9}sUr#a)Fyz~zSta^XyZCy)xH1(Ux-e&V7|50diu^d$1jF}2l6h6M!A4HRP<&BgNah8fJyGTh$t z)2n2`bu$zR_R%}rHNNAo#E`1A~!wfbP0q~gm@KMCC) z8y|0Q6gCUpK)Pw}muwsNmDql$5C{?m=l8b1`7UhB&=n7NzeodkLy_nhyAZB_Q1^z) z2=?y3FkJKo_gB6`0K)#mM(;1P09FYOB4elzI>zCkI8F`5J8@8ZzP$VZ z6CzZSkA%EtOvXJv3r(_!&O%E~qhQe(bf4!f&lT%RAl-)&-tjn%+~u9g*ba`2WNOyX zB2m^E#Qf~*AJ%b?UvYV5CCR!YeXbb>iS{!wMsuTag@I2_q_w$Zf7~^h`c{!$kpc|K zGBhY!C5U=x*dheC0&DUfeWQ(!?Cl5?%F|*D6|OF=U-e%t*;!9nZo^CvmkH&wpKkCv ziJfRTLw?I|b_!6fcKT>r%+RUocFA?h$i>HIY8KbO!S?BM!_}s0T?O0$%yfCxGky>G z4}l&iJ%7}lj*{fR|C`7MPkW}g$7@}xeCdg-M-lp&yCJAR=c3GI4F`UUS&mely=N(< zE*n#fn#C3Y8Zpvw;c2rl@Q~l|kDv{x$4%E1%wB3o=)C5&{ounA=$L%RKO`eAYt~8i zp&;t2N7&b+XYz8w%$PApSRh#kG7mPP9Jv31^4Kbgk9CgmdWN^n>Nn-F2;Cyd9t(4@ z8G3`KQsonpQ@BG4Op!ck}OdCvdj90Gv+e=4Hkw4ZNyv4#`C1I@$mcbGK-Ib zG$z*|yg>yLo6d=bakk!@%4~?dJIOM!_u26G^rwD=y&ulW11*d<9*kABy-zVN2CE$a zy>N^2_}ot64fL5?y)R&b#q|ILPby_t^&SUhtZ9O>_$W-&-@M>IEjo=dI50_)@AgnI ztIFe$a&I^?-`C(|A-W*%TBnPR=x5DYl0emr&4(YmBXr&APht&`s`HeTDj;+Ve%j3XW~V?WyoVXOOywdIwHPdZAek6*ni)+wU8Fd7gY z+0YWr|8!jXXgmJ2pug@Gr%AJD**;Kw@a~ZIsYZ3PwiGL6QSgiEk6P~}%>jp?NDGq( z-1ooKdqE-kRGZ>QpKrvPGl6tkQGUy_w0~b+k7%fLh|UA?L!)f7QvRvIQ0YdsiuPu& zqC(c7t^r8efq=Z(p|63{q@Uzr=hyy1Q-kfVxOxK^Px6Z_k@V4J1$f~yE>=ZRR@D*? zYRY~p1a#aRayiT#iKc^_J7aSPAqv`Yd6^`knxK2|3F^A3FQ62DB6G-_i(O=~%g!jkK= zq<$(a{C7jZe8YK}*y}gDE6eGJv<(mbaW{pIfLtsQm6wl?eX8A5d)}k(?7?ASbl8Nu ztZv)GtdYfL!9Zl{$6nZG`d#I9$S)flzEfnr!`tgkZfV9Gq4hXPU}rD{4lTiq=*dvm zq`JV~9HXiypFbg;|2ZQsFVArD_0ITeM@vCdXAOz{S^CAdf~N5lZg#{Ct*sFfA$R=n z78T6NZafN&vaao0HwhHr(~QyFGPqB~yYkg`&Zck#82s0jd!-F9por#M8>@7!)AUmA z)BB|Ti9la^lCV?3T(@*HHaI%kQ2SY9SgIoRYi?jcrWJ9Gdl%2k-!z(Dsfmbfth!mD zU+`S)9~b1m`5^Jmv3QfAv9AXM5~YX%mj+H%T}wwWHU}97)Nf;}uw@vda$4i0e8|&Q z-@(4J{N2UT4I{fZD*q_un;^3Y;hI|8E-)b-InnK%1oIK5StS>H1&B{5=NUAN?7A*g zuq4zG;Szxv|QIs~@!oS@Fc+FGk=UU@MogH2)z4(J}c582E17z#S zd@JV025nm+T(^--UiLP&r~CAjyqt+!x~7W4fzQ8z(7<<>juy}bv4)G4y1~GNuz;e< z-pbT{XFa0QlZBn`8pZQ8{+3srp8CC0HCNrkU6t_mC7|k86*}0}SN;m|fPc0v|GU3> z72tq8es$&qRr`}*pJ;jz1?4^vlW$eSs8!(96^xA6QK8x_-)$s&%eB`Uk$@e(LiEp< zjz;(LNFT1;>q$%ld}CKDtGPiI+I!(*8L+lEmk*b=dGXM4RuFs)p@gR4E!Iz4Aw$+PoA?7k|FQj4ZE9`N9Ze0Rq zo8759apC>n#RynKvb0^i*Cbewm2Q#JvApu#nXdPmmr+svKfm13`aZt+I@aUva%M!p z_(b}_vfDQXK9FX1!NAkG^M;Nt!?jW}baTbaU9eCQmDK~H42FHcNOPsc*I;MTd#<%0 z#{a?tLDhJnggd8$P767GP-|udaYKpa7arb{J99ZSENf2|xsfh1^!G@~*WRx@nDY!f z`;VLZT=Yn4e^kjD5CadnzEZSUqQ;wU?M^UX;Y@?7uE*7ZqCJYzos=nH1RArn`4hr@ zS$UT06Ow*jEi`Njm&yBvhkQAq2*OdAdhRRHFMGV#?Bm3h+mq@(xTH`xoeRVJhT#g= z(P36%rf_EU#_5i!b%F$4w>@v`IVo?noqv3~zkG0jmqL?SE?V;J(U#-$DN=L|Or?)1 zDh?7)3JcN{NRQ3<>nP|BD1f|~jbL+BX1bEl9oaN_MfdF`{w?EYt)3GEElW!0&UBCX{D7Ig!i4PN}qdiqZ8^<8| zM7+jZ-uYEB)a}0#9l@X9a2J6j|3BT|O9>wpHPL=B^$a$rA_)&BHgNr?um9KUXrpg! z`HsoW-_-7s2bp7o91({G1%>yw9kB4*?2j)(vj@c*&~mN@(y{zypO3$BxMVa#$2)TO zf3hPHRq=x-gJWZ})A^=vp71(#{)+tjX9f|>(Vx)mD371}E&_^-)BMFfeF^-3)`NG8 zk3;(4Lpy7&cUApnk@)e>{_{T`zFphl(I*_I>Xaw8hdWh-S`{v`-`i>ollXAJuGKE8pWp_GclRgT}U(0=(yOz(D_ z$kY7GhWzDqPaQ`bSjztsF~tDO@p^an@vjF7y&``rPb&P*$>XgNp^-s}2?qg98LE2x z>%-sA0t&2$9R@bWa))&wP04g*Y!a|>pxxd4I?Ti>z@MyV`nWjNtM@g|E!1qdIIb~ zMkz@&hz~pg%uL=r`}6oey*hD$#RY7=3fxAspsD2dmi_f7#p6=$*~3z9AZ#7U6Z~h9 z`pcVm!k$sPD+)k5ZiAcv@zrX9>j0%PCsQpDSUmK(U2?-(LsNGd~u(4;e zI6_^M28+S7y}1=?135R)aS~PHfD;W|QI?(cIi~Ia-b%lknns*NG0zo8jo!YiAX}o8 zp(ejR+m|`MFcF2oHw1-r;0_5?@_KwQ!~tIr!&6GL3!NP-(OzC&eyLTQLd+9LLU)@N zJ(al4`LQk4y}908ZVZL1Ra^XF{lonvUK+z>Y#M%^kVdJUT_Fmw#-o681K!dfy>)$o zCE?!DDX8*5=UebyjwKYlRi%vb2HfP%@dWdbYV_5LV^O}{dQ(F6{~ld{tmAljnA zBm!OTx4am`0)xU?EW&JCD@2B2m<2-1c-Mu#Jqu8QZo+3##SCP5Lz}+8RWQnzwg`hF zp$critYV8H*BdUgIXU)e%7U_31f};Fsoh?MGOM?<4j?>Y%XfwcZa6pg=Ggna<6U}2 zX5)zbq>$8@tI{hQUg2V4k@a}F!R76>CHKBE$9rEH$+WCq*iE)+2k`vBX=rQ=2D*Ts z=ROLtp>Of|7DoHUk-|~_`%1}Qzqe0@pSP(Q?@_zy=$bS^NqJJt`hXdDKBRn3p`97d zX({9{x)``O;>-p&{a;<+eLc!=A)&&dOcN4l*@8@VXEKgpMa!l{PA{w#+fS43mgU;W zO$<5?J4+=uUtj}K{qsnl6~{rPj7fPfX(6zSuB%c~`F18rh?8!= z_`|{DG{vU2j+0&zv(sap-0DKGu{$%>SX4yyW22EPAL}YJIEs7Gb@(f3`PK4`%u75H zON&%*aXnu1K1F4tI>zYTV!O{8>ht6bknUU8-T?2w9K8X{#CdL4(7aJ#rZUtdz`fYf zl3}3O(pF2H*k+$K_&G63y5n$AC-7|BIa*H<4UF>jod+i*>fAcKN;hAKq+ymj3{I6J zuXlCNo(9J!o6>`CLGfk5eJWtpo#r6`dCt(9_`0%@LlSZE{7NTAS`;1Q-i6b3u~Reee|U zJexlpDgyYsd(+Y5|matwpmbuBivuujbqYiSkF8`~`8SbthfzyIlg zp38jy`uqqb@yo6ctt0h}PgbTs9S}ypYgj-moMu%dYJOJ~biR4On*~4Gc}cgmDMLNv z7Rhyg5lPH)m&Z((?X`v<+p_acB`Q8Sy=<|wMl#jjwRJ!oR5jkXCuSt;p#(}=XVeW^ z(?`oTw2K?MV~d}K**^BQzNQ~{qR#Qt0RxW*`Q~_{gap3R+GgcSz`jibo$C314`R82 zctu5~`!jO!GZ=V09@v*Rr?}AqfDpOw$acg&Ld&L_5Of`6iO_XWw)5RDzKyA{0rHNw znndw=0)0)c%`w0)kGgLQbwpT!FC)KKTzTW_G^~)ScD*j9uhibpZbp8SGox*e*8_eX zw(5ltg1X=96p>2+I3VP~rd{4nSZ%XBZR1MbS2XwVgYvVLV%pQ*C?$R71Ik~KwNe55 z)`MBTyYoJ4Cs|wE2pi`%j?>!54rhcu25vr1qI6YyU2MxvsDe*(z?tV~7N?g;z7e=` zecL(ppsVHvhQh^>@zHxd_SH%}`KO`1lRq+}l6Dv`du4l05a&i-@+-+vx_p)iaGhXz z!JKN!4*gvf6%{3OF-((Y=Sgec>6FIh0Zaa|Fx7qH!U~O?ZSRK(w@e;n_LlVs+AP(m z)`M_1&t_aPS0%`vx`J({2SLpoDKvK$V6W6%-KX-rmj@de#_J`;B@ku4P1beF#SyJh zobo!`J<}sxx%8dn{Ggh2M>70t(Z<07w{FllQ_O3VItnIkWV^I%ree>q^qecm9DQQ! z-1Z~M%sW|OV{2>pBk|kv@Q$U#Q0c>Z&;8Fyc2hTi8))f`#Sx)h=73eKkM5;}>$J7$ z{$uIk?FzlC%OQ8;y63d#L(?;=MAo(zKW`ZP6b;GH--|1-?CIJ+2+-L7oQLYKg5JXY|i#*)uhcV7sr${*(=hrLUTn!sTt(W(G7wWHrJVM+} z+NU0t9;3+YUJpywM&A`j`CFl`@}59j6q6u|3rd{Obp%^lc}C4hxeN-1`e4|PX#auz)wfXA>Oha{`Ni#}4>Nr611+7w@!Fn#+;6I^&0Fr(Ba>ls*82cp$gyewVQGIplvGerQvs8 zh{cy$M`hS;!JL%cK}~@LM88g{svCCvQBs(4#B01@_>y6NsPpxK)ap;?*<8Ba6DHUY zW?@-F{d_8pTZXDHB#TvJw@$Z)Djz)NGus31uezRQ(rwI>1;&n2IT)j<-8n6%ajOIM>8h9~PlYD^3wa z`vSuRWOJj4tyKAb7M%`=y$TC>_Utw>1!isu6at&Rf1%D#ds_7&gcC z*hisi3#8(d@2tTkzA}(0&cC%ak$KaUxca(f3(S7QG?!!Tdz8^&LE@l-v;dcL;@| zWy?HO1BHh+t|qzBJQ9H)ZTeAU7%Z?q&j@rzsiX;@lGOgUR1$5VfJRo?`W@$KYAHid zyKwOL!oLAj6N_%CMqYmY>zZc7=o2H!3D!jk> zbai^@Y6f$+G)TH8DK`;1$Op#E8LouO=%o`-@hG(LrB_l0cO>?4e!8*d)8gX6FB-04 zx$=0=KVoh?Ei2N(%tV;ONwY@<0>VbNO&*Lr$5jB9&cS&!SrxmfHX!Cwp-Hp}_9BO+ zvzwLk{U6`N!==2J#p?k^Qlga~ub=G7C@7mk?VM@GSFpfns`FUKeS69^QqtQhglhY_Uyfx$hyS<%yr0g!&I^MSwhM14GZ$MIkbodHpz=C2W*$IPgt_(k~1znKT*d$VHx;X+1Th0sDyk8NLe^d zyK`GcH4_2ILmu5rZqIzcJ)E_;7&qLO>a@bOAhbi3!#-jfldHWty+p}-Ki`P?HKTGs z5Yhw5=Ap(GAlLKZ0j7!den6;xtq9$6vEY| zu}9ZK{qos~g-b8g&`=Rg@R_4P`0{levzI5(`!RrtdvIw(#`I~zC5&LOQq~cZdjS%1 zxmVHq!I9aebBPUh5MjJcg9~2TBS<@71Nb;|z{iP3*Ad$PqeS+Ntm(Qx)H_vdc z*?}ptxJwR-2G>c#j|!Sr5;QR)AZ25wo;&MYhG{z?6EUGG%mnMh8}mcKk*?Q_nmRSP zlwW3TbC`a+W>z7x*|{Ak^!n@uK~6Ulg9&w+<@vTYr$*5UZ6Om(RFz zvH?eI<0yViQN-L}i720g1(n*+(!^6DqXsbN)eJkJu%b}jYN$$>>gIrcrEL zu8PkYg3NswNq0uU2j0rhZ{93D7fGf>iV@&XEWCeqWh2;=Bw&Fl`(rI$C*Q5gq0K@7 zkJ343If4}mSUXkbrw6)NCw3`ozC1Z~uD)QjEal?QUG2~_<2vUStF3iHXY%OM6Ac;^ z{@8TnFBFYSAL%E(Ajo*Q_7kwq+fd~!eYops^%pxP~TAq z^Go}8VPJb1t&ai?;{o0|ZaF3uIvrjQ0JT(Z&#xPDAnEiQAk?_|CX7inS6Ah1x^5H# zu-u+PiH9A8j{{v}7l3CEhROq7wp)3jZ{q!YWPnzzGw7-Z&lpj^7eG(iaUKJYXt8=p zRc+v8lm5_$bMUCqA3DMtLMKC-jmgo`(6T8!YAR$eOi~NOFgyD=yF#1&m+Z=2C7Kvr z8W{E@-*fF9t|`*>2wL_?r2#13qKU47>{u6*7a2|_)@npbDgJoH@-vQ8{d^hBi>GyV zHWu=q6xn3@E;03vn{1z)@!G{Dx}(-~8nYO;Gs%KgiJSC}dsgMN%T#|-M8!vN>R|D_ zufq#_3+XarPkJy?U*BB)Q`v)TXzgO3FL}K^FVV zV!Zy?YDa6{z)(g_p;yiBZJJDU9iB>kv>IDIp6(^L=B^&8hylEP-L`~>u6^Z(ifU_g zQbtXAbeP{gTQeUkP&wNbX}2s<)_!>P5RtB0*OBgg_<4qrY`{Ov3dQ1i~SDCDa(@kE7DLo!4f+_3Up5aGs}KpuSA) zzWLCKe!^P#vFH>SY6HJ-RO4KJjWpa1 z!w68v5w#$7_Kn_sa{xRQ7qB(FJdqd*#3^C(J6fF|3r+fNzT>bkKK=c)usfS_Aa6Hb zZcC9a{RVJK4I4YLXGLb(uK(PnO#8%vGF6l3kF?7q6)8;AYNP9HZw$8y)!8ELCby+& z?*{_|RpuGru@~TFzxl#573z?erS}??Z2P@MM8LD^S}(BUtOmv6ykQ&(8)XZcd6xXH z1D5`)B#zSQQK2DMIyglnI6e)B9;aR|GoEQ>JF^Dj?fEH>>`~TX=M5IpovOtgdsrw} z8c`Wz$Z4$~_u8W5cc?el)|AxIiK&=GA+{W}Gy4b6sj+P4f5MEo8!Pm5ZVPA~oU-pZ zIb11Wfr9H!B{MCqiC@1PW|EVnOTgL@pAt<^+(kzSf|zw)tNS6=+IR6mtjB(?ayP?A zfotEg7vy*kcKv3#xQ!iT?q3%^dpBKVM9p<>tq?}=Z_Fh&mMGKZmvk-!2vkOLn=(xc zuNfnA-vV$cd)oE~m5khoJ<~b-8~Q(=u5;8mo+H8+pm}Xv=Q#NqNJQ8D{y<<%D!bHD zu)Th^YMWsHO!FL+E#`~>@N;hhqKSoTghn@{X*vQH+P;s&y(x$Vfoqhm^;Vb794EJ= zY!WTqhX+X`ZRI&eNnc~wIeDnxj0jM@9szhIgZ?E-zS^idQO-B(37!!F3onSMf{E^B z=pizaML#6xIWFkb0h&IYD8$}ori^whfZ{}Ry56D*fih!QZNDhwNDz!gqBG4?Zu?U< ztcxwt=I57!DtUJYncetMC8tx2M2B8g*UjzPa}&^Ou?%`HC?f%!;;K5R zfIIMX0q1kPnOipmmVIP-ONt7Nhi*!S@qHcMKL(Rc830xjGTV9Hi6&3iJI^xTQ|%)1 z9T}hs=(Rz2tmXmc0U89g&=)!v0H7Rfz5GMqgU69$<~aI z5px3?g6?)nEYuf-l>9Bocrxi7^(xak=Y`>uV?VGWdpIraDwLOX z6Tv8aP)=u7QUCV#y6XGe;hpJ@rCL_|bkNkwdwA@xM-t@ObSYlfFpu>u=XVS}W6^M_>LAJ%(<4@j(= zsT_LsY}`KAu2$;k+N|jzxb)QP|s2xf!^$?WVU-)WEn~oFN+S(K$ zcJJ$H&GV)|&6<*1QrBkR>v{~)w+bKFWpq(Qq%O=mPiSBE5M1NfiAS^|HkF3mCXn3~ zWU(cA(fUca=aL!an1(h=u8`T!S57YwK&??KDjzZ5a+Ch5(aL*ZqI<21h6VIO;w?-f7+dgC7c7M*hqJDe7rs^nuBEA3xv z7DrYU-9A0?o=2et9^syr-M4X@p6HXaV$)bv-#6Azv#{EgDkLQs?5vyXjia!7mzkKP zKvkE?ynpCHL>Y04a)}MGv7Ifx{KON)-rT9Hx|L5V5as0pZ}}}<7WFU+0o!t&pk>8LWR#Qg=9G!vPH}7I$|Gld_LF61Tw0&{ z0-3r&MM`SuD>7bnS-~|+c|(&j=au9JTPD@pVRWSk+e`%iX$qc37hGirrRb89l02*L z6kBy2QtumoXvb~aj`}x`y-T+Y1=xoE$hD~fvC3`6b^J^q&zf_oT3Z)f1p;`JH9A>4 zodBV^MzS;|k@ET0C-|8pZbJ{Wd$QH@1NQRRIJ0agWc^EwL5d+LOB;B+=S!{DXC?Bc zV-Ik&l_po~cjy}d*j)ROb6lKt2vdgDkEdRJDF9|E-uQV%6$2s4XqBP9lAh3QtI<~J z#%*jT)$}HPcc)o(%nRG6hFQw4>`fS5$u(s#?#d{6Mku0cUn=}-IB=euK>7Kk-)!v0 zDmm-gjP9d*tsYLvYi`T}TK-7H=gBw6So_NmYY#FO5~t83!C--Obe+wOVYL%bjMG`e zFTOSbL4xCp;e|IQy6e84A)Y+}2!jPho4mMFFh}}*v%@*|W|~_cHRwvz;n_!@>#>f$ zCP#AU9R5>X9I~z7*`k9qYP)Gw~I4x zo}AC8mh+gXC^nq!?LGYfyXgCo(Z&HrdyXSHsxI2@%F26aX?DbA3(%iV_aRIj=fH63 zaqb#|&L6vTHI~NP{ZTJPScoe*>>CpllBG%O0dAogf*-YWeZdm2im-9>aSh^y%Ba=_%Zh#iSK?b{0ox9ee(|#Y1w6-6J}s4P!^C;q^thL%PvT}j8ZipnDciUq_ain z9}BI({;eIw!JW`s#fD^FcE=)JTG1zr9uGzO)&RL_DNhfszIp4RQ*!y(DN*{bPRZmZ z=7Z_6Et^5>E<+T`?gdxPaF$}-eEVYQ6FyM5y1PCv`9=KC@<@ zjnv(k?PHni=MG>tq5=gqa2x|LLngiT)@onIKNTNP4k-6{y;fE2s@J7jNY(h}`kuUN z-z=}qoWudG;^#Djp;%Xl0 z6t>=ILBgYNmAvdg(0+VZqp0%wM`oKRD~^dcE3)XRpr?c2LSt)d2t$mMnvUBX zopEnYke1^d%O@H-WrvRD2&_ogYFvhfg496F3E|BV;Tx9w9K6YroKrmuIy+(#X;yUs zb2g?s!r8hEr3ePqU8dgi#7{U3r`2|9SXne3Uaw5+o;%gwUuvH}*gf7F!G%e#R{sTP zU>4eiNVU7EclCh4uOr$h_p)iet!vpVg|!zi#Cnw@-8TFMitZP6X053*ok&Zf0Pe~< zRp-HHGS15PDMr2Htpayt2ML`DY;?uhNk_nwh*`2^-?#(x1D7D z!*T~K=CSteP%6$f?E@A=;JuKfv(=Q`yV||ZEJ~w|o=ojgy1;%nf_+DfCfswXPFD}H zA+}C8Jo7AQ;5tlNzX63<*mln9pYfNnK8?JWle^aikh>?QS5_Z(nIUj~(2yWs#@Hej z)t#9c`7)DSt=O!Oc_WaNOj#9#Z%H7Gd*=O+)3{SXqj36u_CTg9{|r{wpD@9DM)MF8 z%;Xnk-2O31%Vi2_*cu~v^;UIzAA zi|3$cXD}%^B!m`#&4Vli@z6`&t2{tMzj_|zLMZ(bc@FO34heyR_t)66FFFNweYa)^ zdhkX4#zCdCLAwIqLWx@FJz{qQF*9ouuyBpuNZ=9(1`hLt*Nv0Uqp?vUK_ic;;NnIc z0FQtW6EWa%nh>MC*6-66zs}X}m8b9sf&gqWGwE~#D z)rNg+P`cM^uqC6ftsf9rmUb6+^Tw~1hEW;4`f5^HI~`slA-m!Pc-$#Q0cYRfWaA|9 zyACsfV+|K{TU=VUor+nXpM~yE%fVqH)i%#lp?K|h?mMI1(t!4O!HxUXzEYm&oAtU# zTpx_#=Ty0sW@hszs~74!BGnNO5z_$|$kMpCkO%zY_l9eOWjOu{Wya&r-8EpHf~mo=51P? z%6*OkhHzPxkuP820Mr7@yagiIP1DZ;yaRYw6q6>IsiXYxr~A9b_FskBrBbQQGHhe! z*xx8?73`(yhA3@PTTV34AcNH#OmD|<`nSAkP&s~Q0B4Sb1g5l^m(f&8i7e69%;(9^ z()8##)0HAF?50g#YT=-jujywjSpHdzIXaWp@NrL8hT%qh(?-Q}E7G9?{0o_QD2YuE zHmGWPZ&X;VP~vxiy_q|5?7s5FZ;}301e6RHKQDK0TO*Sq(-PFZ)(YBG zJ?9oc<1>q||Hdhz4|@afL9G?1x%q62-6-sKp_SGar5>r!M)*GdJM8{$s>9%uQrslX zl=MIvo_8b0U|b%j$J8-5z9k4Wk(li=f^v_pa>?x4&(Xq_L%ou@W{N~1QrBT*Z z+gVca&R+R}r;c?oLODsK3@7QcDAw%^ha%^u=ueJ5V=N9~sV2M_W^$E^!-Fa&<LH}g5r+aqXmzToW_hhW>sy9G852Hp&{1^0ooWOOfrw(UF*(u?KBpC#M z1dpP)LuXNZCF%~$6Ap4VQAdw&gv)?V$Xj^}(=Pg*Sz~+EnCcAtKtb-j5rHu0okUO9%&QehZc9GNqI6t#MLzqPkQ-+1e(Scd zsxhopML~=`2GyOY(wA&iu^pF)l%K6d_XUAdjx^dR+s2njKm5d3ped(d^Aizl zz44t)^DA*`%REwYPh``kyfq(VqI^rj z4(mAan(!Mm{`uQ2`2JM88K4x{9_c=)F1;RNxDdyd^Dy#C2opfNo%j}=q#{^%ZznTA z##phaz|{QI_Lw}K?#}Xby~pv)LL=dmM9^2HkC5$iPks2dpF@`)kRADY`Q`q@<@abX zJ!}Y+-rY!b)U7`x@H@r2TMpk>Z*sjexAnLifO&M4U$7i^CigcF3}kdrW1QvNQ^qUx zlzEN9Ih5f?lVWe0w;VM{A1J~Yqd}3oX|Q+jS#n|I>Oj;GiEb3c<)g4Dqc$Qje*9@OM z%>V!esS>NHwkF0hm(rGbOT)pEB;P>}9}zy>DqDAPim&)O9CPZ-2e;)9N}T2!M3t_@ zzh^utLQRj$^tR-G+W%s@exkuC{?+aA25111<2L%GlkVrKN~3MQ1Y-@;ik zlw=Kdr{(f)`*!91%gRgTUvE+mtY5kt2X2*3yc4Ehi$Yt4Q2zje4eG>J=e>CNwoRZ z#K&=pM0pZV$9_oh@~GEsD;fae5MOJj|6pn?W=2&SCMHUkNUn!*hrw zQ>!vpkdpj`(zdm&NMRi41AsV_7eDGM^MH zCP(hT=2ddtn=69fjEw{|iojEHX!HHyBKfr@^XMJ`h(B_3obU*nu+OH!T%d?HV$a9U zcudol@2!}B8TeQWzgvornyc?n#5K!Y)vZ{xb6I-pKaqODtUoYYMVP)NN%JbdqeW?h zyq|s+so3NcbtvFDy{Pblz|+CgdtYU?f5Tz>M()(4pv@Bd%_kMNYG<)}d596R9F%+JeF{gL7b<%`dctlA z@i<<94pGQ-KSTuEd1xIanqI)u0zGYCqh~gJ06jl76Q%vg^f7*DNOO0prgm>S$&1DJ z+1jaAP_e}7ATWI;+lPNP=WL*4*kO+lw2{V7rXg`t{!0ULyoFY?YUb_cPwG zo#wwd3b8rurddLPPD@d?QiGGWcFq0)K0;(4nQ|Z~XgKaP`gA^WoIlW)oZzJ4XUOV~ z>PW@H!~g=fS$kx&iPt2FRK<(OYVY38kVobCXa}!XgIJS<5Mkqc=&~iKDYJjA3R32F zCI6{b?W>sE^R@KsGW&y?%DT!ZWShg6Ax+Sut;;^XxkP*B0y#^_a}XsjpT^disPpZ>Blz5C* z-r06N$mnnB&GV9Zc6N7_&$0i-C9a3N_-d>cg`j(-aIC;&BL5v;t|V?oLlEO zStc+d0yjzYq$@+J5@+dty6w9d0_rok0eMx0uZKE|kRBbiq&n`G_jjD|BNL3P2`x~K zO>ehVFXUD2yjhpe-}Uve_HjThs>!gZ8;$b3j%-WhQbQsAN-PH6YSVGbO0v2;WAPw@ zn4{Lw<0F><2(IHcOwL7u{-kR*HELaRnLvQhQ>P9-Um-DG51)5XTGGhwJu^Rhx3q}I zaW)vTrl|}7lK>?%Wl9pY10>TeZpAp%I_BdxJ&EvT=0we$7h6vD8b06Tg+ywlziIBr zrQ96`*I%Hw3b_7YyXj#ZdKwS~>1$oss!~oEhwoUG&0eM_$)*t9MQ)Uj_aJ05cy

    >9XDe|G;s8y*vpD4@^5c5KCd}`SV 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 &B&ULtwO$ap@t4&FZL_qXF^^O(}Z|h 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 Date: Mon, 24 Oct 2022 14:15:42 -0400 Subject: [PATCH 016/234] Removed KOTS info from TLS Certs and updated links in EKCO add-on --- src/markdown-pages/add-ons/ekco.md | 2 +- .../install-with-kurl/setup-tls-certs.md | 44 ------------------- 2 files changed, 1 insertion(+), 45 deletions(-) diff --git a/src/markdown-pages/add-ons/ekco.md b/src/markdown-pages/add-ons/ekco.md index 57dc3eb3..986d0849 100644 --- a/src/markdown-pages/add-ons/ekco.md +++ b/src/markdown-pages/add-ons/ekco.md @@ -112,7 +112,7 @@ The duration can be adjusted by changing the `ekco.envoyPodsNotReadyDuration` pr ### TLS Certificate Rotation -EKCO supports automatic certificate rotation for the [registry add-on](/docs/install-with-kurl/setup-tls-certs#registry) and the [Kubernetes control plane](/docs/install-with-kurl/setup-tls-certs#kubernetes-control-plane) since version 0.5.0 and for the [KOTS add-on](/docs/install-with-kurl/setup-tls-certs#kots-tls-certificate-renewal) since version 0.7.0. +EKCO supports automatic certificate rotation for the [registry add-on](/docs/install-with-kurl/setup-tls-certs#registry) and the [Kubernetes control plane](/docs/install-with-kurl/setup-tls-certs#kubernetes-control-plane) since version 0.5.0 and for the KOTS add-on since version 0.7.0. For more information about the KOTS add-on, see [KOTS add-on](/docs/install-with-kurl/setup-tls-certs#kots-tls-certificate-renewal). For more information about automatic certificate rotation in Replicated app manager (which uses the KOTS add-on KOTS), see [Using TLS Certificates](https://docs.replicated.com/vendor/packaging-using-tls-certs) in the Replicated documentation. ### Internal Load Balancer diff --git a/src/markdown-pages/install-with-kurl/setup-tls-certs.md b/src/markdown-pages/install-with-kurl/setup-tls-certs.md index d666bee1..8445ce80 100644 --- a/src/markdown-pages/install-with-kurl/setup-tls-certs.md +++ b/src/markdown-pages/install-with-kurl/setup-tls-certs.md @@ -6,50 +6,6 @@ linktitle: "TLS Certificates" title: "Setting up TLS Certificates" --- -After kURL install has completed, you'll be prompted to set up the KOTS Admin Console by directing your browser to `http://:8800`. Only after initial install you'll be presented a warning page: -


    -![tls-certs-insecure](/tls-certs-insecure.png) - - -The next page allows you to configure your TLS certificates: -


    -![tls-certs-setup](/tls-certs-setup.png) - -To continue with the preinstalled self-signed TLS certificates, click "skip & continue". Otherwise upload your signed TLS certificates as describe on this page. The hostname is an optional field, and when its specified, its used to redirect your browser to the specified host. - -Once you complete this process then you'll no longer be presented this page when logging into the KOTS Admin Console. If you direct your browser to `http://:8800` you'll always be redirected to `https://:8800`. - -## KOTS TLS Secret - -kURL will set up a Kubernetes secret called `kotsadm-tls`. The secret stores the TLS certificate, key, and hostname. Initially the secret will have an annotation set called `acceptAnonymousUploads`. This indicates that a new TLS certificate can be uploaded as described above. - -## Uploading new TLS Certs - -If you've already gone through the setup process once, and you want to upload new TLS certificates, you must run this command to restore the ability to upload new TLS certificates: - -`kubectl -n default annotate secret kotsadm-tls acceptAnonymousUploads=1 --overwrite` - -**Warning: adding this annotation will temporarily create a vulnerability for an attacker to maliciously upload TLS certificates. Once TLS certificates have been uploaded then the vulnerability is closed again.** - -After adding the annotation, you will need to restart the kurl proxy server. The simplest way is to delete the kurl-proxy pod (the pod will automatically get restarted): - -`kubectl delete pods PROXY_SERVER` - -The following command should provide the name of the kurl-proxy server: - -`kubectl get pods -A | grep kurl-proxy | awk '{print $2}'` - -After the pod has been restarted direct your browser to `http://:8800/tls` and run through the upload process as described above. - -It's best to complete this process as soon as possible to avoid anyone from nefariously uploading TLS certificates. After this process has completed, the vulnerability will be closed, and uploading new TLS certificates will be disallowed again. In order to upload new TLS certificates you must repeat the steps above. -


    - -### KOTS TLS Certificate Renewal - -The certificate used to serve the KOTS Admin Console will be renewed automatically at thirty days prior to expiration if the [EKCO add-on](/docs/add-ons/ekco) is enabled with version 0.7.0+. -Only the default self-signed certificate will be renewed. -If a custom certificate has been uploaded then no renewal will be attempted, even if the certificate is expired. - ## Registry The TLS certificate for the [registry add-on](/docs/add-ons/registry) will be renewed automatically at thirty days prior to expiration if the [EKCO add-on](/docs/add-ons/ekco) is enabled with version 0.5.0+. From 3706d69ea22495572df93c4b8c14626bb8ca38d9 Mon Sep 17 00:00:00 2001 From: jonquil2002 <91626429+jonquil2002@users.noreply.github.com> Date: Mon, 24 Oct 2022 14:40:47 -0400 Subject: [PATCH 017/234] Fixed link --- src/markdown-pages/add-ons/ekco.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/add-ons/ekco.md b/src/markdown-pages/add-ons/ekco.md index 986d0849..65c45b7b 100644 --- a/src/markdown-pages/add-ons/ekco.md +++ b/src/markdown-pages/add-ons/ekco.md @@ -112,7 +112,7 @@ The duration can be adjusted by changing the `ekco.envoyPodsNotReadyDuration` pr ### TLS Certificate Rotation -EKCO supports automatic certificate rotation for the [registry add-on](/docs/install-with-kurl/setup-tls-certs#registry) and the [Kubernetes control plane](/docs/install-with-kurl/setup-tls-certs#kubernetes-control-plane) since version 0.5.0 and for the KOTS add-on since version 0.7.0. For more information about the KOTS add-on, see [KOTS add-on](/docs/install-with-kurl/setup-tls-certs#kots-tls-certificate-renewal). For more information about automatic certificate rotation in Replicated app manager (which uses the KOTS add-on KOTS), see [Using TLS Certificates](https://docs.replicated.com/vendor/packaging-using-tls-certs) in the Replicated documentation. +EKCO supports automatic certificate rotation for the [registry add-on](/docs/install-with-kurl/setup-tls-certs#registry) and the [Kubernetes control plane](/docs/install-with-kurl/setup-tls-certs#kubernetes-control-plane) since version 0.5.0 and for the KOTS add-on since version 0.7.0. For more information about the KOTS add-on, see [KOTS add-on](/docs/add-ons/kotsadm). For more information about automatic certificate rotation in Replicated app manager (which uses the KOTS add-on KOTS), see [Using TLS Certificates](https://docs.replicated.com/vendor/packaging-using-tls-certs) in the Replicated documentation. ### Internal Load Balancer From d1b438fd8f2225261baa40b0bd833428f1f9ec91 Mon Sep 17 00:00:00 2001 From: Andrew Lavery Date: Mon, 24 Oct 2022 16:12:46 -0400 Subject: [PATCH 018/234] Update src/markdown-pages/add-ons/ekco.md --- src/markdown-pages/add-ons/ekco.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/add-ons/ekco.md b/src/markdown-pages/add-ons/ekco.md index 65c45b7b..09d39d96 100644 --- a/src/markdown-pages/add-ons/ekco.md +++ b/src/markdown-pages/add-ons/ekco.md @@ -112,7 +112,7 @@ The duration can be adjusted by changing the `ekco.envoyPodsNotReadyDuration` pr ### TLS Certificate Rotation -EKCO supports automatic certificate rotation for the [registry add-on](/docs/install-with-kurl/setup-tls-certs#registry) and the [Kubernetes control plane](/docs/install-with-kurl/setup-tls-certs#kubernetes-control-plane) since version 0.5.0 and for the KOTS add-on since version 0.7.0. For more information about the KOTS add-on, see [KOTS add-on](/docs/add-ons/kotsadm). For more information about automatic certificate rotation in Replicated app manager (which uses the KOTS add-on KOTS), see [Using TLS Certificates](https://docs.replicated.com/vendor/packaging-using-tls-certs) in the Replicated documentation. +EKCO supports automatic certificate rotation for the [registry add-on](/docs/install-with-kurl/setup-tls-certs#registry) and the [Kubernetes control plane](/docs/install-with-kurl/setup-tls-certs#kubernetes-control-plane) since version 0.5.0 and for the KOTS add-on since version 0.7.0. For more information about the KOTS add-on, see [KOTS add-on](/docs/add-ons/kotsadm). For more information about automatic certificate rotation in Replicated app manager (which uses the KOTS add-on), see [Using TLS Certificates](https://docs.replicated.com/vendor/packaging-using-tls-certs) in the Replicated documentation. ### Internal Load Balancer From d25a266e508858b0ad86f278505a6c82d41ee5cc Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Mon, 24 Oct 2022 15:17:07 -0700 Subject: [PATCH 019/234] Flannel add-on (#894) * Flannel add-on * Add Flannel limitations * Mark Flannel add-on as beta --- src/components/Kurlsh.js | 157 ++++++++++++------ src/components/__tests__/kurlsh.js | 1 + .../modals/ConfirmSelectionModal.js | 18 +- src/markdown-pages/add-ons/flannel.md | 40 +++++ src/markdown-pages/install-with-kurl/index.md | 7 +- static/versionDetails.json | 25 ++- 6 files changed, 191 insertions(+), 57 deletions(-) create mode 100644 src/markdown-pages/add-ons/flannel.md diff --git a/src/components/Kurlsh.js b/src/components/Kurlsh.js index f9100e9d..b21fd1d1 100644 --- a/src/components/Kurlsh.js +++ b/src/components/Kurlsh.js @@ -22,6 +22,7 @@ const NIL_VERSIONS = { kubernetes: { version: "None" }, rke2: { version: "None" }, k3s: { version: "None" }, + flannel: { version: "None" }, weave: { version: "None" }, antrea: { version: "None" }, contour: { version: "None" }, @@ -44,7 +45,7 @@ const NIL_VERSIONS = { goldpinger: { version: "None" }, aws: { version: "None" }, } -const hasAdvancedOptions = ["kubernetes", "weave", "antrea", "contour", "rook", "registry", "docker", "velero", "kotsadm", "ekco", "fluentd", "minio", "openebs", "longhorn", "prometheus", "aws"]; +const hasAdvancedOptions = ["kubernetes", "flannel", "weave", "antrea", "contour", "rook", "registry", "docker", "velero", "kotsadm", "ekco", "fluentd", "minio", "openebs", "longhorn", "prometheus", "aws"]; function versionToState(version) { return { version @@ -56,76 +57,79 @@ class Kurlsh extends React.Component { super(props); const { supportedVersions } = props; - let kubernetesVersions = this.addDotXVersions(supportedVersions.kubernetes.map(versionToState)); + let kubernetesVersions = this.addDotXVersions(supportedVersions.kubernetes ? supportedVersions.kubernetes.map(versionToState) : []); kubernetesVersions = this.prepareVersions(kubernetesVersions) - let rke2Versions = this.addDotXVersions(supportedVersions.rke2.map(versionToState)); + let rke2Versions = this.addDotXVersions(supportedVersions.rke2 ? supportedVersions.rke2.map(versionToState) : []); rke2Versions = this.prepareVersions(rke2Versions); - let k3sVersions = this.addDotXVersions(supportedVersions.k3s.map(versionToState)); + let k3sVersions = this.addDotXVersions(supportedVersions.k3s ? supportedVersions.k3s.map(versionToState) : []); k3sVersions = this.prepareVersions(k3sVersions); - let contourVersions = this.addDotXVersions(supportedVersions.contour.map(versionToState)); + let contourVersions = this.addDotXVersions(supportedVersions.contour ? supportedVersions.contour.map(versionToState) : []); contourVersions = this.prepareVersions(contourVersions); - let weaveVersions = this.addDotXVersions(supportedVersions.weave.map(versionToState)); + let flannelVersions = this.addDotXVersions(supportedVersions.flannel ? supportedVersions.flannel.map(versionToState) : []); + flannelVersions = this.prepareVersions(flannelVersions); + + let weaveVersions = this.addDotXVersions(supportedVersions.weave ? supportedVersions.weave.map(versionToState) : []); weaveVersions = this.prepareVersions(weaveVersions); - let antreaVersions = this.addDotXVersions(supportedVersions.antrea.map(versionToState)); + let antreaVersions = this.addDotXVersions(supportedVersions.antrea ? supportedVersions.antrea.map(versionToState) : []); antreaVersions = this.prepareVersions(antreaVersions); - let rookVersions = this.addDotXVersions(supportedVersions.rook.map(versionToState)); + let rookVersions = this.addDotXVersions(supportedVersions.rook ? supportedVersions.rook.map(versionToState) : []); rookVersions = this.prepareVersions(rookVersions); - let dockerVersions = this.addDotXVersions(supportedVersions.docker.map(versionToState)); + let dockerVersions = this.addDotXVersions(supportedVersions.docker ? supportedVersions.docker.map(versionToState) : []); dockerVersions = this.prepareVersions(dockerVersions); - let prometheusVersions = this.addDotXVersions(supportedVersions.prometheus.map(versionToState)); + let prometheusVersions = this.addDotXVersions(supportedVersions.prometheus ? supportedVersions.prometheus.map(versionToState) : []); prometheusVersions = this.prepareVersions(prometheusVersions); - let registryVersions = this.addDotXVersions(supportedVersions.registry.map(versionToState)); + let registryVersions = this.addDotXVersions(supportedVersions.registry ? supportedVersions.registry.map(versionToState) : []); registryVersions = this.prepareVersions(registryVersions); - let containerdVersions = this.addDotXVersions(supportedVersions.containerd.map(versionToState)); + let containerdVersions = this.addDotXVersions(supportedVersions.containerd ? supportedVersions.containerd.map(versionToState) : []); containerdVersions = this.prepareVersions(containerdVersions); - let veleroVersions = this.addDotXVersions(supportedVersions.velero.map(versionToState)); + let veleroVersions = this.addDotXVersions(supportedVersions.velero ? supportedVersions.velero.map(versionToState) : []); veleroVersions = this.prepareVersions(veleroVersions); - let kotsadmVersions = this.addDotXVersions(supportedVersions.kotsadm.map(versionToState)); + let kotsadmVersions = this.addDotXVersions(supportedVersions.kotsadm ? supportedVersions.kotsadm.map(versionToState) : []); kotsadmVersions = this.prepareVersions(kotsadmVersions); - let ekcoVersions = this.addDotXVersions(supportedVersions.ekco.map(versionToState)); + let ekcoVersions = this.addDotXVersions(supportedVersions.ekco ? supportedVersions.ekco.map(versionToState) : []); ekcoVersions = this.prepareVersions(ekcoVersions); - let fluentdVersions = this.addDotXVersions(supportedVersions.fluentd.map(versionToState)); + let fluentdVersions = this.addDotXVersions(supportedVersions.fluentd ? supportedVersions.fluentd.map(versionToState) : []); fluentdVersions = this.prepareVersions(fluentdVersions); - let minioVersions = this.addDotXVersions(supportedVersions.minio.map(versionToState)); + let minioVersions = this.addDotXVersions(supportedVersions.minio ? supportedVersions.minio.map(versionToState) : []); minioVersions = this.prepareVersions(minioVersions); - let openebsVersions = this.addDotXVersions(supportedVersions.openebs.map(versionToState)); + let openebsVersions = this.addDotXVersions(supportedVersions.openebs ? supportedVersions.openebs.map(versionToState) : []); openebsVersions = this.prepareVersions(openebsVersions); - let longhornVersions = this.addDotXVersions(supportedVersions.longhorn.map(versionToState)); + let longhornVersions = this.addDotXVersions(supportedVersions.longhorn ? supportedVersions.longhorn.map(versionToState) : []); longhornVersions = this.prepareVersions(longhornVersions); - let collectdVersions = this.addDotXVersions(supportedVersions.collectd.map(versionToState)); + let collectdVersions = this.addDotXVersions(supportedVersions.collectd ? supportedVersions.collectd.map(versionToState) : []); collectdVersions = this.prepareVersions(collectdVersions); - let metricsServerVersions = this.addDotXVersions(supportedVersions["metrics-server"].map(versionToState)); + let metricsServerVersions = this.addDotXVersions(supportedVersions["metrics-server"] ? supportedVersions["metrics-server"].map(versionToState) : []); metricsServerVersions = this.prepareVersions(metricsServerVersions); - let certManagerVersions = this.addDotXVersions(supportedVersions["cert-manager"].map(versionToState)); + let certManagerVersions = this.addDotXVersions(supportedVersions["cert-manager"] ? supportedVersions["cert-manager"].map(versionToState) : []); certManagerVersions = this.prepareVersions(certManagerVersions); - let sonobuoyVersions = this.addDotXVersions(supportedVersions["sonobuoy"].map(versionToState)); + let sonobuoyVersions = this.addDotXVersions(supportedVersions.sonobuoy ? supportedVersions.sonobuoy.map(versionToState) : []); sonobuoyVersions = this.prepareVersions(sonobuoyVersions); - let goldpingerVersions = this.addDotXVersions(supportedVersions["goldpinger"].map(versionToState)); + let goldpingerVersions = this.addDotXVersions(supportedVersions.goldpinger ? supportedVersions.goldpinger.map(versionToState) : []); goldpingerVersions = this.prepareVersions(goldpingerVersions); - let awsVersions = this.addDotXVersions(supportedVersions["aws"].map(versionToState)); + let awsVersions = this.addDotXVersions(supportedVersions.aws ? supportedVersions.aws.map(versionToState) : []); awsVersions = this.prepareVersions(awsVersions); this.state = { @@ -133,6 +137,7 @@ class Kurlsh extends React.Component { kubernetes: kubernetesVersions, rke2: rke2Versions, k3s: k3sVersions, + flannel: flannelVersions, weave: weaveVersions, antrea: antreaVersions, contour: contourVersions, @@ -161,6 +166,7 @@ class Kurlsh extends React.Component { "kubernetes": false, "rke2": false, "k3s": false, + "flannel": false, "weave": false, "antrea": false, "contour": false, @@ -185,6 +191,7 @@ class Kurlsh extends React.Component { kubernetes: {}, rke2: {}, k3s: {}, + flannel: {}, weave: {}, antrea: {}, contour: {}, @@ -209,7 +216,8 @@ class Kurlsh extends React.Component { isAddOnChecked: { kubernetes: false, rke2: false, - k3s: false, + k3s: false, + flannel: false, weave: false, antrea: false, contour: false, @@ -244,7 +252,7 @@ class Kurlsh extends React.Component { // the list of versions returned by the api has, as it first item, a version called // "latest", the item immediately after it is the actual version we consider to be // the latest. we save it here so we can remember where we need to insert it after. - let latest = versions[1].version; + let latest = versions.length > 1 ? versions[1].version : undefined; // remove the "latest" version from the list and sort the resulting array. we will // re-insert "latest" after sorting the array as it has to be the option just before @@ -425,6 +433,21 @@ class Kurlsh extends React.Component { } } + if (selectedVersions.flannel.version !== "None") { + const diff = getDiff(optionDefaults["flannel"], options.flannel); + + generatedInstaller.spec.flannel = { + version: selectedVersions.flannel.version + }; + + if (Object.keys(diff).length) { + generatedInstaller.spec.flannel = { + ...generatedInstaller.spec.flannel, + ...diff + }; + } + } + if (selectedVersions.weave.version !== "None") { const diff = getDiff(optionDefaults["weave"], options.weave); @@ -742,9 +765,11 @@ class Kurlsh extends React.Component { this.checkIncompatibleSelection({ containerd: value }); } else if (name === "docker" && value.version !== "None" && this.state.selectedVersions.containerd.version !== "None") { this.checkIncompatibleSelection({ docker: value }); - } else if (name === "antrea" && value.version !== "None" && this.state.selectedVersions.weave.version !== "None") { + } else if (name === "flannel" && value.version !== "None" && (this.state.selectedVersions.weave.version !== "None" || this.state.selectedVersions.antrea.version !== "None")) { + this.checkIncompatibleSelection({ flannel: value }); + } else if (name === "antrea" && value.version !== "None" && (this.state.selectedVersions.weave.version !== "None" || this.state.selectedVersions.flannel.version !== "None")) { this.checkIncompatibleSelection({ antrea: value }); - } else if (name === "weave" && value.version !== "None" && this.state.selectedVersions.antrea.version !== "None") { + } else if (name === "weave" && value.version !== "None" && (this.state.selectedVersions.antrea.version !== "None" || this.state.selectedVersions.flannel.version !== "None")) { this.checkIncompatibleSelection({ weave: value }); } else { this.setState({ selectedVersions: { ...this.state.selectedVersions, [name]: value } }, () => { @@ -789,9 +814,11 @@ class Kurlsh extends React.Component { this.checkIncompatibleSelection({ containerd: { version: "latest" } }); } else if (name === "docker" && this.state.selectedVersions.containerd.version !== "None") { this.checkIncompatibleSelection({ docker: { version: "latest" } }); - } else if (name === "weave" && this.state.selectedVersions.antrea.version !== "None") { + } else if (name === "flannel" && (this.state.selectedVersions.weave.version !== "None" || this.state.selectedVersions.antrea.version !== "None")) { + this.checkIncompatibleSelection({ flannel: { version: "latest" } }); + } else if (name === "weave" && (this.state.selectedVersions.antrea.version !== "None" || this.state.selectedVersions.flannel.version !== "None")) { this.checkIncompatibleSelection({ weave: { version: "latest" } }); - } else if (name === "antrea" && this.state.selectedVersions.weave.version !== "None") { + } else if (name === "antrea" && (this.state.selectedVersions.weave.version !== "None" || this.state.selectedVersions.flannel.version !== "None")) { this.checkIncompatibleSelection({ antrea: { version: "latest" } }); } else { this.setState({ selectedVersions: { ...this.state.selectedVersions, [name]: { version: "latest" } } }, () => { @@ -1340,41 +1367,42 @@ class Kurlsh extends React.Component {
    CNI plugin -
    this.handleIsAddOnSelected("antrea", e)}> + { versions.flannel.length > 1 && +
    this.handleIsAddOnSelected("flannel", e)}>
    - +
    -
    Antrea
    -
    - {!this.state.isAddOnChecked["antrea"] ? "Version None" : "Version"} +
    Flannel
    +
    + {!this.state.isAddOnChecked["flannel"] ? "Version None" : "Version"} + +
    +
    Antrea
    +
    + {!this.state.isAddOnChecked["antrea"] ? "Version None" : "Version"} +
    Kubernetes (Kubeadm)
    -
    - {!this.state.isAddOnChecked["kubernetes"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["kubernetes"] ? "Version None" : "Version"}
    RKE2 beta
    -
    - {!this.state.isAddOnChecked["rke2"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["rke2"] ? "Version None" : "Version"}
    K3s beta
    -
    - {!this.state.isAddOnChecked["k3s"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["k3s"] ? "Version None" : "Version"}
    Docker
    -
    - {!this.state.isAddOnChecked["docker"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["docker"] ? "Version None" : "Version"}
    Containerd
    -
    - {!this.state.isAddOnChecked["containerd"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["containerd"] ? "Version None" : "Version"}
    Flannel
    -
    - {!this.state.isAddOnChecked["flannel"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["flannel"] ? "Version None" : "Version"}
    Weave
    -
    - {!this.state.isAddOnChecked["weave"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["weave"] ? "Version None" : "Version"}
    Antrea
    -
    - {!this.state.isAddOnChecked["antrea"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["antrea"] ? "Version None" : "Version"}
    Contour
    -
    - {!this.state.isAddOnChecked["contour"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["contour"] ? "Version None" : "Version"}
    EKCO
    -
    - {!this.state.isAddOnChecked["ekco"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["ekco"] ? "Version None" : "Version"}
    Sonobuoy
    -
    - {!this.state.isAddOnChecked["sonobuoy"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["sonobuoy"] ? "Version None" : "Version"}
    Fluentd
    -
    - {!this.state.isAddOnChecked["fluentd"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["fluentd"] ? "Version None" : "Version"}
    KOTS
    -
    - {!this.state.isAddOnChecked["kotsadm"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["kotsadm"] ? "Version None" : "Version"}
    Minio
    -
    - {!this.state.isAddOnChecked["minio"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["minio"] ? "Version None" : "Version"}
    Rook
    -
    - {!this.state.isAddOnChecked["rook"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["rook"] ? "Version None" : "Version"}
    Longhorn
    -
    - {!this.state.isAddOnChecked["longhorn"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["longhorn"] ? "Version None" : "Version"}
    openEBS
    -
    - {!this.state.isAddOnChecked["openebs"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["openebs"] ? "Version None" : "Version"}
    Prometheus
    -
    - {!this.state.isAddOnChecked["prometheus"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["prometheus"] ? "Version None" : "Version"}
    Collectd
    -
    - {!this.state.isAddOnChecked["collectd"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["collectd"] ? "Version None" : "Version"}
    Metrics-server
    -
    - {!this.state.isAddOnChecked["metricsServer"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["metricsServer"] ? "Version None" : "Version"}
    Goldpinger
    -
    - {!this.state.isAddOnChecked["goldpinger"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["goldpinger"] ? "Version None" : "Version"}
    Cert manager
    -
    - {!this.state.isAddOnChecked["certManager"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["certManager"] ? "Version None" : "Version"}
    Docker Registry
    -
    - {!this.state.isAddOnChecked["registry"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["registry"] ? "Version None" : "Version"}
    Velero
    -
    - {!this.state.isAddOnChecked["velero"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["velero"] ? "Version None" : "Version"}
    AWS beta
    -
    - {!this.state.isAddOnChecked["aws"] ? "Version None" : "Version"} +
    + {!isAddOnChecked["aws"] ? "Version None" : "Version"} - -
    -
    Kubernetes (Kubeadm)
    -
    - {!isAddOnChecked["kubernetes"] ? "Version None" : "Version"} - - -
    -
    RKE2 beta
    -
    - {!isAddOnChecked["rke2"] ? "Version None" : "Version"} - - -
    -
    K3s beta
    -
    - {!isAddOnChecked["k3s"] ? "Version None" : "Version"} - - -
    -
    Docker
    -
    - {!isAddOnChecked["docker"] ? "Version None" : "Version"} - - -
    -
    Containerd
    -
    - {!isAddOnChecked["containerd"] ? "Version None" : "Version"} - - -
    -
    Flannel
    -
    - {!isAddOnChecked["flannel"] ? "Version None" : "Version"} - - -
    -
    Weave
    -
    - {!isAddOnChecked["weave"] ? "Version None" : "Version"} - - -
    -
    Antrea
    -
    - {!isAddOnChecked["antrea"] ? "Version None" : "Version"} - - -
    -
    Contour
    -
    - {!isAddOnChecked["contour"] ? "Version None" : "Version"} - - -
    -
    EKCO
    -
    - {!isAddOnChecked["ekco"] ? "Version None" : "Version"} - - -
    -
    Sonobuoy
    -
    -
    - {!isAddOnChecked["sonobuoy"] ? "Version None" : "Version"} - - -
    -
    Fluentd
    -
    - {!isAddOnChecked["fluentd"] ? "Version None" : "Version"} - - -
    -
    KOTS
    -
    - {!isAddOnChecked["kotsadm"] ? "Version None" : "Version"} - - -
    -
    Minio
    -
    - {!isAddOnChecked["minio"] ? "Version None" : "Version"} - - -
    -
    Rook
    -
    -
    - {!isAddOnChecked["rook"] ? "Version None" : "Version"} - - -
    -
    Longhorn
    -
    - {!isAddOnChecked["longhorn"] ? "Version None" : "Version"} - - -
    -
    openEBS
    -
    - {!isAddOnChecked["openebs"] ? "Version None" : "Version"} - - -
    -
    Prometheus
    -
    - {!isAddOnChecked["prometheus"] ? "Version None" : "Version"} - - -
    -
    Collectd
    -
    - {!isAddOnChecked["collectd"] ? "Version None" : "Version"} - - -
    -
    Metrics-server
    -
    - {!isAddOnChecked["metricsServer"] ? "Version None" : "Version"} - - -
    -
    Goldpinger
    -
    - {!isAddOnChecked["goldpinger"] ? "Version None" : "Version"} - - -
    -
    Cert manager
    -
    - {!isAddOnChecked["certManager"] ? "Version None" : "Version"} - - -
    -
    Docker Registry
    -
    - {!isAddOnChecked["registry"] ? "Version None" : "Version"} - - -
    -
    Velero
    -
    -
    - {!isAddOnChecked["velero"] ? "Version None" : "Version"} - - -
    -
    AWS beta
    -
    -
    - {!isAddOnChecked["aws"] ? "Version None" : "Version"} - + +
    +
    {addOnTitle} { isBeta && beta }
    +
    + {!isAddOnChecked ? "Version None" : "Version"} + this.handleOptionChange(`${addOn}.${data.flag}`, e.currentTarget, option.type)} disabled={!currentOption || (currentOption && !currentOption.isChecked)} value={currentOption ? currentOption.inputValue : ""} diff --git a/src/components/__tests__/kurlsh.js b/src/components/__tests__/kurlsh.js index f1f10766..c684971b 100644 --- a/src/components/__tests__/kurlsh.js +++ b/src/components/__tests__/kurlsh.js @@ -206,4 +206,62 @@ describe("Kurl", () => { expect(finalVersions).toEqual([{version: "2.8.x"}, {version: "2.8.1-20221025"}, {version: "2.8.1-20221006"}, {version: "2.8.1-20220825"}, {version: "2.8.1-20220720"}, {version: "2.8.1-20220616"}, {version: "2.8.1"}, {version: "2.7.x"}, {version: "2.7.0"}, {version: "2.6.x"}, {version: "latest"}, {version: "2.6.5-20221025"}, {version: "2.6.5-20221006"}, {version: "2.6.5-20220825"}, {version: "2.6.5-20220720"}, {version: "2.6.5-20220616"}, {version: "2.6.5"}, {version: "2.6.4"}, {version: "2.5.x"}, {version: "2.5.2"}, {version: "None"}]); }); }); + + describe("addOnDataFromInput", () => { + it("handles checkbox input changes for boolean fields", () => { + const kurlsh = new Kurl(defaultProps); + const actual = kurlsh.addOnDataFromInput({type: "checkbox", checked: true}, "boolean"); + const expected = {inputValue: true, isChecked: true}; + expect(actual).toEqual(expected); + }); + + it("handles checkbox input changes for string fields", () => { + const kurlsh = new Kurl(defaultProps); + const actual = kurlsh.addOnDataFromInput({type: "checkbox", checked: true}, "string"); + const expected = {inputValue: "", isChecked: true}; + expect(actual).toEqual(expected); + }); + + it("handles checkbox input changes for number fields", () => { + const kurlsh = new Kurl(defaultProps); + const actual = kurlsh.addOnDataFromInput({type: "checkbox", checked: true}, "number"); + const expected = {inputValue: 0, isChecked: true}; + expect(actual).toEqual(expected); + }); + + it("handles checkbox input changes for array[string] fields", () => { + const kurlsh = new Kurl(defaultProps); + const actual = kurlsh.addOnDataFromInput({type: "checkbox", checked: true}, "array[string]"); + const expected = {inputValue: [], isChecked: true}; + expect(actual).toEqual(expected); + }); + + it("handles number input changes for number fields", () => { + const kurlsh = new Kurl(defaultProps); + const actual = kurlsh.addOnDataFromInput({type: "number", value: 1}, "number"); + const expected = {inputValue: 1}; + expect(actual).toEqual(expected); + }); + + it("handles text input changes for array[string] fields", () => { + const kurlsh = new Kurl(defaultProps); + const actual = kurlsh.addOnDataFromInput({type: "text", value: "foo,bar"}, "array[string]"); + const expected = {inputValue: ["foo", "bar"]}; + expect(actual).toEqual(expected); + }); + + it("handles text input changes for string fields", () => { + const kurlsh = new Kurl(defaultProps); + const actual = kurlsh.addOnDataFromInput({type: "text", value: "foo"}, "string"); + const expected = {inputValue: "foo"}; + expect(actual).toEqual(expected); + }); + + it("handles all other input type changes", () => { + const kurlsh = new Kurl(defaultProps); + const actual = kurlsh.addOnDataFromInput({type: "foo", value: "bar"}, "baz"); + const expected = {inputValue: "bar"}; + expect(actual).toEqual(expected); + }); + }); }); diff --git a/src/markdown-pages/add-ons/velero.md b/src/markdown-pages/add-ons/velero.md index c490b01c..b3446632 100644 --- a/src/markdown-pages/add-ons/velero.md +++ b/src/markdown-pages/add-ons/velero.md @@ -29,6 +29,10 @@ spec: localBucket: "local" resticRequiresPrivileged: true resticTimeout: "12h0m0s" + serverFlags: + - --log-level + - debug + - --default-restic-prune-frequency=12h ``` flags-table diff --git a/src/markdown-pages/install-with-kurl/advanced-options.md b/src/markdown-pages/install-with-kurl/advanced-options.md index 12b3b601..de4b12fe 100644 --- a/src/markdown-pages/install-with-kurl/advanced-options.md +++ b/src/markdown-pages/install-with-kurl/advanced-options.md @@ -264,6 +264,16 @@ The install scripts are idempotent. Re-run the scripts with different flags to c curl https://kurl.sh/latest | sudo bash -s velero-restic-timeout=12h0m0s + + velero-server-flags + Additional flags to pass to the Velero server. This is a comma-separated list of arguments. +
    +
    + Example: +
    + curl https://kurl.sh/latest | sudo bash -s velero-server-flags=--log-level=debug,--default-restic-prune-frequency=12h + + ekco-enable-internal-load-balancer Run an internal load balanacer with HAProxy listening on localhost:6444 on all nodes. diff --git a/static/versionDetails.json b/static/versionDetails.json index 3b04be6e..4c49b6f2 100644 --- a/static/versionDetails.json +++ b/static/versionDetails.json @@ -323,6 +323,11 @@ "flag": "resticTimeout", "description": "The time interval that backups/restores of pod volumes are allowed to run before timing out. Default is '4h0m0s'", "type": "string" + }, + { + "flag": "serverFlags", + "description": "Additional flags to pass to the Velero server. This is a comma-separated list of arguments.", + "type": "array[string]" } ], "kotsadm": [ From 9a6e9105b4b03b7d71986a3b34e7d07c43d2dce7 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Tue, 24 Jan 2023 11:20:00 -0700 Subject: [PATCH 080/234] Add mon rescheduling known issue info --- .../install-with-kurl/managing-nodes.md | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index a71c8dfa..66016aac 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -9,6 +9,18 @@ title: "Managing Nodes" This topic describes how to manage nodes on kURL clusters. It includes procedures for how to safely reset, reboot, and remove nodes when performing maintenance tasks. +See the following sections: + +* [ECKO Add-On Prerequisite](#ecko-add-on-prerequisite) +* [Reset a Node](#reset-a-node) +* [Reboot a Node](#reboot-a-node) +* [Remove a Node from Rook Ceph Clusters](#remove-a-node-from-rook-ceph-clusters) + * [Rook Ceph and etcd Node Removal Requirements](#rook-ceph-and-etcd-node-removal-requirements) + * [Rook Ceph Cluster Prerequisites](#rook-ceph-cluster-prerequisites) + * [(Recommended) Manually Rebalance Ceph and Remove a Node](#recommended-manually-rebalance-ceph-and-remove-a-node) + * [Remove Nodes with ECKO](#remove-nodes-with-ecko) +* [Troubleshoot Node Removal](#troubleshoot-node-removal) + ## ECKO Add-On Prerequisite Before you manage a node on a kURL cluster, you must install the Embedded kURL Cluster Operator (EKCO) add-on on the cluster. @@ -90,7 +102,7 @@ For example, to remove one node in a three-node cluster, first add a new node to Complete the following prerequisites before you remove one or more nodes from a Rook Ceph cluster: -* (Recommended) Upgrade Rook Ceph to v1.4 or later. +* Upgrade Rook Ceph to v1.4 or later. Attempting to remove a node in a host that uses a Rook Ceph version earlier than v1.4 can cause Ceph to enter an unhealthy state. * In the kURL specification, set `isBlockStorageEnabled` to `true`. This is the default for Rook Ceph v1.4 and later. @@ -261,3 +273,32 @@ To use the EKCO add-on to remove a node: The EKCO purge script For information about the EKCO purge script, see [Purge Nodes](/docs/add-ons/ekco#purge-nodes) in _EKCO Add-on_. 1. Remove the node from the cluster. + +## Troubleshoot Node Removal + +This section includes information about troubleshooting issues with node removal in Rook Ceph clusters. + +### Rook Ceph v1.0.4 is Unhealthy with Mon Pods Not Rescheduled + +#### Symptom + +When you run `kubectl -n rook-ceph exec deployment.apps/rook-ceph-operator -- ceph status` for a Rook Ceph v1.0.4 cluster, you see that Ceph is in an unhealthy state where failed mons are not rescheduled. + +For example: + +``` +health: HEALTH_WARN + 1/3 mons down, quorum a,c +``` + +#### Cause + +This is caused by a known issue in Rook Ceph v1.0.4 where failed mons are not removed during mon failover. For more information, see [Mon is never rescheduled](https://github.com/rook/rook/issues/2262#issuecomment-460898915) in the rook GitHub repository. + +#### Solution + +To resolve this issue, manually stop the Rook Ceph operator, remove the failed mon from the configmap, delete the failed mon, and then rescale the operator. + +For more information about how to complete these steps, see [Managing nodes when the previous Rook version is in use might leave Ceph in an unhealthy state where mon pods are not rescheduled](https://community.replicated.com/t/managing-nodes-when-the-previous-rook-version-is-in-use-might-leave-ceph-in-an-unhealthy-state-where-mon-pods-are-not-rescheduled/1099/1) in _Replicated Community_. + +Replicated recommends that you upgrade Rook Ceph to v1.4 or later before attempting to remove nodes. For more information, see [Rook Ceph Cluster Prerequisites](#rook-ceph-cluster-prerequisites) above. From 2c2108ee72a01af1c85865292603acc6adf336f4 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Tue, 24 Jan 2023 11:36:11 -0700 Subject: [PATCH 081/234] edits --- src/markdown-pages/install-with-kurl/managing-nodes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index 66016aac..bf136a42 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -102,7 +102,7 @@ For example, to remove one node in a three-node cluster, first add a new node to Complete the following prerequisites before you remove one or more nodes from a Rook Ceph cluster: -* Upgrade Rook Ceph to v1.4 or later. Attempting to remove a node in a host that uses a Rook Ceph version earlier than v1.4 can cause Ceph to enter an unhealthy state. +* Upgrade Rook Ceph to v1.4 or later. Attempting to remove a node in a host that uses a Rook Ceph version earlier than v1.4 can cause Ceph to enter an unhealthy state. For example, see [Rook Ceph v1.0.4 is Unhealthy with Mon Pods Not Rescheduled](#rook-ceph-v104-is-unhealthy-with-mon-pods-not-rescheduled) under _Troubleshoot Node Removal_ below. * In the kURL specification, set `isBlockStorageEnabled` to `true`. This is the default for Rook Ceph v1.4 and later. @@ -139,6 +139,7 @@ Complete the following prerequisites before you remove one or more nodes from a ``` kubectl -n rook-ceph exec deployment/rook-ceph-operator -- ceph status ``` + **Note**: It is not recommended to use versions of Rook Ceph earlier than v1.4.0. The output of the command shows `health: HEALTH_OK` if Ceph is in a healthy state. From 479765494f4d0eda676967b7d31441b0f9885a76 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Tue, 24 Jan 2023 11:48:12 -0700 Subject: [PATCH 082/234] edits --- src/markdown-pages/install-with-kurl/managing-nodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index bf136a42..b9a1cae9 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -102,7 +102,7 @@ For example, to remove one node in a three-node cluster, first add a new node to Complete the following prerequisites before you remove one or more nodes from a Rook Ceph cluster: -* Upgrade Rook Ceph to v1.4 or later. Attempting to remove a node in a host that uses a Rook Ceph version earlier than v1.4 can cause Ceph to enter an unhealthy state. For example, see [Rook Ceph v1.0.4 is Unhealthy with Mon Pods Not Rescheduled](#rook-ceph-v104-is-unhealthy-with-mon-pods-not-rescheduled) under _Troubleshoot Node Removal_ below. +* Upgrade Rook Ceph to v1.4 or later. Attempting to remove a node from a cluster that uses a Rook Ceph version earlier than v1.4 can cause Ceph to enter an unhealthy state. For example, see [Rook Ceph v1.0.4 is Unhealthy with Mon Pods Not Rescheduled](#rook-ceph-v104-is-unhealthy-with-mon-pods-not-rescheduled) under _Troubleshoot Node Removal_ below. * In the kURL specification, set `isBlockStorageEnabled` to `true`. This is the default for Rook Ceph v1.4 and later. @@ -302,4 +302,4 @@ To resolve this issue, manually stop the Rook Ceph operator, remove the failed m For more information about how to complete these steps, see [Managing nodes when the previous Rook version is in use might leave Ceph in an unhealthy state where mon pods are not rescheduled](https://community.replicated.com/t/managing-nodes-when-the-previous-rook-version-is-in-use-might-leave-ceph-in-an-unhealthy-state-where-mon-pods-are-not-rescheduled/1099/1) in _Replicated Community_. -Replicated recommends that you upgrade Rook Ceph to v1.4 or later before attempting to remove nodes. For more information, see [Rook Ceph Cluster Prerequisites](#rook-ceph-cluster-prerequisites) above. +It is recommended that you upgrade Rook Ceph to v1.4 or later before attempting to remove nodes. For more information, see [Rook Ceph Cluster Prerequisites](#rook-ceph-cluster-prerequisites) above. From 6aa7412a6afab8041a0bb3e45d9b902d1e9d7aef Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Wed, 25 Jan 2023 00:27:11 +0000 Subject: [PATCH 083/234] feat(flannel): preflight UDP port 8472 status --- src/markdown-pages/install-with-kurl/host-preflights.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/markdown-pages/install-with-kurl/host-preflights.md b/src/markdown-pages/install-with-kurl/host-preflights.md index aeb6ee01..9f3ffeca 100644 --- a/src/markdown-pages/install-with-kurl/host-preflights.md +++ b/src/markdown-pages/install-with-kurl/host-preflights.md @@ -69,6 +69,12 @@ These checks run on all primary and secondary nodes joining an existing cluster: Some checks only run when certain add-ons are enabled or configured in a certain way in the installer: +#### Flannel + +These checks only run on installations with Flannel: + +* UDP port 8472 is available on the current host. + #### Weave These checks only run on installations with Weave: From c8a19d689e63eac13ed5bc1a57e00b7ac041f7f5 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Wed, 25 Jan 2023 16:17:49 -0700 Subject: [PATCH 084/234] edits and corrections --- .../install-with-kurl/managing-nodes.md | 77 +++++++++++++++++-- 1 file changed, 70 insertions(+), 7 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index b9a1cae9..afdab110 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -102,7 +102,11 @@ For example, to remove one node in a three-node cluster, first add a new node to Complete the following prerequisites before you remove one or more nodes from a Rook Ceph cluster: -* Upgrade Rook Ceph to v1.4 or later. Attempting to remove a node from a cluster that uses a Rook Ceph version earlier than v1.4 can cause Ceph to enter an unhealthy state. For example, see [Rook Ceph v1.0.4 is Unhealthy with Mon Pods Not Rescheduled](#rook-ceph-v104-is-unhealthy-with-mon-pods-not-rescheduled) under _Troubleshoot Node Removal_ below. +* Upgrade Rook Ceph to v1.4 or later. + + The two latest minor releases of Rook Ceph are actively maintained. It is recommended to upgrade to the latest stable release available. For more information, see [Release Cycle](https://rook.io/docs/rook/latest/Getting-Started/release-cycle/) in the Rook Ceph documentation. + + Attempting to remove a node from a cluster that uses a Rook Ceph version earlier than v1.4 can cause Ceph to enter an unhealthy state. For example, see [Rook Ceph v1.0.4 is Unhealthy with Mon Pods Not Rescheduled](#rook-ceph-v104-is-unhealthy-with-mon-pods-not-rescheduled) under _Troubleshoot Node Removal_ below. * In the kURL specification, set `isBlockStorageEnabled` to `true`. This is the default for Rook Ceph v1.4 and later. @@ -279,11 +283,11 @@ To use the EKCO add-on to remove a node: This section includes information about troubleshooting issues with node removal in Rook Ceph clusters. -### Rook Ceph v1.0.4 is Unhealthy with Mon Pods Not Rescheduled +### Rook Ceph v1.0.4 is Unhealthy with Mon Pod Pending #### Symptom -When you run `kubectl -n rook-ceph exec deployment.apps/rook-ceph-operator -- ceph status` for a Rook Ceph v1.0.4 cluster, you see that Ceph is in an unhealthy state where failed mons are not rescheduled. +After you remove a node from a Rook Ceph v1.0.4 cluster and you run `kubectl -n rook-ceph exec deployment.apps/rook-ceph-operator -- ceph status`, you see that Ceph is in an unhealthy state where a Ceph monitor (mon) is down. For example: @@ -292,14 +296,73 @@ health: HEALTH_WARN 1/3 mons down, quorum a,c ``` +When you run `kubectl -n rook-ceph get pod -l app=rook-ceph-mon`, you see that the mon pod is in a Pending state. + +For example: + +``` +NAME READY STATUS RESTARTS AGE +rook-ceph-mon-a 1/1 Running 0 20m +rook-ceph-mon-b 0/1 Pending 0 9m45s +rook-ceph-mon-c 1/1 Running 0 13m +``` + #### Cause -This is caused by a known issue in Rook Ceph v1.0.4 where failed mons are not removed during mon failover. For more information, see [Mon is never rescheduled](https://github.com/rook/rook/issues/2262#issuecomment-460898915) in the rook GitHub repository. +This is caused by a known issue in Rook Ceph v1.0.4 where the rook-ceph-mon-endpoints ConfigMap still maps a node that was removed. For more information, see [Mon is never rescheduled](https://github.com/rook/rook/issues/2262#issuecomment-460898915) in the rook GitHub repository. #### Solution -To resolve this issue, manually stop the Rook Ceph operator, remove the failed mon from the configmap, delete the failed mon, and then rescale the operator. +To resolve this issue, you must manually delete the mapping to the removed node from the rook-ceph-mon-endpoints ConfigMap. + +For more information about these steps, see [Managing nodes when the previous Rook version is in use might leave Ceph in an unhealthy state where mon pods are not rescheduled](https://community.replicated.com/t/managing-nodes-when-the-previous-rook-version-is-in-use-might-leave-ceph-in-an-unhealthy-state-where-mon-pods-are-not-rescheduled/1099/1) in _Replicated Community_. + +To delete the mapping for the removed node: + +1. Stop the Rook Ceph operator: + + ``` + kubectl -n rook-ceph scale --replicas=0 deployment.apps/rook-ceph-operator + ``` + +1. Edit the rook-ceph-mon-endpoints ConfigMap to delete the mapping to the removed node: + + ``` + kubect -n rook-ceph edit configmaps rook-ceph-mon-endpoints + ``` + + _**Warning**_: Ensure that you remove the correct rook-ceph-mon-endpoint from the list. Removing the wrong rook-ceph-mon-endpoint can cause data loss. -For more information about how to complete these steps, see [Managing nodes when the previous Rook version is in use might leave Ceph in an unhealthy state where mon pods are not rescheduled](https://community.replicated.com/t/managing-nodes-when-the-previous-rook-version-is-in-use-might-leave-ceph-in-an-unhealthy-state-where-mon-pods-are-not-rescheduled/1099/1) in _Replicated Community_. +1. Find the name of the Pending mon pod: + + ``` + kubectl -n rook-ceph get pod -l app=rook-ceph-mon + ``` + +1. Delete the Pending mon pod: + + ``` + kubectl -n rook-ceph delete pod MON_POD_NAME + ``` + Replace `MON_POD_NAME` with the name of the mon pod that is in a Pending state from the previous step. + +1. Rescale the operator: + + ``` + kubectl -n rook-ceph scale --replicas=1 deployment.apps/rook-ceph-operator + ``` + +1. Verify that all mon pods are running: + + ``` + kubectl -n rook-ceph get pod -l app=rook-ceph-mon + ``` + The output of this command shows that each mon pod has a `Status` of `Running`. + +1. Verify that Ceph is in a healthy state: + + ``` + kubectl -n rook-ceph exec deployment.apps/rook-ceph-operator -- ceph status + ``` -It is recommended that you upgrade Rook Ceph to v1.4 or later before attempting to remove nodes. For more information, see [Rook Ceph Cluster Prerequisites](#rook-ceph-cluster-prerequisites) above. + The output of this command shows `health: HEALTH_OK` if Ceph is in a healthy state. From f966ffa5dc3212a8d825910475337b34d2cf4e53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Jan 2023 15:36:36 +0000 Subject: [PATCH 085/234] Bump ua-parser-js from 0.7.20 to 0.7.33 Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.20 to 0.7.33. - [Release notes](https://github.com/faisalman/ua-parser-js/releases) - [Changelog](https://github.com/faisalman/ua-parser-js/blob/master/changelog.md) - [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.20...0.7.33) --- updated-dependencies: - dependency-name: ua-parser-js dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index decaf525..d00fb333 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15046,9 +15046,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.18: - version "0.7.20" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" - integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw== + version "0.7.33" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.33.tgz#1d04acb4ccef9293df6f70f2c3d22f3030d8b532" + integrity sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw== uglify-js@3.4.x: version "3.4.10" From a007ae8ded61d4f2d0509d7839c1a75cfcdb82ac Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Thu, 26 Jan 2023 13:09:59 -0700 Subject: [PATCH 086/234] edits --- .../install-with-kurl/managing-nodes.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index afdab110..8fe5bf94 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -309,15 +309,15 @@ rook-ceph-mon-c 1/1 Running 0 13m #### Cause -This is caused by a known issue in Rook Ceph v1.0.4 where the rook-ceph-mon-endpoints ConfigMap still maps a node that was removed. For more information, see [Mon is never rescheduled](https://github.com/rook/rook/issues/2262#issuecomment-460898915) in the rook GitHub repository. +This is caused by an issue in Rook Ceph v1.0.4 where the rook-ceph-mon-endpoints ConfigMap still maps a node that was removed. #### Solution -To resolve this issue, you must manually delete the mapping to the removed node from the rook-ceph-mon-endpoints ConfigMap. +To resolve this issue, you must return the Ceph cluster to a healthy state and upgrade to Rook Ceph v1.4 or later. -For more information about these steps, see [Managing nodes when the previous Rook version is in use might leave Ceph in an unhealthy state where mon pods are not rescheduled](https://community.replicated.com/t/managing-nodes-when-the-previous-rook-version-is-in-use-might-leave-ceph-in-an-unhealthy-state-where-mon-pods-are-not-rescheduled/1099/1) in _Replicated Community_. +To return Ceph to a healthy state so that you can upgrade, manually delete the mapping to the removed node from the rook-ceph-mon-endpoints ConfigMap then rescale the operator. -To delete the mapping for the removed node: +To return Ceph to a healthy state and upgrade: 1. Stop the Rook Ceph operator: @@ -325,13 +325,13 @@ To delete the mapping for the removed node: kubectl -n rook-ceph scale --replicas=0 deployment.apps/rook-ceph-operator ``` -1. Edit the rook-ceph-mon-endpoints ConfigMap to delete the mapping to the removed node: +1. Edit the rook-ceph-mon-endpoints ConfigMap to delete the removed node from the `mapping`: ``` kubect -n rook-ceph edit configmaps rook-ceph-mon-endpoints ``` - _**Warning**_: Ensure that you remove the correct rook-ceph-mon-endpoint from the list. Removing the wrong rook-ceph-mon-endpoint can cause data loss. + _**Warning**_: Ensure that you remove the correct rook-ceph-mon-endpoint from the `mapping` field in the ConfigMap. Removing the wrong rook-ceph-mon-endpoint can cause unexpected behavior, including data loss. 1. Find the name of the Pending mon pod: @@ -366,3 +366,7 @@ To delete the mapping for the removed node: ``` The output of this command shows `health: HEALTH_OK` if Ceph is in a healthy state. + +1. After confirming that Ceph is in a healthy state, upgrade Rook Ceph to v1.4 or later before attempting to managing nodes in the cluster. + +For more information about these steps, see [Managing nodes when the previous Rook version is in use might leave Ceph in an unhealthy state where mon pods are not rescheduled](https://community.replicated.com/t/managing-nodes-when-the-previous-rook-version-is-in-use-might-leave-ceph-in-an-unhealthy-state-where-mon-pods-are-not-rescheduled/1099/1) in _Replicated Community_. \ No newline at end of file From ec8da389e8f3dcbc76fd8bfeba0728f27055843e Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Fri, 27 Jan 2023 09:39:09 -0700 Subject: [PATCH 087/234] change to workaround --- src/markdown-pages/install-with-kurl/managing-nodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index 8fe5bf94..31b00bd3 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -311,9 +311,9 @@ rook-ceph-mon-c 1/1 Running 0 13m This is caused by an issue in Rook Ceph v1.0.4 where the rook-ceph-mon-endpoints ConfigMap still maps a node that was removed. -#### Solution +#### Workaround -To resolve this issue, you must return the Ceph cluster to a healthy state and upgrade to Rook Ceph v1.4 or later. +To address this issue, you must return the Ceph cluster to a healthy state and upgrade to Rook Ceph v1.4 or later. To return Ceph to a healthy state so that you can upgrade, manually delete the mapping to the removed node from the rook-ceph-mon-endpoints ConfigMap then rescale the operator. From 787eb59096bc0c0cf03ce92933977373aacad826 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Fri, 27 Jan 2023 12:59:15 -0700 Subject: [PATCH 088/234] SC66707 Clarify dedicate block device requirment for rook --- src/markdown-pages/add-ons/rook.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/markdown-pages/add-ons/rook.md b/src/markdown-pages/add-ons/rook.md index f5245522..e3385492 100644 --- a/src/markdown-pages/add-ons/rook.md +++ b/src/markdown-pages/add-ons/rook.md @@ -31,8 +31,12 @@ flags-table ## Block Storage Rook versions 1.4.3 and later require a dedicated block device attached to each node in the cluster. -To meet this block storage requirement, you must add an unformatted disk that is used only for Rook to each node. +The block device must be unformatted and dedicated for use by Rook only. +The device cannot be used for other purposes, such as being part of a Raid configuration. +If the device is used for purposes other than Rook, then the installer fails, indicating that it cannot find an available block device for Rook. + For Rook versions earlier than 1.4.3, a dedicated block device is recommended in production clusters. + For disk requirements, see [Add-on Directory Disk Space Requirements](/docs/install-with-kurl/system-requirements/#add-on-directory-disk-space-requirements). You can enable and disable block storage for Rook versions earlier than 1.4.3 with the `isBlockStorageEnabled` field in the kURL spec. From b145fc0fd2c521e69ae6e25e023f9c06fb2d1afe Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Tue, 31 Jan 2023 09:46:56 -0700 Subject: [PATCH 089/234] add services out of quorum --- src/markdown-pages/install-with-kurl/managing-nodes.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index 31b00bd3..6414080f 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -287,7 +287,7 @@ This section includes information about troubleshooting issues with node removal #### Symptom -After you remove a node from a Rook Ceph v1.0.4 cluster and you run `kubectl -n rook-ceph exec deployment.apps/rook-ceph-operator -- ceph status`, you see that Ceph is in an unhealthy state where a Ceph monitor (mon) is down. +After you remove a node from a Rook Ceph v1.0.4 cluster and you run `kubectl -n rook-ceph exec deployment.apps/rook-ceph-operator -- ceph status`, you see that Ceph is in an unhealthy state where a Ceph monitor (mon) is down. For example: @@ -296,6 +296,13 @@ health: HEALTH_WARN 1/3 mons down, quorum a,c ``` +Additionally, under `services`, one or more are out of quorum: + +``` +services: + mon: 3 daemons, quorum a,c (age 5min), out of quorum: b +``` + When you run `kubectl -n rook-ceph get pod -l app=rook-ceph-mon`, you see that the mon pod is in a Pending state. For example: From 10875950bcbcf1ae5b6792316af2edbc33b6ff37 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Tue, 31 Jan 2023 12:07:45 -0700 Subject: [PATCH 090/234] Update src/markdown-pages/install-with-kurl/managing-nodes.md Co-authored-by: Ethan Mosbaugh --- src/markdown-pages/install-with-kurl/managing-nodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index 6414080f..b0981e85 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -374,6 +374,6 @@ To return Ceph to a healthy state and upgrade: The output of this command shows `health: HEALTH_OK` if Ceph is in a healthy state. -1. After confirming that Ceph is in a healthy state, upgrade Rook Ceph to v1.4 or later before attempting to managing nodes in the cluster. +1. After confirming that Ceph is in a healthy state, upgrade Rook Ceph to v1.4 or later before attempting to manage nodes in the cluster. For more information about these steps, see [Managing nodes when the previous Rook version is in use might leave Ceph in an unhealthy state where mon pods are not rescheduled](https://community.replicated.com/t/managing-nodes-when-the-previous-rook-version-is-in-use-might-leave-ceph-in-an-unhealthy-state-where-mon-pods-are-not-rescheduled/1099/1) in _Replicated Community_. \ No newline at end of file From c137dd6bcc509ec743dc6af47d3971ea93a326ae Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Thu, 2 Feb 2023 05:46:18 -0800 Subject: [PATCH 091/234] chore: remove flannel beta designation, make default cni (#935) * chore: remove flannel beta designation, make default cni * feat: flannel is incompatible with docker runtime * Update src/markdown-pages/introduction/what-kurl-does.md Co-authored-by: Rafael Polanco <6497491+rrpolanco@users.noreply.github.com> --------- Co-authored-by: Rafael Polanco <6497491+rrpolanco@users.noreply.github.com> --- src/components/App.js | 2 ++ src/components/Kurlsh.js | 1 - src/markdown-pages/add-ons/flannel.md | 3 +- src/markdown-pages/add-ons/kotsadm.md | 10 ++++--- .../create-installer/host-preflights/index.md | 1 + src/markdown-pages/create-installer/index.md | 4 +-- .../install-with-kurl/cis-compliance.md | 4 +-- src/markdown-pages/install-with-kurl/index.md | 6 ++-- src/markdown-pages/install-with-kurl/ipv6.md | 22 +++++++------- .../install-with-kurl/migrating-csi.md | 18 ++++++----- .../install-with-kurl/migrating.md | 30 +++++++++++-------- .../removing-object-storage.md | 20 +++++++------ .../install-with-kurl/system-requirements.md | 2 +- src/markdown-pages/introduction/index.md | 2 +- .../introduction/what-kurl-does.md | 6 ++-- 15 files changed, 70 insertions(+), 61 deletions(-) diff --git a/src/components/App.js b/src/components/App.js index e743686a..20021e18 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -262,6 +262,8 @@ cat install.sh | sudo bash -s airgap

    {installerData.spec.kubernetes && } + {installerData.spec.flannel && + } {installerData.spec.weave && } {installerData.spec.contour && diff --git a/src/components/Kurlsh.js b/src/components/Kurlsh.js index 07f46b70..fe73c8af 100644 --- a/src/components/Kurlsh.js +++ b/src/components/Kurlsh.js @@ -1251,7 +1251,6 @@ class Kurlsh extends React.Component { addOnId="flannel" addOnTitle="Flannel" addOnIcon="u-kubernetes" - isBeta={true} isAddOnChecked={isAddOnChecked["flannel"]} options={versions.flannel} getOptionLabel={this.getLabel("flannel")} diff --git a/src/markdown-pages/add-ons/flannel.md b/src/markdown-pages/add-ons/flannel.md index f23b2d4f..ec17db7e 100644 --- a/src/markdown-pages/add-ons/flannel.md +++ b/src/markdown-pages/add-ons/flannel.md @@ -5,7 +5,6 @@ linktitle: "Flannel" weight: 38 title: "Flannel Add-On" addOn: "flannel" -isBeta: true --- [Flannel](https://github.com/flannel-io/flannel) implements the Container Network Interface (CNI) to enable pod networking in a Kubernetes cluster. @@ -49,7 +48,7 @@ This can be overridden using the `podCIDR` to specify a specific address space, ## Limitations -* Migrations from Weave CNI are not supported +* Flannel is not compatible with the Docker container runtime * Migrations from Antrea CNI are not supported * Network Policies are not supported * IPv6 and dual stack networks are not supported diff --git a/src/markdown-pages/add-ons/kotsadm.md b/src/markdown-pages/add-ons/kotsadm.md index 63dfa229..900404f6 100644 --- a/src/markdown-pages/add-ons/kotsadm.md +++ b/src/markdown-pages/add-ons/kotsadm.md @@ -56,7 +56,7 @@ spec: version: latest containerd: version: latest - weave: + flannel: version: latest rook: version: latest @@ -78,7 +78,7 @@ spec: version: latest containerd: version: latest - weave: + flannel: version: latest openebs: version: latest @@ -102,10 +102,12 @@ spec: version: latest docker: version: latest - weave: + flannel: version: latest - longhorn: + openebs: version: latest + isLocalPVEnabled: true + localPVStorageClassName: default registry: version: latest kotsadm: diff --git a/src/markdown-pages/create-installer/host-preflights/index.md b/src/markdown-pages/create-installer/host-preflights/index.md index 19ccfde4..970c31c5 100644 --- a/src/markdown-pages/create-installer/host-preflights/index.md +++ b/src/markdown-pages/create-installer/host-preflights/index.md @@ -44,6 +44,7 @@ For each of the add-ons that you are using that have default host preflight chec For example, if your installer includes KOTS version 1.59.0, you would find the host preflight file at this link: https://github.com/replicatedhq/kURL/blob/main/addons/kotsadm/1.59.0/host-preflight.yaml. +Flannel: https://github.com/replicatedhq/kURL/tree/main/addons/flannel
    Weave: https://github.com/replicatedhq/kURL/tree/main/addons/weave
    Rook: https://github.com/replicatedhq/kURL/tree/main/addons/rook
    OpenEBS: https://github.com/replicatedhq/kURL/tree/main/addons/openebs
    diff --git a/src/markdown-pages/create-installer/index.md b/src/markdown-pages/create-installer/index.md index 87d65c12..e56c82ab 100644 --- a/src/markdown-pages/create-installer/index.md +++ b/src/markdown-pages/create-installer/index.md @@ -16,8 +16,8 @@ metadata: spec: kubernetes: version: "1.25.x" - weave: - version: "2.6.x" + flannel: + version: "0.20.x" contour: version: "1.22.x" minio: diff --git a/src/markdown-pages/install-with-kurl/cis-compliance.md b/src/markdown-pages/install-with-kurl/cis-compliance.md index 66f39fa5..62c835ee 100644 --- a/src/markdown-pages/install-with-kurl/cis-compliance.md +++ b/src/markdown-pages/install-with-kurl/cis-compliance.md @@ -39,8 +39,8 @@ spec: kubernetes: version: "1.23.x" cisCompliance: true - weave: - version: "2.6.x" + flannel: + version: "0.20.x" contour: version: "1.20.x" prometheus: diff --git a/src/markdown-pages/install-with-kurl/index.md b/src/markdown-pages/install-with-kurl/index.md index 937c8317..1ce80480 100644 --- a/src/markdown-pages/install-with-kurl/index.md +++ b/src/markdown-pages/install-with-kurl/index.md @@ -138,8 +138,8 @@ An example of how `latest` can be used in a spec is: spec: kubernetes: version: "1.25.x" - weave: - version: "2.6.x" + flannel: + version: "0.20.x" contour: version: "1.22.x" minio: @@ -261,7 +261,7 @@ If not available, the installer will attempt to find an available range with pre spec: kubernetes: serviceCIDR: "" - weave: + flannel: podCIDR: "" ``` diff --git a/src/markdown-pages/install-with-kurl/ipv6.md b/src/markdown-pages/install-with-kurl/ipv6.md index 72765f03..0d140376 100644 --- a/src/markdown-pages/install-with-kurl/ipv6.md +++ b/src/markdown-pages/install-with-kurl/ipv6.md @@ -23,25 +23,23 @@ spec: kurl: ipv6: true kubernetes: - version: "1.23.x" + version: "1.26.x" kotsadm: - version: "latest" + version: "1.93.0" antrea: - version: "latest" + version: "1.4.x" contour: - version: "1.20.x" + version: "1.23.x" prometheus: - version: "0.53.x" + version: "0.60.x" registry: - version: "2.7.x" + version: "2.8.x" containerd: - version: "1.4.x" + version: "1.6.x" ekco: version: "latest" - minio: - version: "2020-01-25T02-50-51Z" - longhorn: - version: "1.2.x" + rook: + version: "1.10.x" ``` There is no auto-detection of ipv6 or fall-back to ipv4 when ipv6 is not enabled on the host. @@ -61,7 +59,7 @@ There is no auto-detection of ipv6 or fall-back to ipv4 when ipv6 is not enabled * IPv6 forwarding must be enabled and bridge-call-nf6tables must be enabled. The installer does this automatically and configures this to persist after reboots. -* Using antrea, TCP 8091 and UDP 6081 have to be open between nodes instead of the ports used by weave (6784 and 6783). Antrea with encryption requires UDP port 51820 be open between nodes for wireguard and that the wireguard kernel module be available. +* Using antrea, TCP 8091 and UDP 6081 have to be open between nodes instead of the ports used by Flannel (UDP 8472). Antrea with encryption requires UDP port 51820 be open between nodes for wireguard and that the wireguard kernel module be available. * The ip6_tables kernel module must be available. The installer configures this to be loaded automatically. diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index d6d7fdec..d8de1594 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -22,8 +22,8 @@ spec: version: 1.19.12 docker: version: 20.10.5 - weave: - version: 2.6.5 + flannel: + version: 0.20.2 rook: version: 1.0.4 ``` @@ -40,8 +40,8 @@ spec: version: 1.19.12 docker: version: 20.10.5 - weave: - version: 2.6.5 + flannel: + version: 0.20.2 openebs: version: 3.3.0 isLocalPVEnabled: true @@ -59,10 +59,12 @@ spec: version: 1.19.12 docker: version: 20.10.5 - weave: - version: 2.6.5 - longhorn: - version: 1.1.2 + flannel: + version: 0.20.2 + openebs: + version: 3.3.0 + isLocalPVEnabled: true + localPVStorageClassName: default minio: version: 2020-01-25T02-50-51Z ``` diff --git a/src/markdown-pages/install-with-kurl/migrating.md b/src/markdown-pages/install-with-kurl/migrating.md index 812554c0..46d3a8cd 100644 --- a/src/markdown-pages/install-with-kurl/migrating.md +++ b/src/markdown-pages/install-with-kurl/migrating.md @@ -38,7 +38,7 @@ For information about how to change the CSI from Rook to Longhorn or OpenEBS, se ## Example Old and New Specs -In the new spec, the Kubernetes version has been upgraded to 1.21, Rook has been replaced with Longhorn and Minio, Weave has been replaced with Antrea, and docker has been replaced with containerd. +In the new spec, the Kubernetes version has been upgraded to 1.21, Longhorn has been replaced with OpenEBS, Weave has been replaced with Flannel, and docker has been replaced with containerd. ### Old @@ -54,8 +54,10 @@ spec: version: 20.10.5 weave: version: 2.6.5 - rook: - version: 1.0.4 + longhorn: + version: 1.3.1 + minio: + version: 2020-01-25T02-50-51Z registry: version: 2.7.1 kotsadm: @@ -73,19 +75,21 @@ metadata: name: new spec: kubernetes: - version: 1.21.2 + version: 1.21.14 containerd: - version: 1.4.6 - antrea: - version: 1.1.0 - longhorn: - version: 1.1.1 + version: 1.6.15 + flannel: + version: 0.20.2 + openebs: + version: 3.3.0 + isLocalPVEnabled: true + localPVStorageClassName: default minio: - version: 2020-01-25T02-50-51Z + version: 2023-01-25T00-19-54Z registry: - version: 2.7.1 + version: 2.8.1 kotsadm: - version: 1.45.0 + version: 1.93.0 velero: - version: 1.6.1 + version: 1.9.5 ``` diff --git a/src/markdown-pages/install-with-kurl/removing-object-storage.md b/src/markdown-pages/install-with-kurl/removing-object-storage.md index 67768a0a..3acf23ec 100644 --- a/src/markdown-pages/install-with-kurl/removing-object-storage.md +++ b/src/markdown-pages/install-with-kurl/removing-object-storage.md @@ -24,19 +24,21 @@ metadata: name: no-object-storage spec: kubernetes: - version: 1.21.x + version: 1.26.x containerd: - version: 1.4.x - weave: - version: 2.6.5 - longhorn: - version: 1.2.x + version: 1.6.x + flannel: + version: 0.20.x + openebs: + version: 3.3.x + isLocalPVEnabled: true + localPVStorageClassName: default registry: - version: 2.5.7 + version: 2.8.x velero: - version: 1.7.x + version: 1.9.x kotsadm: - version: 1.58.x + version: 1.93.x disableS3: true ``` diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index 4d54982d..fef1151b 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -97,7 +97,7 @@ The following ports must be open between nodes for multi-node clusters: | UDP | Inbound | 6783-6784 | Weave Net data | All | | TCP | Inbound | 9090 | Rook CSI RBD Plugin Metrics | All | -These ports are required for [Kubernetes](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#control-plane-node-s) and [Weave Net](https://www.weave.works/docs/net/latest/faq/#ports). +These ports are required for [Kubernetes](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#control-plane-node-s), [Flannel](https://github.com/flannel-io/flannel/blob/master/Documentation/backends.md#vxlan), and [Weave Net](https://www.weave.works/docs/net/latest/faq/#ports). ### Ports Available diff --git a/src/markdown-pages/introduction/index.md b/src/markdown-pages/introduction/index.md index 906a166d..985a97a4 100644 --- a/src/markdown-pages/introduction/index.md +++ b/src/markdown-pages/introduction/index.md @@ -6,7 +6,7 @@ linktitle: "Overview" title: "Introduction to kURL" --- -The Kubernetes URL Creator is a framework for creating custom Kubernetes distributions. These distros can then be shared as URLs (to install via `curl` and `bash`) or as downloadable packages (to install in airgapped environments). kURL relies on [kubeadm](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/) to bring up the Kubernetes control plane, but there are a variety of tasks a system administrator must perform both before and after running kubeadm init in order to have a production-ready Kubernetes cluster. kURL is open source, with a growing list of [add-on components](/add-ons) (including Rook, Weave, Contour, Prometheus, and more) which is easily extensible by [contributing additional add-ons](/docs/add-on-author/). +The Kubernetes URL Creator is a framework for creating custom Kubernetes distributions. These distros can then be shared as URLs (to install via `curl` and `bash`) or as downloadable packages (to install in airgapped environments). kURL relies on [kubeadm](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/) to bring up the Kubernetes control plane, but there are a variety of tasks a system administrator must perform both before and after running kubeadm init in order to have a production-ready Kubernetes cluster. kURL is open source, with a growing list of [add-on components](/add-ons) (including Rook, Flannel, Contour, Prometheus, and more) which is easily extensible by [contributing additional add-ons](/docs/add-on-author/). ## kURL vs. Standard Distros ### Production Grade Upstream Kubernetes diff --git a/src/markdown-pages/introduction/what-kurl-does.md b/src/markdown-pages/introduction/what-kurl-does.md index 757949d8..712dc303 100644 --- a/src/markdown-pages/introduction/what-kurl-does.md +++ b/src/markdown-pages/introduction/what-kurl-does.md @@ -30,12 +30,12 @@ kURL will perform the following steps on the host prior to delegating to `kubead * Configure Docker/containerd and Kubernetes to work behind a proxy if detected ## After kubeadm (Adding Add-Ons) -Once kubeadm gets the cluster running, it’s not ready for an application yet. A cluster will need networking, storage and more. These services are provided by other open source components, including a lot of the CNCF ecosystem. In a kURL installation manifest, you can specify the additional add-ons that are installed after kubectl starts the cluster. For example, you can include Weave for a CNI plugin, Rook for distributed storage, Prometheus for monitoring and Fluentd for log aggregation. In addition to specifying the add-ons and versions, most add-ons include advanced options that allow you to specify the initial configuration. +Once kubeadm gets the cluster running, it’s not ready for an application yet. A cluster will need networking, storage and more. These services are provided by other open source components, many of them from the CNCF ecosystem. In a kURL installation manifest, you can specify the additional add-ons that are installed after kubectl starts the cluster. For example, you can include Flannel for a CNI plugin, Rook for distributed storage, Prometheus for monitoring and Fluentd for log aggregation. In addition to specifying the add-ons and versions, most add-ons include advanced options that allow you to specify the initial configuration. After `kubeadm init` has brought up the Kubernetes control plane, kURL will install add-ons into the cluster. The available add-ons are: -* [Weave](https://www.weave.works/oss/net/) +* [Flannel](https://github.com/flannel-io/flannel/releases) * [Contour](https://projectcontour.io/) * [OpenEBS](https://openebs.io/) * [Rook](https://rook.io/) @@ -49,4 +49,4 @@ The available add-ons are: * [Velero](https://velero.io/) * [EKCO](https://github.com/replicatedhq/ekco) * [Sonobuoy](https://github.com/vmware-tanzu/sonobuoy/releases) -* [Cert Mnager](https://github.com/cert-manager/cert-manager) +* [Cert Manager](https://github.com/cert-manager/cert-manager) From 04f5225b6243edb665a23005b380325e39092291 Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Mon, 6 Feb 2023 23:43:39 +0000 Subject: [PATCH 092/234] chore: improve disk space requirements docs --- src/markdown-pages/add-ons/rook.md | 36 +++++----- .../install-with-kurl/managing-nodes.md | 4 +- .../install-with-kurl/system-requirements.md | 72 ++++++++++++------- 3 files changed, 66 insertions(+), 46 deletions(-) diff --git a/src/markdown-pages/add-ons/rook.md b/src/markdown-pages/add-ons/rook.md index e3385492..7039cb54 100644 --- a/src/markdown-pages/add-ons/rook.md +++ b/src/markdown-pages/add-ons/rook.md @@ -28,6 +28,16 @@ spec: flags-table +## System Requirements + +The following ports must be open between nodes for multi-node clusters: + +| Protocol | Direction | Port Range | Purpose | Used By | +| ------- | --------- | ---------- | ----------------------- | ------- | +| TCP | Inbound | 9090 | CSI RBD Plugin Metrics | All | + +The `/var/lib/rook/` directory requires at least 10 GB space available for Ceph monitor metadata. + ## Block Storage Rook versions 1.4.3 and later require a dedicated block device attached to each node in the cluster. @@ -60,7 +70,7 @@ Additionally, `blockDeviceFilter` instructs Rook to use only block devices that For more information about the available options, see [Advanced Install Options](#advanced-install-options) above. The Rook add-on waits for the dedicated disk that you attached to your node before continuing with installation. -If you attached a disk to your node, but the installer is waiting at the Rook add-on installation step, see [OSD pods are not created on my devices](https://rook.io/docs/rook/v1.0/ceph-common-issues.html#osd-pods-are-not-created-on-my-devices) in the Rook documentation for troubleshooting information. +If you attached a disk to your node, but the installer is waiting at the Rook add-on installation step, see [OSD pods are not created on my devices](https://rook.io/docs/rook/v1.10/Troubleshooting/ceph-common-issues/#osd-pods-are-not-created-on-my-devices) in the Rook documentation for troubleshooting information. ## Filesystem Storage @@ -68,21 +78,17 @@ By default, for Rook versions earlier than 1.4.3, the cluster uses the filesyste However, block storage is recommended for Rook in production clusters. For more information, see [Block Storage](#block-storage) above. -When using the filesystem for storage, each node in the cluster has a single OSD backed by a directory in `/opt/replicated/rook`. -Nodes with a Ceph Monitor also use `/var/lib/rook`. - -Sufficient disk space must be available to `/var/lib/rook` for the Ceph Monitors and other configs. For disk requirements, see [Add-on Directory Disk Space Requirements](/docs/install-with-kurl/system-requirements/#add-on-directory-disk-space-requirements). - -We recommend a separate partition to prevent a disruption in Ceph's operation as a result of `/var` or the root partition running out of space. +When using the filesystem for storage, each node in the cluster has a single OSD backed by a directory in `/opt/replicated/rook/`. +We recommend a separate partition at `/opt/replicated/rook/` to prevent a disruption in Ceph's operation as a result the root partition running out of space. **Note**: All disks used for storage in the cluster should be of similar size. A cluster with large discrepancies in disk size may fail to replicate data to all available nodes. ## Shared Filesystem -The [Ceph filesystem](https://rook.io/docs/rook/v1.4/ceph-filesystem.html) is supported with version 1.4.3+. +The [Ceph filesystem](https://rook.io/docs/rook/v1.10/Storage-Configuration/Shared-Filesystem-CephFS/filesystem-storage/) is supported with version 1.4.3+. This allows the use of PersistentVolumeClaims with access mode `ReadWriteMany`. -Set the storage class to `rook-cephfs` in the pvc spec to use this feature. +Set the storage class to `rook-cephfs` in the PVC spec to use this feature. ```yaml apiVersion: v1 @@ -98,14 +104,6 @@ spec: storageClassName: rook-cephfs ``` -## System Requirements - -The following additional ports must be open between nodes for multi-node clusters: - -| Protocol | Direction | Port Range | Purpose | Used By | -| ------- | --------- | ---------- | ----------------------- | ------- | -| TCP | Inbound | 9090 | CSI RBD Plugin Metrics | All | - ## Upgrades It is now possible to upgrade multiple minor versions of the Rook add-on at once. @@ -121,10 +119,10 @@ For example: curl https://k8s.kurl.sh/latest/tasks.sh | sudo bash -s rook-upgrade to-version=1.10 ``` -Rook upgrades from 1.0.x migrate data off of any hostpath-based OSDs in favor of block device-based OSDs. +Rook upgrades from 1.0.x migrate data off of any filesystem-based OSDs in favor of block device-based OSDs. The upstream Rook project introduced a requirement for block storage in versions 1.3.x and later. -## Monitor Rook Ceph +## Monitoring For Rook version 1.9.12 and later, when you install with both the Rook add-on and the Prometheus add-on, kURL enables Ceph metrics collection and creates a Ceph cluster statistics Grafana dashboard. diff --git a/src/markdown-pages/install-with-kurl/managing-nodes.md b/src/markdown-pages/install-with-kurl/managing-nodes.md index b0981e85..30e4b3b5 100644 --- a/src/markdown-pages/install-with-kurl/managing-nodes.md +++ b/src/markdown-pages/install-with-kurl/managing-nodes.md @@ -104,7 +104,7 @@ Complete the following prerequisites before you remove one or more nodes from a * Upgrade Rook Ceph to v1.4 or later. - The two latest minor releases of Rook Ceph are actively maintained. It is recommended to upgrade to the latest stable release available. For more information, see [Release Cycle](https://rook.io/docs/rook/latest/Getting-Started/release-cycle/) in the Rook Ceph documentation. + The two latest minor releases of Rook Ceph are actively maintained. It is recommended to upgrade to the latest stable release available. For more information, see [Release Cycle](https://rook.io/docs/rook/v1.10/Getting-Started/release-cycle/) in the Rook Ceph documentation. Attempting to remove a node from a cluster that uses a Rook Ceph version earlier than v1.4 can cause Ceph to enter an unhealthy state. For example, see [Rook Ceph v1.0.4 is Unhealthy with Mon Pods Not Rescheduled](#rook-ceph-v104-is-unhealthy-with-mon-pods-not-rescheduled) under _Troubleshoot Node Removal_ below. @@ -115,7 +115,7 @@ Complete the following prerequisites before you remove one or more nodes from a * (Recommended) Use the `rook-ceph-tools` Pod to access the ceph CLI. Use the same version of the Rook toolbox as the version of Rook Ceph that is installed in the cluster. By default, the `rook-ceph-tools` Pod is included on kURL clusters with Rook Ceph v1.4 and later. - For more information about `rook-ceph-tools` Pods, see [Rook Toolbox](https://rook.io/docs/rook/v1.5/ceph-toolbox.html) in the Rook Ceph documentation. + For more information about `rook-ceph-tools` Pods, see [Rook Toolbox](https://rook.io/docs/rook/v1.10/Troubleshooting/ceph-toolbox/) in the Rook Ceph documentation. * Use `kubectl exec` to enter the `rook-ceph-operator` Pod, where the ceph CLI is available. diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index fef1151b..ec79c8d4 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -16,43 +16,66 @@ title: "System Requirements" * Oracle Linux 7.4\*, 7.5\*, 7.6\*, 7.7\*, 7.8\*, 7.9, 8.0\*, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7 (OL 8.x requires Containerd) * Amazon Linux 2 -*: This version is deprecated since it is no longer supported by its creator. We continue to support it, but support will be removed in the future. +** This version is deprecated since it is no longer supported by its creator. We continue to support it, but support will be removed in the future.* ## Minimum System Requirements * 4 AMD64 CPUs or equivalent per machine * 8 GB of RAM per machine -* 40 GB of Disk Space per machine -* The Rook add-on version 1.4.3 and later requires a dedicated block device on each node in the cluster. - For more information about how to enable block storage for Rook, see [Block Storage](/docs/add-ons/rook#block-storage) in _Rook Add-On_. -* TCP ports 2379, 2380, 6443, 10250, 10251 and 10252 open between cluster nodes - * **Note**: When [Flannel](/docs/add-ons/flannel) is enabled, UDP port 8472 open between cluster nodes - * **Note**: When [Weave](/docs/add-ons/weave) is enabled, TCP port 6783 and UDP port 6783 and 6784 open between cluster nodes +* 100 GB of Disk Space per machine + *(For more specific requirements see [Disk Space Requirements](#disk-space-requirements) below)* +* TCP ports 2379, 2380, 6443, 10250, 10251 and 10252 and UDP port 8472 (Flannel VXLAN) open between cluster nodes + *(For more specific add-on requirements see [Networking Requirements](#networking-requirements) below)* -## Core Directory Disk Space Requirements +## Disk Space Requirements + +### Core Requirements The following table lists information about the core directory requirements. -| Name | Location | Requirements | -| ------------| ------------------- | -------------------------------------------------- | -| etcd | /var/lib/etcd/ | This directory has a high I/O requirement. See [Cloud Disk Performance](/docs/install-with-kurl/system-requirements#cloud-disk-performance). | -| kURL | /var/lib/kurl/ |

    5 GB

    kURL installs additional dependencies in the directory /var/lib/kurl/, including utilities, system packages, and container images. This directory must be writeable by the kURL installer and must have sufficient disk space.

    This directory can be overridden with the flag `kurl-install-directory`. See [kURL Advanced Install Options](/docs/install-with-kurl/advanced-options).

    | -| kubelet | /var/lib/kubelet/ | 30 GiB and less than 80% full. See [Host Preflights](/docs/install-with-kurl/host-preflights). | +| Name | Location | Requirements | Description | +| -------------- | -------------------- | ---------------------------- | ----------- | +| etcd | /var/lib/etcd/ | 2 GB | Kubernetes etcd cluster data directory. See the [etcd documentation](https://etcd.io/docs/v3.5/op-guide/hardware/#disks) and [Cloud Disk Performance](#cloud-disk-performance) for more information and recommendations. | +| kubelet | /var/lib/kubelet/ | 30 GB * | Used for local disk volumes, emptyDir, log storage, and more. See the Kubernetes [Resource Management for Pods and Containers documentation](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#local-ephemeral-storage) for more information. | +| containerd | /var/lib/containerd/ | 30 GB * | Snapshots, content, metadata for containers and image, as well as any plugin data will be kept in this location. See the [containerd documentation](https://github.com/containerd/containerd/blob/main/docs/ops.md#base-configuration) for more information. | +| kube-apiserver | /var/log/apiserver/ | 1 GB | Kubernetes audit logs. See Kubernetes [Auditing documentation](https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/) for mode information. | +| kURL | /var/lib/kurl/ | 10 GB ** | kURL data directory used to store utilities, system packages, and container images. This directory can be overridden with the flag `kurl-install-directory` (see [kURL Advanced Install Options](/docs/install-with-kurl/advanced-options)) | + +** This requirement depends on the size of the container images and the amout of ephemeral data used by your application containers.* + +*** This requirement can vary depending on your choice of kURL add-ons and can grow over time.* -## Add-on Directory Disk Space Requirements +In addition to the storage requirements, the Kubernetes [garbage collection](https://kubernetes.io/docs/concepts/architecture/garbage-collection/) process attempts to ensure that the Node and Image filesystems do not reach their minimum available disk space [thresholds](https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#hard-eviction-thresholds) of 10% and 15% reqpectively. +For this reason, kURL recommends an additional 20% overhead on top of these disk space requirements for the volume or volumes containing the directories /var/lib/kubelet/ and /var/lib/containerd/. +For more information see the Kubernetes [Reclaiming node level resources](https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#reclaim-node-resources) documentation. + +### Add-on Requirements The following table lists the add-on directory locations and disk space requirements, if applicable. For any additional requirements, see the specific topic for the add-on. -| Name | Location | Requirements | -| --------------| ------------------- | ------------------------------| -| Containerd | /var/lib/containerd/ | N/A | -| Docker |

    /var/lib/docker/

    /var/lib/dockershim/

    |

    Docker: 30 GB and less than 80% full

    Dockershim: N/A

    See [Docker Add-on](/docs/add-ons/docker). | -| Longhorn | /var/lib/longhorn/ |

    This directory should have enough space to hold a complete copy of every PersistentVolumeClaim that will be in the cluster. See [Longhorn Add-on](/docs/add-ons/longhorn).

    For host preflights, it should have 50GiB total space and be less than 80% full. See [Host Preflights](/docs/install-with-kurl/host-preflights).

    | -| OpenEBS | /var/openebs/ | N/A | -| Rook |

    Versions earlier than 1.0.4-x: /opt/replicated/rook

    Versions 1.0.4-x and later: /var/lib/rook/

    |

    /opt/replicated/rook requires a minimum of 10GB and less than 80% full.

    /var/lib/rook/ requires a 10 GB block device.

    See [Rook Add-on](/docs/add-ons/rook).

    | -|Weave |

    /var/lib/cni/

    /var/lib/weave/

    | N/A | +| Name | Location | Requirements | Description | +| ------ | -------------------- | ------------ | ----------- | +| Docker | /var/lib/docker/ | 30 GB * | Images, containers and volumes, and more will be kept in this location. See the [Docker Storage documentation](https://docs.docker.com/storage/) for more information. When using the Docker runtime, /var/lib/containerd/ is not required. | +| Docker | /var/lib/dockershim/ | N/A | Kubernetes dockershim data directory | +| Weave | /var/lib/cni/ | N/A | Container networking data directory | +| Weave | /var/lib/weave/ | N/A | Weave data directory | +| Rook | /var/lib/rook/ | 10 GB | Ceph monitor metadata directory. See the [ceph-mon Minimum Hardware Recommendations](https://docs.ceph.com/en/quincy/start/hardware-recommendations/#minimum-hardware-recommendations) for more information. | + +** This requirement depends on the size of the container images and the amout of ephemeral data used by your application containers.* + +### Persistent Volume Requirements + +Depending on the amount of persistent data stored by your application, you will need to allocate enough disk space at the following location dependent on your PVC provisioner or provisioners. + +| Name | Location | Description | +| -------------------- | --------------------- | ----------- | +| OpenEBS | /var/openebs/local/ | See [OpenEBS Add-on](/docs/add-ons/openebs) | +| Rook (Block Storage) | | Rook add-on version 1.4.3 and later requires an unformatted storage device on each node in the cluster (see [Rook Block Storage](/docs/add-ons/rook#block-storage)) | +| Rook (version 1.0.x) | /opt/replicated/rook/ | See [Rook Filesystem Storage](/docs/add-ons/rook#filesystem-storage) | +| Longhorn | /var/lib/longhorn/ | See [Longhorn Add-on](/docs/add-ons/longhorn) | ## Networking Requirements + ### Firewall Openings for Online Installations The following domains need to be accessible from servers performing online kURL installs. @@ -74,7 +97,6 @@ See [Advanced Options](/docs/install-with-kurl/advanced-options) for installer f The following ports must be open between nodes for multi-node clusters: - #### Primary Nodes: | Protocol | Direction | Port Range | Purpose | Used By | @@ -134,7 +156,7 @@ At least 2 nodes should be used for data durability for applications that use pe ### Load Balancers -```mermaid +``` %%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#f5f8fc'}}}%% graph TB A(TCP Load Balancer) @@ -146,7 +168,7 @@ graph TB Highly available cluster setups that do not leverage EKCO's [internal load balancing capability](/docs/add-ons/ekco#internal-load-balancer) require a load balancer to route requests to healthy nodes. The following requirements need to be met for load balancers used on the control plane (primary nodes): 1. The load balancer must be able to route TCP traffic, as opposed to Layer 7/HTTP traffic. -1. The load balancer must support hairpinning, i.e. nodes referring to eachother through the load balancer IP. +1. The load balancer must support hairpinning, i.e. nodes referring to each other through the load balancer IP. * **Note**: On AWS, only internet-facing Network Load Balancers (NLBs) and internal AWS NLBs **using IP targets** (not Instance targets) support this.

    1. Load balancer health checks should be configured using TCP probes of port 6443 on each primary node. 1. The load balancer should target each primary node on port 6443. From eab882147e09e6f04009ee693adc5c5574358b8f Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Tue, 7 Feb 2023 19:05:40 +0000 Subject: [PATCH 093/234] feedback --- .../install-with-kurl/system-requirements.md | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index ec79c8d4..4a29899e 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -33,15 +33,15 @@ title: "System Requirements" The following table lists information about the core directory requirements. -| Name | Location | Requirements | Description | -| -------------- | -------------------- | ---------------------------- | ----------- | -| etcd | /var/lib/etcd/ | 2 GB | Kubernetes etcd cluster data directory. See the [etcd documentation](https://etcd.io/docs/v3.5/op-guide/hardware/#disks) and [Cloud Disk Performance](#cloud-disk-performance) for more information and recommendations. | -| kubelet | /var/lib/kubelet/ | 30 GB * | Used for local disk volumes, emptyDir, log storage, and more. See the Kubernetes [Resource Management for Pods and Containers documentation](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#local-ephemeral-storage) for more information. | -| containerd | /var/lib/containerd/ | 30 GB * | Snapshots, content, metadata for containers and image, as well as any plugin data will be kept in this location. See the [containerd documentation](https://github.com/containerd/containerd/blob/main/docs/ops.md#base-configuration) for more information. | -| kube-apiserver | /var/log/apiserver/ | 1 GB | Kubernetes audit logs. See Kubernetes [Auditing documentation](https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/) for mode information. | -| kURL | /var/lib/kurl/ | 10 GB ** | kURL data directory used to store utilities, system packages, and container images. This directory can be overridden with the flag `kurl-install-directory` (see [kURL Advanced Install Options](/docs/install-with-kurl/advanced-options)) | +| Name | Location | Requirements | Description | +| -------------- | -------------------- | ------------------ | ----------- | +| etcd | /var/lib/etcd/ | 2 GB | Kubernetes etcd cluster data directory. See the [etcd documentation](https://etcd.io/docs/v3.5/op-guide/hardware/#disks) and [Cloud Disk Performance](#cloud-disk-performance) for more information and recommendations. | +| kubelet | /var/lib/kubelet/ | *30 GB ** | Used for local disk volumes, emptyDir, log storage, and more. See the Kubernetes [Resource Management for Pods and Containers documentation](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#local-ephemeral-storage) for more information. | +| containerd | /var/lib/containerd/ | *30 GB ** | Snapshots, content, metadata for containers and image, as well as any plugin data will be kept in this location. See the [containerd documentation](https://github.com/containerd/containerd/blob/main/docs/ops.md#base-configuration) for more information. | +| kube-apiserver | /var/log/apiserver/ | 1 GB | Kubernetes audit logs. See Kubernetes [Auditing documentation](https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/) for mode information. | +| kURL | /var/lib/kurl/ | *10 GB *** | kURL data directory used to store utilities, system packages, and container images. This directory can be overridden with the flag `kurl-install-directory` (see [kURL Advanced Install Options](/docs/install-with-kurl/advanced-options)) | -** This requirement depends on the size of the container images and the amout of ephemeral data used by your application containers.* +** This requirement depends on the size of the container images and the amount of ephemeral data used by your application containers.* *** This requirement can vary depending on your choice of kURL add-ons and can grow over time.* @@ -53,15 +53,19 @@ For more information see the Kubernetes [Reclaiming node level resources](https: The following table lists the add-on directory locations and disk space requirements, if applicable. For any additional requirements, see the specific topic for the add-on. -| Name | Location | Requirements | Description | -| ------ | -------------------- | ------------ | ----------- | -| Docker | /var/lib/docker/ | 30 GB * | Images, containers and volumes, and more will be kept in this location. See the [Docker Storage documentation](https://docs.docker.com/storage/) for more information. When using the Docker runtime, /var/lib/containerd/ is not required. | -| Docker | /var/lib/dockershim/ | N/A | Kubernetes dockershim data directory | -| Weave | /var/lib/cni/ | N/A | Container networking data directory | -| Weave | /var/lib/weave/ | N/A | Weave data directory | -| Rook | /var/lib/rook/ | 10 GB | Ceph monitor metadata directory. See the [ceph-mon Minimum Hardware Recommendations](https://docs.ceph.com/en/quincy/start/hardware-recommendations/#minimum-hardware-recommendations) for more information. | +| Name | Location | Requirements | Description | +| -------- | -------------------- | ------------- | ----------- | +| Docker | /var/lib/docker/ | *30 GB ** | Images, containers and volumes, and more will be kept in this location. See the [Docker Storage documentation](https://docs.docker.com/storage/) for more information. When using the Docker runtime, /var/lib/containerd/ is not required. | +| Docker | /var/lib/dockershim/ | N/A | Kubernetes dockershim data directory | +| Weave | /var/lib/cni/ | N/A | Container networking data directory | +| Weave | /var/lib/weave/ | N/A | Weave data directory | +| Rook | /var/lib/rook/ | 10 GB | Ceph monitor metadata directory. See the [ceph-mon Minimum Hardware Recommendations](https://docs.ceph.com/en/quincy/start/hardware-recommendations/#minimum-hardware-recommendations) for more information. | +| Registry | *PVC *** | N/A | Stores container images only in airgapped clusters. Data will be stored in Persistent Volumes. | +| Velero | *PVC *** | N/A | Stores snapshot data. Data will be stored in Persistent Volumes. | -** This requirement depends on the size of the container images and the amout of ephemeral data used by your application containers.* +** This requirement depends on the size of the container images and the amount of ephemeral data used by your application containers.* + +*** Data will be stored in Persistent Volumes. Requirements depend on the provisioner of choice. See [Persistent Volume Requirements](#persistent-volume-requirements) for more information.* ### Persistent Volume Requirements @@ -144,7 +148,7 @@ In addition to the networking requirements described in the previous section, op ### Control Plane HA To operate the Kubernetes control plane in HA mode, it is recommended to have a minimum of 3 primary nodes. -In the event that one of these nodes becomes unavailable, the remaining two will still be able to function with an etcd quorom. +In the event that one of these nodes becomes unavailable, the remaining two will still be able to function with an etcd quorum. As the cluster scales, dedicating these primary nodes to control-plane only workloads using the `noSchedule` taint should be considered. This will affect the number of nodes that need to be provisioned. From 088a66a84e98720654d219e4b7044e529308beef Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Tue, 7 Feb 2023 22:41:29 +0000 Subject: [PATCH 094/234] fix: update control plane port requirements --- src/components/App.js | 8 ++++---- .../install-with-kurl/system-requirements.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/App.js b/src/components/App.js index 20021e18..de343307 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -218,7 +218,7 @@ cat install.sh | sudo bash -s airgap {installerData && installerData.spec.flannel && installerData.spec.flannel.version &&
  • - TCP ports 2379, 2380, 6443, 10250, 10251 and 10252 open between cluster nodes + TCP ports 2379, 2380, 6443, 10250, 10257 and 10259 open between cluster nodes
  • } {installerData && installerData.spec.flannel && installerData.spec.flannel.version &&
  • @@ -226,7 +226,7 @@ cat install.sh | sudo bash -s airgap
  • } {installerData && installerData.spec.weave && installerData.spec.weave.version &&
  • - TCP ports 2379, 2380, 6443, 6783, 10250, 10251 and 10252 open between cluster nodes + TCP ports 2379, 2380, 6443, 6783, 10250, 10257 and 10259 open between cluster nodes
  • } {installerData && installerData.spec.weave && installerData.spec.weave.version &&
  • @@ -236,10 +236,10 @@ cat install.sh | sudo bash -s airgap
  • {installerData.spec.antrea.isEncryptionDisabled ? - TCP ports 2379, 2380, 6443, 8091, 10250, 10251 and 10252 open between cluster nodes + TCP ports 2379, 2380, 6443, 8091, 10250, 10257 and 10259 open between cluster nodes : - TCP ports 2379, 2380, 6443, 8091, 10250, 10251, 10252 and 51820 open between cluster nodes + TCP ports 2379, 2380, 6443, 8091, 10250, 10257, 10259 and 51820 open between cluster nodes }
  • } {installerData && installerData.spec.antrea && installerData.spec.antrea.version && diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index 4a29899e..4146a72f 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -24,7 +24,7 @@ title: "System Requirements" * 8 GB of RAM per machine * 100 GB of Disk Space per machine *(For more specific requirements see [Disk Space Requirements](#disk-space-requirements) below)* -* TCP ports 2379, 2380, 6443, 10250, 10251 and 10252 and UDP port 8472 (Flannel VXLAN) open between cluster nodes +* TCP ports 2379, 2380, 6443, 10250, 10257 and 10259 and UDP port 8472 (Flannel VXLAN) open between cluster nodes *(For more specific add-on requirements see [Networking Requirements](#networking-requirements) below)* ## Disk Space Requirements From 07f732ae7a0137c6270accd9ae58175268988d3b Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Tue, 7 Feb 2023 22:47:22 +0000 Subject: [PATCH 095/234] chore: add pvc storage requirements --- .../install-with-kurl/system-requirements.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index 4146a72f..a9608f24 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -73,10 +73,10 @@ Depending on the amount of persistent data stored by your application, you will | Name | Location | Description | | -------------------- | --------------------- | ----------- | -| OpenEBS | /var/openebs/local/ | See [OpenEBS Add-on](/docs/add-ons/openebs) | -| Rook (Block Storage) | | Rook add-on version 1.4.3 and later requires an unformatted storage device on each node in the cluster (see [Rook Block Storage](/docs/add-ons/rook#block-storage)) | -| Rook (version 1.0.x) | /opt/replicated/rook/ | See [Rook Filesystem Storage](/docs/add-ons/rook#filesystem-storage) | -| Longhorn | /var/lib/longhorn/ | See [Longhorn Add-on](/docs/add-ons/longhorn) | +| OpenEBS | /var/openebs/local/ | OpenEBS Local PV Hostpath volumes will be created under this directory. See the [OpenEBS Add-on](/docs/add-ons/openebs) documentation for more information. | +| Rook (Block Storage) | | Rook add-on version 1.4.3 and later requires an unformatted storage device on each node in the cluster for Ceph volumes. See the [Rook Block Storage](/docs/add-ons/rook#block-storage) documentation for more information. | +| Rook (version 1.0.x) | /opt/replicated/rook/ | Rook Filesystem volumes will be created under this directory. See the [Rook Filesystem Storage](/docs/add-ons/rook#filesystem-storage) documentation for more information. | +| Longhorn | /var/lib/longhorn/ | Longhorn volumes will be created under this directory. See the [Longhorn Add-on](/docs/add-ons/longhorn) documentation for more information. | ## Networking Requirements From 29b5623e5fdbd62064fe794df256fbccde99ae80 Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Tue, 7 Feb 2023 22:50:24 +0000 Subject: [PATCH 096/234] fix: update cloud disk performance docs to match 100gb disk recommendation --- src/markdown-pages/install-with-kurl/system-requirements.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index a9608f24..60097beb 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -189,7 +189,7 @@ Load balancer requirements for application workloads vary depending on workload. The following example cloud VM instance/disk combinations are known to provide sufficient performance for etcd and will pass the write latency preflight. -* AWS m4.xlarge with 80 GB standard EBS root device +* AWS m4.xlarge with 100 GB standard EBS root device * Azure D4ds_v4 with 8 GB ultra disk mounted at /var/lib/etcd provisioned with 2400 IOPS and 128 MB/s throughput -* Google Cloud Platform n1-standard-4 with 50 GB pd-ssd boot disk +* Google Cloud Platform n1-standard-4 with 100 GB pd-ssd boot disk * Google Cloud Platform n1-standard-4 with 500 GB pd-standard boot disk From 43f7e0d49974361db0f3828d7cc3dda1916d30ec Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Wed, 8 Feb 2023 20:42:15 +0000 Subject: [PATCH 097/234] fix: recommend a second disk or partition at /opt/replicated/rook --- src/markdown-pages/add-ons/rook.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/add-ons/rook.md b/src/markdown-pages/add-ons/rook.md index 7039cb54..71c15b46 100644 --- a/src/markdown-pages/add-ons/rook.md +++ b/src/markdown-pages/add-ons/rook.md @@ -79,7 +79,7 @@ However, block storage is recommended for Rook in production clusters. For more information, see [Block Storage](#block-storage) above. When using the filesystem for storage, each node in the cluster has a single OSD backed by a directory in `/opt/replicated/rook/`. -We recommend a separate partition at `/opt/replicated/rook/` to prevent a disruption in Ceph's operation as a result the root partition running out of space. +We recommend a separate disk or partition at `/opt/replicated/rook/` to prevent a disruption in Ceph's operation as a result the root partition running out of space. **Note**: All disks used for storage in the cluster should be of similar size. A cluster with large discrepancies in disk size may fail to replicate data to all available nodes. From 08fe534c47f88de1235c7d4a37270fba61ded603 Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Wed, 8 Feb 2023 20:43:21 +0000 Subject: [PATCH 098/234] fix: add aggregate disk requirements to system requirements table --- src/markdown-pages/install-with-kurl/system-requirements.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index 60097beb..d327c6c6 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -40,6 +40,7 @@ The following table lists information about the core directory requirements. | containerd | /var/lib/containerd/ | *30 GB ** | Snapshots, content, metadata for containers and image, as well as any plugin data will be kept in this location. See the [containerd documentation](https://github.com/containerd/containerd/blob/main/docs/ops.md#base-configuration) for more information. | | kube-apiserver | /var/log/apiserver/ | 1 GB | Kubernetes audit logs. See Kubernetes [Auditing documentation](https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/) for mode information. | | kURL | /var/lib/kurl/ | *10 GB *** | kURL data directory used to store utilities, system packages, and container images. This directory can be overridden with the flag `kurl-install-directory` (see [kURL Advanced Install Options](/docs/install-with-kurl/advanced-options)) | +| Root Disk | / | 100 GB | Based on the aggregate requirements above and the fact that Kubernetes will start to reclaim space at 85% full disk, the minimum recommended root partition is 100 GB. See details above for each component. | ** This requirement depends on the size of the container images and the amount of ephemeral data used by your application containers.* From 595fd85ba5d09e76a43ab16440a495b063fc96a4 Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Wed, 8 Feb 2023 20:43:43 +0000 Subject: [PATCH 099/234] fix: add back mermaid code block tag --- src/markdown-pages/install-with-kurl/system-requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index d327c6c6..64fc9fd6 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -161,7 +161,7 @@ At least 2 nodes should be used for data durability for applications that use pe ### Load Balancers -``` +```mermaid %%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#f5f8fc'}}}%% graph TB A(TCP Load Balancer) From 345a89c3861e4db6a14a5364d804ad01a9417037 Mon Sep 17 00:00:00 2001 From: ada mancini Date: Thu, 9 Feb 2023 15:10:49 -0500 Subject: [PATCH 100/234] add hostname and IP address requirements make sure machine names are valid DNS domains according to kubernetes requirements, that they resolve in DNS, and do not change IP address or hostname sc-68464 --- src/markdown-pages/install-with-kurl/system-requirements.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index 64fc9fd6..d4a796ba 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -81,6 +81,12 @@ Depending on the amount of persistent data stored by your application, you will ## Networking Requirements +### Hostnames, DNS, and IP Address + +The fully-qualified domain name (FQDN) of any host used with kURL [must be a valid DNS subdomain name](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) and it's name must be resolvable by DNS. + +Once a host has been added to a Kubernetes cluster, [it is assumed that its hostname and IP address will not change](https://kubernetes.io/docs/concepts/architecture/nodes/#node-name-uniqueness). If you must change the hostname or IP address of a node, it must be removed from the cluster first. If this is not an HA cluster, build a new cluster and use [application snapshots](https://kurl.sh/docs/add-ons/velero) to move the application to the new cluster. + ### Firewall Openings for Online Installations The following domains need to be accessible from servers performing online kURL installs. From b081ab37335c19e195bbf68f0f953c4d26ea059d Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Thu, 9 Feb 2023 13:49:19 -0700 Subject: [PATCH 101/234] docs edits --- .../install-with-kurl/system-requirements.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index d4a796ba..cb14805d 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -83,9 +83,15 @@ Depending on the amount of persistent data stored by your application, you will ### Hostnames, DNS, and IP Address -The fully-qualified domain name (FQDN) of any host used with kURL [must be a valid DNS subdomain name](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) and it's name must be resolvable by DNS. +The fully-qualified domain name (FQDN) of any host used with kURL must be a valid DNS subdomain name, and its name must be resolvable by DNS. +For more information, see [DNS Subdomain Names](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) in the Kubernetes documentation. -Once a host has been added to a Kubernetes cluster, [it is assumed that its hostname and IP address will not change](https://kubernetes.io/docs/concepts/architecture/nodes/#node-name-uniqueness). If you must change the hostname or IP address of a node, it must be removed from the cluster first. If this is not an HA cluster, build a new cluster and use [application snapshots](https://kurl.sh/docs/add-ons/velero) to move the application to the new cluster. +After a host is added to a Kubernetes cluster, Kubernetes assumes that the hostname and IP address of the host will not change. +If you need to change the hostname or IP address of a node, you must first remove the node from the cluster. + +To change the hostname or IP address of a node in clusters that do not have three or more nodes, use snapshots to move the application to a new cluster before you attempt to remove the node. For more information about using snapshots, see [Velero Add-on](/add-ons/velero). + +For more information about the requirements for naming nodes, see [Node naming uniqueness](https://kubernetes.io/docs/concepts/architecture/nodes/#node-name-uniqueness) in the Kubernetes documentation. ### Firewall Openings for Online Installations From 96faf49b876d1dee7a5c598ad102aa4e6ad79d01 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Mon, 30 Jan 2023 13:00:32 +0100 Subject: [PATCH 102/234] doc: adding longhorn to openebs migration documentation. document the process of migrating from longhorn to openebs. --- .../install-with-kurl/migrating-csi.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index d8de1594..072c0d13 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -75,3 +75,83 @@ kURL does the following when you use the specs above to migrate data from Rook: * Copies all data within the Rook object store to MinIO, if using MinIO. * If you are migrating off of Rook from a Kubernetes cluster that has more than two nodes, OpenEBS attempts to create local volumes on the same nodes where the original Rook PVCs were referenced. * Uninstalls Rook from the cluster. + + +## Migrating from Longhorn to OpenEBS + +### Prerequisites + +To summarize, before considering migrating your data from Longhorn to OpenEBS, it is important to take the following factors into account: + +- Taking a snapshot or backup of the relevant data before migrating is mandatory. +- Adequate hardware resources are necessary to run both Storage Provisioners simultaneously during migration, failure to do so may result in migration failure (see _Hardware requirements_ section below). +- Scheduling a downtime for the migration is crucial, the duration of the downtime will depend on the amount of data being migrated. +- It is essential to ensure that the version of Kubernetes you are upgrading to supports both Longhorn and OpenEBS. + +### The migration process + +Starting from OpenEBS 3.3.0, Kurl simplifies the process of migrating data from Longhorn by automating the migration when a cluster running Longhorn is upgraded to a Kurl version that does not include Longhorn and has OpenEBS set as the storage provisioner. +The data migration process from Longhorn to OpenEBS involves several steps to ensure a smooth transition while minimizing disruption to the application. One of these steps includes scaling down all Pods that are currently using Longhorn volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. A PersistentVolumeClaim by PersistentVolumeClaim copy is executed in the background to transfer the data to the new storage system. This process, however, **does involve some level of downtime** for the application as the migration is being executed, which is why it is important to plan accordingly to minimize the impact on the end-users. + +If you are operating Longhorn in a multi-node cluster, it is recommended to refer to the Rook documentation as Rook is the recommended storage provisioner for most multi-node clusters. OpenEBS, on the other hand, is recommended for single node installations. + +It is also important to keep in mind that for the migration to be successful, the cluster must **have adequate resources** to run both storage provisioners simultaneously during the migration process. For specific system requirements, it is recommended to refer to the add-on specific documentation. The **migration will result in a significant increase in storage consumption**, with the cluster using twice as much as during regular use due to duplicate volumes. It is imperative that sufficient disk space is available in the cluster to handle this increase. Upon completion of the migration, storage consumption will return to normal levels as the previous volumes are deleted. + +Another important factor to consider before initiating the migration is ensuring that the Kubernetes version you are upgrading to is compatible with both provisioners (Longhorn and OpenEBS, in this case). It is crucial to ensure that both provisioners are supported on the specific version of Kubernetes you are using, as running incompatible versions will lead to an error during the migration. + +For a successful migration, it is recommended to ensure that the Longhorn version is at least 1.2.x or 1.3.x before proceeding + + +### Hardware requirements + +During the migration process, the cluster will run both Longhorn and OpenEBS simultaneously. If the cluster cannot handle this workload, the upgrade will be unsuccessful. As stated in the [OpenEBS official documentation](https://openebs.io/docs/additional-info/faqs#:~:text=You%20can%20run%20these%20using,nodes%20in%20the%20Kubernetes%20cluster.), OpenEBS requires 2G of memory and 2 CPUs, so it is crucial to ensure the cluster has these resources available prior to initiating the migration. + +### Preparation + +To ensure a smooth migration process, it is important to take certain steps before starting it. This includes identifying and addressing the most common causes for a migration failure. By doing so, you can minimize the risk of encountering issues during the migration and increase the chances of success. + +#### Check Longhorn Volumes health + +It is crucial to ensure that the volumes being migrated are in a healthy state before proceeding. The migration won’t proceed if the volumes are not healthy. You can check the status of the volumes using the provided command below. If any volumes are reported as not healthy in the "Robustness" column, it is recommended to address the issue before proceeding with the migration. + +``` +$ kubectl get volumes.longhorn.io -A +``` + +In many cases, volume health can be attributed to issues with volume replication. Specifically, when multiple replicas are configured for a volume but not all of them have been scheduled yet. To gain more insight, you can review the individual volumes by editing them. + +``` +$ kubectl edit volumes.longhorn.io -n longhorn-system +``` + +_During the migration process, when running on a single node cluster, the system will automatically scale down the number of replicas to 1 in all Longhorn volumes as a measure to ensure the volumes are in a healthy state before beginning the data transfer. This is done to minimize the risk of a migration failure._ + +#### Check Longhorn Nodes health + +To ensure a successful migration, it is crucial to verify that all Longhorn nodes are in a healthy state: able to handle scheduled workloads, and not over-provisioned. You can check the status of the Longhorn nodes by running the following command: + +``` +$ kubectl get nodes.longhorn.io -A +``` + +If any node is not reported as "Ready" and "Schedulable", you can obtain more information by individually editing the node and checking its "Status" property. + +### Known issues + +It is important to note that migrating to a different storage provisioner, such as OpenEBS and Rook, from Longhorn can come with its own set of challenges and difficulties. We have found that the Longhorn storage provisioner has caused several operational issues in the past, which is why we have chosen to prioritize other options. + +#### Pods stuck in Terminating or Creating state + +One of the most common problems that may arise during the migration process is Pods getting stuck in the Terminating or Creating state. This can happen when the Pods are trying to be scaled down or up but are not able to do so due to some underlying issue. In this case, it is recommended to restart the Kubelet service on all nodes. This can be done by opening new sessions to the nodes and running the command below to restart the Kubelet service. + +``` +$ sudo systemctl restart kubelet +``` + +#### Restore original number of Volume replicas + +To ensure a smooth migration process, when executed on a single node cluster, all Longhorn volumes are scaled down to 1 replica. This is done to make it easier to identify any issues that may arise during the migration, as scaling up the number of replicas can potentially mask the underlying problem. Despite the migration not being successful, the volumes will remain at 1 replica in order to identify the root cause of the failure. If necessary you can restore the original number of replicas by running the following command: + +``` +$ sudo kurl longhorn rollback-migration-replicas +``` From 104ba075c3eb4920c23f3b817336214c0d9619c9 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Mon, 30 Jan 2023 16:40:36 +0100 Subject: [PATCH 103/234] chore: unify longhorn migration documentation. gathering migration to rook and to openebs into a sinle doc. --- .../install-with-kurl/migrating-csi.md | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 072c0d13..860eefa7 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -77,34 +77,43 @@ kURL does the following when you use the specs above to migrate data from Rook: * Uninstalls Rook from the cluster. -## Migrating from Longhorn to OpenEBS +## Migrating from Longhorn ### Prerequisites -To summarize, before considering migrating your data from Longhorn to OpenEBS, it is important to take the following factors into account: +To summarize, before considering migrating your data from Longhorn to Rook or OpenEBS, it is important to take the following factors into account: - Taking a snapshot or backup of the relevant data before migrating is mandatory. - Adequate hardware resources are necessary to run both Storage Provisioners simultaneously during migration, failure to do so may result in migration failure (see _Hardware requirements_ section below). - Scheduling a downtime for the migration is crucial, the duration of the downtime will depend on the amount of data being migrated. -- It is essential to ensure that the version of Kubernetes you are upgrading to supports both Longhorn and OpenEBS. +- It is essential to ensure that the version of Kubernetes you are upgrading to supports both Longhorn and OpenEBS or Rook. +- It is highly discouraged to run Rook on a single node cluster, as multi-node configurations are required for optimal performance. If you plan to migrate in a single-node installation then OpenEBS is the recommended provisioner. + ### The migration process -Starting from OpenEBS 3.3.0, Kurl simplifies the process of migrating data from Longhorn by automating the migration when a cluster running Longhorn is upgraded to a Kurl version that does not include Longhorn and has OpenEBS set as the storage provisioner. -The data migration process from Longhorn to OpenEBS involves several steps to ensure a smooth transition while minimizing disruption to the application. One of these steps includes scaling down all Pods that are currently using Longhorn volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. A PersistentVolumeClaim by PersistentVolumeClaim copy is executed in the background to transfer the data to the new storage system. This process, however, **does involve some level of downtime** for the application as the migration is being executed, which is why it is important to plan accordingly to minimize the impact on the end-users. +Starting from Rook 1.10.8 and OpenEBS 3.3.0, Kurl simplifies the process of migrating data from Longhorn by automating the migration when a cluster running Longhorn is upgraded to a Kurl version that does not include Longhorn and has Rook or OpenEBS set as the storage provisioner. -If you are operating Longhorn in a multi-node cluster, it is recommended to refer to the Rook documentation as Rook is the recommended storage provisioner for most multi-node clusters. OpenEBS, on the other hand, is recommended for single node installations. +The data migration process from Longhorn involves several steps to ensure a smooth transition while minimizing disruption to the application. One of these steps includes scaling down all Pods that are currently using Longhorn volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. A PersistentVolumeClaim by PersistentVolumeClaim copy is executed to transfer the data to the new storage provisioner. This process, however, does **involve some level of downtime for the application** as the migration is being executed, which is why it is important to plan accordingly to minimize the impact on the end-users. -It is also important to keep in mind that for the migration to be successful, the cluster must **have adequate resources** to run both storage provisioners simultaneously during the migration process. For specific system requirements, it is recommended to refer to the add-on specific documentation. The **migration will result in a significant increase in storage consumption**, with the cluster using twice as much as during regular use due to duplicate volumes. It is imperative that sufficient disk space is available in the cluster to handle this increase. Upon completion of the migration, storage consumption will return to normal levels as the previous volumes are deleted. +It is also important to keep in mind that for the migration to be successful, the cluster must **have adequate resources to run both storage provisioners simultaneously** during the migration process (Longhorn and OpenEBS or Longhorn and Rook). For other specific system requirements, it is recommended to refer to the add-on specific documentation. The **migration will result in a significant increase in storage consumption**, with the cluster using twice as much as during regular use due to duplicate volumes. It is imperative that sufficient disk space (in the Rook dedicated storage device or in the OpenEBS volume) is available in the cluster to handle this increase. Upon completion of the migration, storage consumption will return to normal levels as the previous volumes are deleted. -Another important factor to consider before initiating the migration is ensuring that the Kubernetes version you are upgrading to is compatible with both provisioners (Longhorn and OpenEBS, in this case). It is crucial to ensure that both provisioners are supported on the specific version of Kubernetes you are using, as running incompatible versions will lead to an error during the migration. +Another important factor to consider before initiating the migration is ensuring that the Kubernetes version you are upgrading to is compatible with both provisioners. It is crucial to ensure that both provisioners are supported on the specific version of Kubernetes you are using, as running incompatible versions will lead to an error during the migration. -For a successful migration, it is recommended to ensure that the Longhorn version is at least 1.2.x or 1.3.x before proceeding +_For a successful migration, it is recommended to ensure that the Longhorn version is at least 1.2.x or 1.3.x before proceeding, and it is known that these versions support Kubernetes up to version 1.24._ ### Hardware requirements -During the migration process, the cluster will run both Longhorn and OpenEBS simultaneously. If the cluster cannot handle this workload, the upgrade will be unsuccessful. As stated in the [OpenEBS official documentation](https://openebs.io/docs/additional-info/faqs#:~:text=You%20can%20run%20these%20using,nodes%20in%20the%20Kubernetes%20cluster.), OpenEBS requires 2G of memory and 2 CPUs, so it is crucial to ensure the cluster has these resources available prior to initiating the migration. +It is imperative to note that the requirements listed below must be in addition to the resources already being utilized by the cluster. In other words, the cluster must have the listed resources as spare capacity or available to accommodate Rook or OpenEBS. + +#### Rook + +The Ceph community strongly advises against running Rook+Ceph in a single node cluster and mandates a minimum of three nodes. The concurrent operation of both Longhorn and Rook during the migration process will increase the overall hardware requirements of the cluster. If the cluster cannot handle this workload, the upgrade will be unsuccessful. For further information on Rook requirements please refer to Kurl’s [Rook](https://kurl.sh/docs/add-ons/rook) documentation. The official [Rook+Ceph documentation](https://docs.ceph.com/en/quincy/start/hardware-recommendations/) is another crucial source for obtaining information on hardware requirements. The dedicated block device attached to each node must have enough space to host all data being stored in Longhorn. + +#### OpenEBS + +As stated in the [OpenEBS official documentation](https://openebs.io/docs/additional-info/faqs#:~:text=You%20can%20run%20these%20using,nodes%20in%20the%20Kubernetes%20cluster), OpenEBS requires 2G of memory and 2 CPUs, so it is crucial to ensure the cluster has these spare resources available prior to initiating the migration. It is crucial to be aware that OpenEBS and Longhorn both utilize the node's filesystem for data storage, therefore, it is essential to ensure that the filesystem is adequately sized to accommodate twice the amount of data stored by Longhorn. ### Preparation @@ -138,17 +147,17 @@ If any node is not reported as "Ready" and "Schedulable", you can obtain more in ### Known issues -It is important to note that migrating to a different storage provisioner, such as OpenEBS and Rook, from Longhorn can come with its own set of challenges and difficulties. We have found that the Longhorn storage provisioner has caused several operational issues in the past, which is why we have chosen to prioritize other options. +It is important to note that migrating to a different storage provisioner, such as Rook and OpenEBS, from Longhorn can come with its own set of challenges and difficulties. We have found that the Longhorn storage provisioner has caused several operational issues in the past, which is why we have chosen to prioritize other options. #### Pods stuck in Terminating or Creating state -One of the most common problems that may arise during the migration process is Pods getting stuck in the Terminating or Creating state. This can happen when the Pods are trying to be scaled down or up but are not able to do so due to some underlying issue. In this case, it is recommended to restart the Kubelet service on all nodes. This can be done by opening new sessions to the nodes and running the command below to restart the Kubelet service. +One of the most common problems that may arise during the migration process is Pods getting stuck in the Terminating or Creating state. This can happen when the Pods are trying to be scaled down or up but are not able to do so due to some underlying issue with Longhorn. In this case, it is recommended to restart the Kubelet service on all nodes. This can be done by opening new sessions to the nodes and running the command below to restart the Kubelet service. ``` $ sudo systemctl restart kubelet ``` -#### Restore original number of Volume replicas +#### How to restore the original number of Volume replicas To ensure a smooth migration process, when executed on a single node cluster, all Longhorn volumes are scaled down to 1 replica. This is done to make it easier to identify any issues that may arise during the migration, as scaling up the number of replicas can potentially mask the underlying problem. Despite the migration not being successful, the volumes will remain at 1 replica in order to identify the root cause of the failure. If necessary you can restore the original number of replicas by running the following command: From 2fdaaa75e5fcd08c98f080a7d156b01108d20b56 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Mon, 30 Jan 2023 16:45:11 +0100 Subject: [PATCH 104/234] chore: removed unnecessary reference to sudo --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 860eefa7..e09f995c 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -162,5 +162,5 @@ $ sudo systemctl restart kubelet To ensure a smooth migration process, when executed on a single node cluster, all Longhorn volumes are scaled down to 1 replica. This is done to make it easier to identify any issues that may arise during the migration, as scaling up the number of replicas can potentially mask the underlying problem. Despite the migration not being successful, the volumes will remain at 1 replica in order to identify the root cause of the failure. If necessary you can restore the original number of replicas by running the following command: ``` -$ sudo kurl longhorn rollback-migration-replicas +$ kurl longhorn rollback-migration-replicas ``` From 2118224faac62e8eb1c193ed54195fce55cfeb9f Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Tue, 31 Jan 2023 13:48:23 +0100 Subject: [PATCH 105/234] doc: improving csi migration documentation. --- .../install-with-kurl/migrating-csi.md | 50 ++++++++----------- .../install-with-kurl/migrating.md | 2 +- 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index e09f995c..11a12f1b 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -6,11 +6,18 @@ linktitle: "Migrating CSI" title: "Migrating to Change kURL CSI Add-Ons" --- -For kURL [v2022.10.28-0](https://kurl.sh/release-notes/v2022.10.28-0) and later, there is a supported data migration path from the Rook CSI add-on to either OpenEBS with Local PV, or Longhorn and MinIO as the new storage provider. +It is crucial to acknowledge that Longhorn has caused several operational issues in the past so its support will be discontinued going forward. If you are currently utilizing Longhorn, it is imperative that you plan for migration to an alternative solution, that can be either OpenEBS or Rook. This table provides a complete and concise overview of the CSI migrations that are currently supported by the Kurl platform. -For information about how to migrate from Rook to a storage provider other than OpenEBS or Longhorn/MinIO, see [Migrating](/docs/install-with-kurl/migrating). +| From | To | Notes | +|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Longhorn | OpenEBS | The support for Longhorn is being discontinued, and therefore, this is the recommended approach for single-node installations | +| Longhorn | Rook | Single-node installations of Rook are not recommended and therefore this migration is not supported. However, if you are running Kurl in a multi-node setup, this migration is the ideal option. | +| Rook | OpenEBS | Migrating to OpenEBS from Rook is strongly advised for single-node installations or for applications that do not require data replication, as OpenEBS requires significantly fewer hardware resources.| -When initially installing the following kURL spec: + +If your application runs on a single-node setup or does not require data replication, then OpenEBS is the ideal solution as it requires significantly fewer hardware resources. Rook is specifically designed for multi-node clusters where data replication and availability are crucial requirements. However, it should be taken into consideration that Rook demands more resources from your cluster, including the need for a dedicated block device for its exclusive use. Be aware that the Kurl installer has the capability to detect the CSI provisioner that is currently installed and, in case a different one is installed during an upgrade, the data will be seamlessly migrated from the old provisioner to the new one. However, it is crucial to take into consideration that there may be a period of application unavailability during the migration process, therefore, proper planning and scheduling is necessary to minimize the impact to the application. The duration of the unavailability period will vary based on the amount of data that needs to be migrated. + +As an example, if the cluster has been installed with the following setup: ``` apiVersion: cluster.kurl.sh/v1beta1 @@ -28,26 +35,7 @@ spec: version: 1.0.4 ``` -You can then automatically migrate data _from_ Rook _to_ OpenEBS with Local PV using the following kURL spec. This requires OpenEBS 3.3.0 or newer. - -``` -apiVersion: cluster.kurl.sh/v1beta1 -kind: Installer -metadata: - name: new -spec: - kubernetes: - version: 1.19.12 - docker: - version: 20.10.5 - flannel: - version: 0.20.2 - openebs: - version: 3.3.0 - isLocalPVEnabled: true -``` - -_Or_, you can then migrate data _from_ Rook _to_ Minio and Longhorn using the following kURL spec: +You can then automatically migrate data _from_ Rook _to_ OpenEBS+Minio with Local PV using the following kURL spec. This requires OpenEBS 3.3.0 or newer. ``` apiVersion: cluster.kurl.sh/v1beta1 @@ -64,21 +52,27 @@ spec: openebs: version: 3.3.0 isLocalPVEnabled: true - localPVStorageClassName: default - minio: - version: 2020-01-25T02-50-51Z ``` kURL does the following when you use the specs above to migrate data from Rook: -* Recreates all PVCs that were originally created using Rook onto OpenEBS or Longhorn with the same name and contents. -* Copies all data within the Rook object store to MinIO, if using MinIO. +* Recreates all PVCs that were originally created using Rook onto OpenEBS with the same name and contents. * If you are migrating off of Rook from a Kubernetes cluster that has more than two nodes, OpenEBS attempts to create local volumes on the same nodes where the original Rook PVCs were referenced. * Uninstalls Rook from the cluster. +It's important to keep in mind that this process also applies when migrating from Longhorn to either Rook or OpenEBS. Here's a step-by-step rundown of the process: + +1. Your cluster is initially installed with Longhorn. +2. Your applications are using Longhorn volumes. +3. You update your cluster with a Kurl specification that no longer includes Longhorn, but instead features either OpenEBS or Rook. +4. All pods that were previously mounting Longhorn volumes will be temporarily shut down. +5. The migration process will copy all data from Longhorn to the new target storage provisioner (either OpenEBS or Rook). +6. Once the migration is complete, the pods will be restarted. ## Migrating from Longhorn +It is imperative to take into consideration several crucial factors when migrating from Longhorn due to the operational challenges experienced in the past. Make sure to thoroughly read all the information provided below to ensure a seamless migration process. + ### Prerequisites To summarize, before considering migrating your data from Longhorn to Rook or OpenEBS, it is important to take the following factors into account: diff --git a/src/markdown-pages/install-with-kurl/migrating.md b/src/markdown-pages/install-with-kurl/migrating.md index 46d3a8cd..65f79ef4 100644 --- a/src/markdown-pages/install-with-kurl/migrating.md +++ b/src/markdown-pages/install-with-kurl/migrating.md @@ -8,7 +8,7 @@ title: "Migrating to Change kURL Add-Ons" Changing the CRI, CSI, or CNI provider on a kURL install is possible by migrating a [KOTS](https://kots.io/) application to a new cluster. -For information about how to change the CSI from Rook to Longhorn or OpenEBS, see [Migrating CSI](/docs/install-with-kurl/migrating-csi). +If you're looking to make the move from one CSI provisioner (Longhorn, OpenEBS, or Rook) to another, be sure to consult the [Migrating CSI](/docs/install-with-kurl/migrating-csi) page. ## Requirements From 942e7158ed13b50f3e759a002f5b9af48e097057 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Tue, 31 Jan 2023 13:51:08 +0100 Subject: [PATCH 106/234] docs: improving csi documentation --- src/markdown-pages/install-with-kurl/migrating-csi.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 11a12f1b..d8b76cb5 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -121,10 +121,10 @@ It is crucial to ensure that the volumes being migrated are in a healthy state b $ kubectl get volumes.longhorn.io -A ``` -In many cases, volume health can be attributed to issues with volume replication. Specifically, when multiple replicas are configured for a volume but not all of them have been scheduled yet. To gain more insight, you can review the individual volumes by editing them. +In many cases, volume health can be attributed to issues with volume replication. Specifically, when multiple replicas are configured for a volume but not all of them have been scheduled yet. To gain more insight, you can review the individual volumes by inspecting them. ``` -$ kubectl edit volumes.longhorn.io -n longhorn-system +$ kubectl get volumes.longhorn.io -n longhorn-system -o yaml ``` _During the migration process, when running on a single node cluster, the system will automatically scale down the number of replicas to 1 in all Longhorn volumes as a measure to ensure the volumes are in a healthy state before beginning the data transfer. This is done to minimize the risk of a migration failure._ @@ -137,7 +137,11 @@ To ensure a successful migration, it is crucial to verify that all Longhorn node $ kubectl get nodes.longhorn.io -A ``` -If any node is not reported as "Ready" and "Schedulable", you can obtain more information by individually editing the node and checking its "Status" property. +If any node is not reported as "Ready" and "Schedulable", you can obtain more information by individually inspecting the node and checking its "Status" property. + +``` +$ kubectl get nodes.longhorn.io -n longhorn-system -o yaml +``` ### Known issues From 905f909fa524db59a17f57712238d0efecdf2edb Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Tue, 31 Jan 2023 14:06:09 +0100 Subject: [PATCH 107/234] docs: improving csi documentation --- .../install-with-kurl/migrating-csi.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index d8b76cb5..cc70e413 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -8,14 +8,18 @@ title: "Migrating to Change kURL CSI Add-Ons" It is crucial to acknowledge that Longhorn has caused several operational issues in the past so its support will be discontinued going forward. If you are currently utilizing Longhorn, it is imperative that you plan for migration to an alternative solution, that can be either OpenEBS or Rook. This table provides a complete and concise overview of the CSI migrations that are currently supported by the Kurl platform. -| From | To | Notes | -|-----------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Longhorn | OpenEBS | The support for Longhorn is being discontinued, and therefore, this is the recommended approach for single-node installations | -| Longhorn | Rook | Single-node installations of Rook are not recommended and therefore this migration is not supported. However, if you are running Kurl in a multi-node setup, this migration is the ideal option. | -| Rook | OpenEBS | Migrating to OpenEBS from Rook is strongly advised for single-node installations or for applications that do not require data replication, as OpenEBS requires significantly fewer hardware resources.| +| From | To | Notes | +|-----------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Longhorn | OpenEBS | The support for Longhorn is being discontinued, and therefore, this is the recommended approach for single-node installations | +| Longhorn | Rook | Single-node installations of Rook are not recommended and therefore this migration is not supported on this scenario. However, if you are running Longhorn in a multi-node setup, this migration is the ideal option. | +| Rook | OpenEBS | Migrating to OpenEBS from Rook is strongly advised for single-node installations or for applications that do not require data replication, as OpenEBS requires significantly fewer hardware resources. | -If your application runs on a single-node setup or does not require data replication, then OpenEBS is the ideal solution as it requires significantly fewer hardware resources. Rook is specifically designed for multi-node clusters where data replication and availability are crucial requirements. However, it should be taken into consideration that Rook demands more resources from your cluster, including the need for a dedicated block device for its exclusive use. Be aware that the Kurl installer has the capability to detect the CSI provisioner that is currently installed and, in case a different one is installed during an upgrade, the data will be seamlessly migrated from the old provisioner to the new one. However, it is crucial to take into consideration that there may be a period of application unavailability during the migration process, therefore, proper planning and scheduling is necessary to minimize the impact to the application. The duration of the unavailability period will vary based on the amount of data that needs to be migrated. +If your application runs on a single-node setup or does not require data replication, then OpenEBS is the ideal solution as it requires significantly fewer hardware resources. + +Rook is specifically designed for multi-node clusters where data replication and availability are crucial requirements. However, it should be taken into consideration that Rook demands more resources from your cluster, including the need for a dedicated block device for its exclusive use. + +Be aware that the Kurl installer has the capability to detect the CSI provisioner that is currently installed and, in case a different one is installed during an upgrade, the data will be seamlessly migrated from the old provisioner to the new one. However, it is crucial to take into consideration that there may be a period of **application unavailability during the migration process**, therefore, proper planning and scheduling is necessary to minimize the impact to the application. The duration of the unavailability period will vary based on the amount of data that needs to be migrated. As an example, if the cluster has been installed with the following setup: @@ -35,7 +39,7 @@ spec: version: 1.0.4 ``` -You can then automatically migrate data _from_ Rook _to_ OpenEBS+Minio with Local PV using the following kURL spec. This requires OpenEBS 3.3.0 or newer. +You can then automatically migrate data _from_ Rook _to_ OpenEBS with Local PV using the following kURL spec. This requires OpenEBS 3.3.0 or newer. ``` apiVersion: cluster.kurl.sh/v1beta1 From bfa1aae652c85185d97d4c328102b1ffabfc8e01 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Tue, 31 Jan 2023 18:09:39 -0700 Subject: [PATCH 108/234] Docs edits --- .../install-with-kurl/migrating-csi.md | 243 ++++++++++-------- 1 file changed, 142 insertions(+), 101 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index cc70e413..8fb06b28 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -3,166 +3,207 @@ path: "/docs/install-with-kurl/migrating-csi" date: "2021-06-30" weight: 23 linktitle: "Migrating CSI" -title: "Migrating to Change kURL CSI Add-Ons" +title: "Migrating to Change CSI Add-On" --- -It is crucial to acknowledge that Longhorn has caused several operational issues in the past so its support will be discontinued going forward. If you are currently utilizing Longhorn, it is imperative that you plan for migration to an alternative solution, that can be either OpenEBS or Rook. This table provides a complete and concise overview of the CSI migrations that are currently supported by the Kurl platform. +This topic describes how to change the Container Storage Interface (CSI) provisioner add-on in your kURL cluster. It includes information about how to use the kURL installer to automatically migrate data to the new provisioner during upgrade. It also includes prerequisites that you must complete before attempting to change CSI add-ons to reduce the risk of errors during data migration. + +* [Supported CSI Migrations](#supported-csi-migrations) +* [About Changing the CSI Add-on](#about-changing-the-csi-add-on) + * [Rook to OpenEBS](#rook-to-openebs) + * [Longhorn to Rook or OpenEBS](#longhorn-to-rook-or-openebs) +* [Prerequisites](#prerequisites) + * [General Prerequisites](#general-prerequisites) + * [Longhorn Prerequisites](#longhorn-prerequisites) +* [Change the CSI Add-on in a Cluster](#change-the-csi-add-on-in-a-cluster) +* [Troubleshoot Longhorn Data Migration](#troubleshoot-longhorn-data-migration) + +## Supported CSI Migrations + +_**Important**_: kURL does not support Longhorn. If you are currently using Longhorn, you must migrate data from Longhorn to either OpenEBS or Rook. + +This table describes the CSI add-on migration paths that kURL supports: | From | To | Notes | |-----------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Longhorn | OpenEBS | The support for Longhorn is being discontinued, and therefore, this is the recommended approach for single-node installations | -| Longhorn | Rook | Single-node installations of Rook are not recommended and therefore this migration is not supported on this scenario. However, if you are running Longhorn in a multi-node setup, this migration is the ideal option. | -| Rook | OpenEBS | Migrating to OpenEBS from Rook is strongly advised for single-node installations or for applications that do not require data replication, as OpenEBS requires significantly fewer hardware resources. | +| Longhorn | OpenEBS 3.3.0 and later | Migrating from Longhorn to OpenEBS 3.3.0 or later is recommended for single-node installations. | +| Longhorn | Rook 1.10.8 and later | Migrating from Longhorn to Rook 1.10.8 or later is recommended for clusters with three or more nodes where data replication and availability are requirements. Compared to OpenEBS, Rook requires more resources from your cluster, including a dedicated block device. Single-node installations of Rook are not recommended. Migrating from Longhorn to Rook is not supported for single-node clusters. | +| Rook | OpenEBS 3.3.0 and later | Migrating from Rook to OpenEBS 3.3.0 or later is strongly recommended for single-node installations, or for applications that do not require data replication. Compared to Rook, OpenEBS requires significantly fewer hardware resources from your cluster. | +For more information about how to choose between Rook or OpenEBS, see [Choosing a PV Provisioner](create-installer/choosing-a-pv-provisioner). -If your application runs on a single-node setup or does not require data replication, then OpenEBS is the ideal solution as it requires significantly fewer hardware resources. +## About Changing the CSI Add-on -Rook is specifically designed for multi-node clusters where data replication and availability are crucial requirements. However, it should be taken into consideration that Rook demands more resources from your cluster, including the need for a dedicated block device for its exclusive use. +You can change the CSI provisioner that your kURL cluster uses by updating the CSI add-on in your kURL specification file. Then, when you upgrade a kURL cluster using the new specification, the kURL installer detects the change that you made to the CSI add-on and begins automatically migrating data from the current provisioner to the new one. -Be aware that the Kurl installer has the capability to detect the CSI provisioner that is currently installed and, in case a different one is installed during an upgrade, the data will be seamlessly migrated from the old provisioner to the new one. However, it is crucial to take into consideration that there may be a period of **application unavailability during the migration process**, therefore, proper planning and scheduling is necessary to minimize the impact to the application. The duration of the unavailability period will vary based on the amount of data that needs to be migrated. +kURL supports data migration when you change your CSI provider from Rook to OpenEBS, or when you change from Longhorn to Rook or OpenEBS. +For more information about how kURL automatically migrates data in either scenario, see the following sections: +* [Rook to OpenEBS](#rook-to-openebs) +* [Longhorn to Rook or OpenEBS](#longhorn-to-rook-or-openebs) -As an example, if the cluster has been installed with the following setup: +### Rook to OpenEBS -``` -apiVersion: cluster.kurl.sh/v1beta1 -kind: Installer -metadata: - name: old -spec: - kubernetes: - version: 1.19.12 - docker: - version: 20.10.5 - flannel: - version: 0.20.2 - rook: - version: 1.0.4 -``` +The following describes the automatic data migration process when you change the CSI provisioner add-on from Rook to OpenEBS: -You can then automatically migrate data _from_ Rook _to_ OpenEBS with Local PV using the following kURL spec. This requires OpenEBS 3.3.0 or newer. +1. kURL recreates all PVCs that were originally created using Rook onto OpenEBS with the same name and contents. -``` -apiVersion: cluster.kurl.sh/v1beta1 -kind: Installer -metadata: - name: new -spec: - kubernetes: - version: 1.19.12 - docker: - version: 20.10.5 - flannel: - version: 0.20.2 - openebs: - version: 3.3.0 - isLocalPVEnabled: true -``` +1. If you are migrating off Rook from a cluster that has more than two nodes, OpenEBS attempts to create local volumes on the same nodes where the original Rook PVCs were referenced. -kURL does the following when you use the specs above to migrate data from Rook: +1. kURL uninstalls Rook from the cluster. -* Recreates all PVCs that were originally created using Rook onto OpenEBS with the same name and contents. -* If you are migrating off of Rook from a Kubernetes cluster that has more than two nodes, OpenEBS attempts to create local volumes on the same nodes where the original Rook PVCs were referenced. -* Uninstalls Rook from the cluster. +### Longhorn to Rook or OpenEBS -It's important to keep in mind that this process also applies when migrating from Longhorn to either Rook or OpenEBS. Here's a step-by-step rundown of the process: +The following describes the automatic data migration process when you change the CSI provisioner add-on from Longhorn to Rook or OpenEBS: -1. Your cluster is initially installed with Longhorn. -2. Your applications are using Longhorn volumes. -3. You update your cluster with a Kurl specification that no longer includes Longhorn, but instead features either OpenEBS or Rook. -4. All pods that were previously mounting Longhorn volumes will be temporarily shut down. -5. The migration process will copy all data from Longhorn to the new target storage provisioner (either OpenEBS or Rook). -6. Once the migration is complete, the pods will be restarted. +1. kURL temporarily shuts down all pods mounting Longhorn volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. -## Migrating from Longhorn +1. kURL copies all data from Longhorn to the new target storage provisioner (either OpenEBS or Rook). This is done by copying one PersistentVolumeClaim at a time. -It is imperative to take into consideration several crucial factors when migrating from Longhorn due to the operational challenges experienced in the past. Make sure to thoroughly read all the information provided below to ensure a seamless migration process. +1. When the data migration is complete, the pods are restarted. -### Prerequisites +## Prerequisites -To summarize, before considering migrating your data from Longhorn to Rook or OpenEBS, it is important to take the following factors into account: +This section includes prerequisites that you must complete before changing the CSI provisioner in your kURL cluster. These prerequisites help you identify and address the most common causes for a data migration failure so that you can reduce the risk of issues. -- Taking a snapshot or backup of the relevant data before migrating is mandatory. -- Adequate hardware resources are necessary to run both Storage Provisioners simultaneously during migration, failure to do so may result in migration failure (see _Hardware requirements_ section below). -- Scheduling a downtime for the migration is crucial, the duration of the downtime will depend on the amount of data being migrated. -- It is essential to ensure that the version of Kubernetes you are upgrading to supports both Longhorn and OpenEBS or Rook. -- It is highly discouraged to run Rook on a single node cluster, as multi-node configurations are required for optimal performance. If you plan to migrate in a single-node installation then OpenEBS is the recommended provisioner. +### General Prerequisites +Before you attempt to change the CSI provisioner in your cluster, complete the following prerequisites: -### The migration process +- Take a snapshot or backup of the relevant data. This helps ensure you can recover your data if the data migration fails. -Starting from Rook 1.10.8 and OpenEBS 3.3.0, Kurl simplifies the process of migrating data from Longhorn by automating the migration when a cluster running Longhorn is upgraded to a Kurl version that does not include Longhorn and has Rook or OpenEBS set as the storage provisioner. +- Schedule downtime for the migration. During the automated migration process, there is often a period of time where the application is unavailable. The duration of this downtime depends on the amount of data to migrate. Proper planning and scheduling is necessary to minimize the impact of downtime. -The data migration process from Longhorn involves several steps to ensure a smooth transition while minimizing disruption to the application. One of these steps includes scaling down all Pods that are currently using Longhorn volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. A PersistentVolumeClaim by PersistentVolumeClaim copy is executed to transfer the data to the new storage provisioner. This process, however, does **involve some level of downtime for the application** as the migration is being executed, which is why it is important to plan accordingly to minimize the impact on the end-users. +- Verify that the version of Kubernetes running in the cluster supports both the current CSI provisioner and the new provisioner that you want to use. Running incompatible versions causes an error during data migration. -It is also important to keep in mind that for the migration to be successful, the cluster must **have adequate resources to run both storage provisioners simultaneously** during the migration process (Longhorn and OpenEBS or Longhorn and Rook). For other specific system requirements, it is recommended to refer to the add-on specific documentation. The **migration will result in a significant increase in storage consumption**, with the cluster using twice as much as during regular use due to duplicate volumes. It is imperative that sufficient disk space (in the Rook dedicated storage device or in the OpenEBS volume) is available in the cluster to handle this increase. Upon completion of the migration, storage consumption will return to normal levels as the previous volumes are deleted. +- Ensure that your cluster has adequate hardware resources to run both the current and the new CSI provisioner simultaneously. Your cluster must be able to run both provisioners simultaneously because, during the data migration process, the cluster uses twice as much storage capacity as usual due to duplicate volumes. So, the Rook dedicated storage device or the OpenEBS volume must have sufficient disk space available to handle this increase. -Another important factor to consider before initiating the migration is ensuring that the Kubernetes version you are upgrading to is compatible with both provisioners. It is crucial to ensure that both provisioners are supported on the specific version of Kubernetes you are using, as running incompatible versions will lead to an error during the migration. + After kURL completes the data migration, storage consumption in the cluster returns to normal because the volumes from the previous CSI provisioner are deleted. -_For a successful migration, it is recommended to ensure that the Longhorn version is at least 1.2.x or 1.3.x before proceeding, and it is known that these versions support Kubernetes up to version 1.24._ + See the following for requirements specific to Rook or OpenEBS: + - **Rook Ceph**: See [Rook Add-on](/add-ons/rook) in the kURL documentation and [Hardware Recommendations](https://docs.ceph.com/en/quincy/start/hardware-recommendations/) in the Ceph documentation. + - **OpenEBS**: See [OpenEBS Add-on](/add-ons/openebs) in the kURL documentation and [What are the minimum requirements and supported container orchestrators?](https://openebs.io/docs/faqs/general#what-are-the-minimum-requirements-and-supported-container-orchestrators) in the OpenEBS documentation. +- If you are migrating from Longhorn, complete the additional [Longhorn Prerequisites](#longhorn-prerequisites) below. -### Hardware requirements +### Longhorn Prerequisites -It is imperative to note that the requirements listed below must be in addition to the resources already being utilized by the cluster. In other words, the cluster must have the listed resources as spare capacity or available to accommodate Rook or OpenEBS. +If you are migrating from Longhorn to a different CSI provisioner, you must complete the following prerequisites in addition to the [General Prerequisites](#general-prerequisites) above: -#### Rook +- Ensure that the version of Longhorn installed in your cluster is 1.2.0 or later or 1.3.0 or later. Longhorn versions 1.2.x and 1.3.x support Kubernetes versions 1.24 and earlier. -The Ceph community strongly advises against running Rook+Ceph in a single node cluster and mandates a minimum of three nodes. The concurrent operation of both Longhorn and Rook during the migration process will increase the overall hardware requirements of the cluster. If the cluster cannot handle this workload, the upgrade will be unsuccessful. For further information on Rook requirements please refer to Kurl’s [Rook](https://kurl.sh/docs/add-ons/rook) documentation. The official [Rook+Ceph documentation](https://docs.ceph.com/en/quincy/start/hardware-recommendations/) is another crucial source for obtaining information on hardware requirements. The dedicated block device attached to each node must have enough space to host all data being stored in Longhorn. +- Confirm that the Longhorn volumes are in a healthy state. Run the following command to check the status of the volumes: -#### OpenEBS + ``` + kubectl get volumes.longhorn.io -A + ``` -As stated in the [OpenEBS official documentation](https://openebs.io/docs/additional-info/faqs#:~:text=You%20can%20run%20these%20using,nodes%20in%20the%20Kubernetes%20cluster), OpenEBS requires 2G of memory and 2 CPUs, so it is crucial to ensure the cluster has these spare resources available prior to initiating the migration. It is crucial to be aware that OpenEBS and Longhorn both utilize the node's filesystem for data storage, therefore, it is essential to ensure that the filesystem is adequately sized to accommodate twice the amount of data stored by Longhorn. + If any volumes are reported as not healthy in the `Robustness` column in the ouput of this command, resolve the issue before proceeding. -### Preparation + To learn more about volume health, you can also inspect each volume individually: -To ensure a smooth migration process, it is important to take certain steps before starting it. This includes identifying and addressing the most common causes for a migration failure. By doing so, you can minimize the risk of encountering issues during the migration and increase the chances of success. + ``` + kubectl get volumes.longhorn.io -n longhorn-system -o yaml + ``` -#### Check Longhorn Volumes health + In many cases, volume health is caused by issues with volume replication. Specifically, when multiple replicas are configured for a volume but not all have been scheduled. -It is crucial to ensure that the volumes being migrated are in a healthy state before proceeding. The migration won’t proceed if the volumes are not healthy. You can check the status of the volumes using the provided command below. If any volumes are reported as not healthy in the "Robustness" column, it is recommended to address the issue before proceeding with the migration. + _**Note**_: During the data migration process in single-node clusters, the system automatically scales down the number of replicas to 1 in all Longhorn volumes to ensure the volumes are in a healthy state before beginning the data transfer. This is done to minimize the risk of a migration failure. -``` -$ kubectl get volumes.longhorn.io -A -``` +- Confirm that Longhorn nodes are in a healthy state. The nodes must be healthy to ensure they are not over-provisioned and can handle scheduled workloads. Run the following command to check the status of the Longhorn nodes: -In many cases, volume health can be attributed to issues with volume replication. Specifically, when multiple replicas are configured for a volume but not all of them have been scheduled yet. To gain more insight, you can review the individual volumes by inspecting them. + ``` + kubectl get nodes.longhorn.io -A + ``` -``` -$ kubectl get volumes.longhorn.io -n longhorn-system -o yaml -``` + If any node is not reported as "Ready" and "Schedulable" in the output of this command, resolve the issue before proceeding. + + To learn more, you can also inspect each node individually and view its "Status" property: -_During the migration process, when running on a single node cluster, the system will automatically scale down the number of replicas to 1 in all Longhorn volumes as a measure to ensure the volumes are in a healthy state before beginning the data transfer. This is done to minimize the risk of a migration failure._ + ``` + kubectl get nodes.longhorn.io -n longhorn-system -o yaml + ``` -#### Check Longhorn Nodes health +- (OpenEBS Only) Before you migrate from Longhorn to OpenEBS: + - Ensure the filesystem on the node has adequate space to accommodate twice the amount of data currently stored by Longhorn. This is important because both OpenEBS and Longhorn use the node's filesystem for data storage. + - Ensure that there is an additional 2G of memory and 2 CPUs available for OpenEBS. For more information, see [What are the minimum requirements and supported container orchestrators?](https://openebs.io/docs/faqs/general#what-are-the-minimum-requirements-and-supported-container-orchestrators) in the OpenEBS documentation. -To ensure a successful migration, it is crucial to verify that all Longhorn nodes are in a healthy state: able to handle scheduled workloads, and not over-provisioned. You can check the status of the Longhorn nodes by running the following command: +- (Rook Only) Before you migrate from Longhorn to Rook, ensure that the dedicated block device for Rook attached to each node has enough space to host all data currently stored in Longhorn. -``` -$ kubectl get nodes.longhorn.io -A -``` +## Change the CSI Add-on in a Cluster -If any node is not reported as "Ready" and "Schedulable", you can obtain more information by individually inspecting the node and checking its "Status" property. +This procedure describes how to update the kURL specification file to use a new CSI provisioner add-on. Then, upgrade your kURL cluster to automatically migrate data to the new provisioner. -``` -$ kubectl get nodes.longhorn.io -n longhorn-system -o yaml -``` +For more information about the supported migration paths for CSI provisioners, see [Supported CSI Migrations](#supported-csi-migrations) above. + +_**Warning**_: When you change the CSI provisioner in your cluster, the data migration process causes some amount of downtime for the application. It is important to plan accordingly to minimize the impact on users. + +To migrate to a new CSI provisioner in a kURL cluster: + +1. Complete the [Prerequisites](#prerequisites) above. + +1. Update the kURL specification to remove the current CSI add-on and add the new CSI add-on that you want to use (either Rook or OpenEBS). For information about the options for the Rook or OpenEBS kURL add-ons, see [Rook Add-on](/add-ons/rook) or [OpenEBS Add-on](/add-ons/openebs). + + **Example:** + + This example shows how to update a kURL specification to change the CSI provisioner add-on from Rook to OpenEBS Local PV. + + Given the following `my-current-installer` file, which specifies Rook as the CSI provisioner: + + ``` + apiVersion: cluster.kurl.sh/v1beta1 + kind: Installer + metadata: + name: my-current-installer + spec: + kubernetes: + version: 1.19.12 + docker: + version: 20.10.5 + weave: + version: 2.6.5 + rook: + version: 1.0.4 + ``` + + You can remove `rook` and add `openebs` with `isLocalPVEnable: true` to migrate data from Rook to OpenEBS Local PV, as shown in the following `my-new-installer` file: + + ``` + apiVersion: cluster.kurl.sh/v1beta1 + kind: Installer + metadata: + name: my-new-installer + spec: + kubernetes: + version: 1.19.12 + docker: + version: 20.10.5 + weave: + version: 2.6.5 + openebs: + version: 3.3.0 + isLocalPVEnabled: true + ``` + +1. Upgrade your kURL cluster to use the updated specification by rerunning the kURL installation script. For more information about how to upgrade a kURL cluster, see [Upgrading](/install-with-kurl/upgrading). -### Known issues + During the cluster upgrade, the kURL installer detects that the CSI add-on has changed. kURL automatically begins the process of migrating data from the current CSI provisioner to the provisioner in the updated specification. For more information about the data migration process, see [About Changing the CSI Add-on](#about-changing-the-csi-add-on) above. -It is important to note that migrating to a different storage provisioner, such as Rook and OpenEBS, from Longhorn can come with its own set of challenges and difficulties. We have found that the Longhorn storage provisioner has caused several operational issues in the past, which is why we have chosen to prioritize other options. +## Troubleshoot Longhorn Data Migration -#### Pods stuck in Terminating or Creating state +This section describes how to troubleshoot known issues in migrating data from Longhorn to Rook or OpenEBS. +### Pods stuck in Terminating or Creating state -One of the most common problems that may arise during the migration process is Pods getting stuck in the Terminating or Creating state. This can happen when the Pods are trying to be scaled down or up but are not able to do so due to some underlying issue with Longhorn. In this case, it is recommended to restart the Kubelet service on all nodes. This can be done by opening new sessions to the nodes and running the command below to restart the Kubelet service. +One of the most common problems that may arise during the migration process is Pods getting stuck in the Terminating or Creating state. This can happen when the Pods are trying to be scaled down or up but are not able to do so due to some underlying issue with Longhorn. In this case, it is recommended to restart the kubelet service on all nodes. This can be done by opening new sessions to the nodes and running the command below to restart the kubelet service. ``` -$ sudo systemctl restart kubelet +sudo systemctl restart kubelet ``` -#### How to restore the original number of Volume replicas +### Restore the original number of Volume replicas +>>>>>>> f5d0b09 (Docs edits) To ensure a smooth migration process, when executed on a single node cluster, all Longhorn volumes are scaled down to 1 replica. This is done to make it easier to identify any issues that may arise during the migration, as scaling up the number of replicas can potentially mask the underlying problem. Despite the migration not being successful, the volumes will remain at 1 replica in order to identify the root cause of the failure. If necessary you can restore the original number of replicas by running the following command: ``` -$ kurl longhorn rollback-migration-replicas +kurl longhorn rollback-migration-replicas ``` From e73c3258e2b14506731bc74d164bc45e1d0bad43 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 1 Feb 2023 14:46:21 +0100 Subject: [PATCH 109/234] docs: removing reference to "migrate to longhorn". --- src/markdown-pages/install-with-kurl/migrating.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating.md b/src/markdown-pages/install-with-kurl/migrating.md index 65f79ef4..b6376358 100644 --- a/src/markdown-pages/install-with-kurl/migrating.md +++ b/src/markdown-pages/install-with-kurl/migrating.md @@ -38,7 +38,7 @@ If you're looking to make the move from one CSI provisioner (Longhorn, OpenEBS, ## Example Old and New Specs -In the new spec, the Kubernetes version has been upgraded to 1.21, Longhorn has been replaced with OpenEBS, Weave has been replaced with Flannel, and docker has been replaced with containerd. +In the new spec, the Kubernetes version has been upgraded to 1.21, Longhorn has been replaced with OpenEBS and Minio, Weave has been replaced with Flannel, and docker has been replaced with containerd. ### Old @@ -56,8 +56,6 @@ spec: version: 2.6.5 longhorn: version: 1.3.1 - minio: - version: 2020-01-25T02-50-51Z registry: version: 2.7.1 kotsadm: @@ -77,15 +75,15 @@ spec: kubernetes: version: 1.21.14 containerd: - version: 1.6.15 + version: 1.4.6 flannel: version: 0.20.2 + minio: + version: 2023-01-25T00-19-54Z openebs: version: 3.3.0 isLocalPVEnabled: true localPVStorageClassName: default - minio: - version: 2023-01-25T00-19-54Z registry: version: 2.8.1 kotsadm: From d8b715505acc2ecafa37319c7ce21481e4fd4983 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 1 Feb 2023 15:16:12 +0100 Subject: [PATCH 110/234] docs: small fixes to migrating csi documentation --- src/markdown-pages/install-with-kurl/migrating-csi.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 8fb06b28..929f064d 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -45,10 +45,14 @@ For more information about how kURL automatically migrates data in either scenar The following describes the automatic data migration process when you change the CSI provisioner add-on from Rook to OpenEBS: +1. kURL temporarily shuts down all pods mounting Rook volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. + 1. kURL recreates all PVCs that were originally created using Rook onto OpenEBS with the same name and contents. 1. If you are migrating off Rook from a cluster that has more than two nodes, OpenEBS attempts to create local volumes on the same nodes where the original Rook PVCs were referenced. +1. When the data migration is complete, the pods are restarted. + 1. kURL uninstalls Rook from the cluster. ### Longhorn to Rook or OpenEBS @@ -57,10 +61,12 @@ The following describes the automatic data migration process when you change the 1. kURL temporarily shuts down all pods mounting Longhorn volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. -1. kURL copies all data from Longhorn to the new target storage provisioner (either OpenEBS or Rook). This is done by copying one PersistentVolumeClaim at a time. +1. kURL recreates all PVCs that were originally created using Longhorn onto Rook or OpenEBS with the same name and contents. 1. When the data migration is complete, the pods are restarted. +1. kURL uninstalls Longhorn from the cluster. + ## Prerequisites This section includes prerequisites that you must complete before changing the CSI provisioner in your kURL cluster. These prerequisites help you identify and address the most common causes for a data migration failure so that you can reduce the risk of issues. @@ -75,7 +81,7 @@ Before you attempt to change the CSI provisioner in your cluster, complete the f - Verify that the version of Kubernetes running in the cluster supports both the current CSI provisioner and the new provisioner that you want to use. Running incompatible versions causes an error during data migration. -- Ensure that your cluster has adequate hardware resources to run both the current and the new CSI provisioner simultaneously. Your cluster must be able to run both provisioners simultaneously because, during the data migration process, the cluster uses twice as much storage capacity as usual due to duplicate volumes. So, the Rook dedicated storage device or the OpenEBS volume must have sufficient disk space available to handle this increase. +- Ensure that your cluster has adequate hardware resources to run both the current and the new CSI provisioner simultaneously. Your cluster must be able to run both provisioners simultaneously. During the data migration process, the cluster uses twice as much storage capacity as usual due to duplicate volumes. So, the Rook dedicated storage device or the OpenEBS volume must have sufficient disk space available to handle this increase. After kURL completes the data migration, storage consumption in the cluster returns to normal because the volumes from the previous CSI provisioner are deleted. From 01a314d4a8fb7ea5beed20cd16da1209b0cc03c0 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 1 Feb 2023 15:21:56 +0100 Subject: [PATCH 111/234] docs: rephrasing pre-requisite --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 929f064d..9a3f7b66 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -79,7 +79,7 @@ Before you attempt to change the CSI provisioner in your cluster, complete the f - Schedule downtime for the migration. During the automated migration process, there is often a period of time where the application is unavailable. The duration of this downtime depends on the amount of data to migrate. Proper planning and scheduling is necessary to minimize the impact of downtime. -- Verify that the version of Kubernetes running in the cluster supports both the current CSI provisioner and the new provisioner that you want to use. Running incompatible versions causes an error during data migration. +- Verify that the version of Kubernetes you are upgrading to supports both the current CSI provisioner and the new provisioner that you want to use. Running incompatible versions causes an error during data migration. - Ensure that your cluster has adequate hardware resources to run both the current and the new CSI provisioner simultaneously. Your cluster must be able to run both provisioners simultaneously. During the data migration process, the cluster uses twice as much storage capacity as usual due to duplicate volumes. So, the Rook dedicated storage device or the OpenEBS volume must have sufficient disk space available to handle this increase. From 3b9bc436ef0a6f01c7d410888e19670a6da42ba6 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 1 Feb 2023 15:39:54 +0100 Subject: [PATCH 112/234] docs: rewrite migration overview section --- .../install-with-kurl/migrating-csi.md | 29 +++++-------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 9a3f7b66..c7203b58 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -37,35 +37,20 @@ For more information about how to choose between Rook or OpenEBS, see [Choosing You can change the CSI provisioner that your kURL cluster uses by updating the CSI add-on in your kURL specification file. Then, when you upgrade a kURL cluster using the new specification, the kURL installer detects the change that you made to the CSI add-on and begins automatically migrating data from the current provisioner to the new one. kURL supports data migration when you change your CSI provider from Rook to OpenEBS, or when you change from Longhorn to Rook or OpenEBS. -For more information about how kURL automatically migrates data in either scenario, see the following sections: -* [Rook to OpenEBS](#rook-to-openebs) -* [Longhorn to Rook or OpenEBS](#longhorn-to-rook-or-openebs) -### Rook to OpenEBS +### Migration process overview -The following describes the automatic data migration process when you change the CSI provisioner add-on from Rook to OpenEBS: +The following describes the automatic data migration process when you change the CSI provisioner add-on (_source_ is the CSI provisioner currently installed in the cluster and _target_ is the desired CSI provisioner): -1. kURL temporarily shuts down all pods mounting Rook volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. +1. kURL installer temporarily shuts down all pods mounting volumes backed by the _source_ provisioner. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. -1. kURL recreates all PVCs that were originally created using Rook onto OpenEBS with the same name and contents. +1. kURL recreates all PVCs provided by the _source_ provisioner using the _target_ provisioner as backing storage. Data is then copied from the source PVC to the destination PVC. -1. If you are migrating off Rook from a cluster that has more than two nodes, OpenEBS attempts to create local volumes on the same nodes where the original Rook PVCs were referenced. +1. If you are migrating from Rook or Longhorn to OpenEBS in a cluster that has more than two nodes the kURL installer attempts to create local OpenEBS volumes on the same nodes where the original Rook or Longhorn volumes were referenced. -1. When the data migration is complete, the pods are restarted. +1. When the data migration is complete, the pods are restarted using the new PVCs. -1. kURL uninstalls Rook from the cluster. - -### Longhorn to Rook or OpenEBS - -The following describes the automatic data migration process when you change the CSI provisioner add-on from Longhorn to Rook or OpenEBS: - -1. kURL temporarily shuts down all pods mounting Longhorn volumes. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. - -1. kURL recreates all PVCs that were originally created using Longhorn onto Rook or OpenEBS with the same name and contents. - -1. When the data migration is complete, the pods are restarted. - -1. kURL uninstalls Longhorn from the cluster. +1. kURL uninstalls the _source_ provisioner from the cluster. ## Prerequisites From 5333457f52d7ea0c61c93a659311c2b6e52abc5e Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 1 Feb 2023 15:46:54 +0100 Subject: [PATCH 113/234] bug: fixed wrong link --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index c7203b58..000460af 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -30,7 +30,7 @@ This table describes the CSI add-on migration paths that kURL supports: | Longhorn | Rook 1.10.8 and later | Migrating from Longhorn to Rook 1.10.8 or later is recommended for clusters with three or more nodes where data replication and availability are requirements. Compared to OpenEBS, Rook requires more resources from your cluster, including a dedicated block device. Single-node installations of Rook are not recommended. Migrating from Longhorn to Rook is not supported for single-node clusters. | | Rook | OpenEBS 3.3.0 and later | Migrating from Rook to OpenEBS 3.3.0 or later is strongly recommended for single-node installations, or for applications that do not require data replication. Compared to Rook, OpenEBS requires significantly fewer hardware resources from your cluster. | -For more information about how to choose between Rook or OpenEBS, see [Choosing a PV Provisioner](create-installer/choosing-a-pv-provisioner). +For more information about how to choose between Rook or OpenEBS, see [Choosing a PV Provisioner](/create-installer/choosing-a-pv-provisioner). ## About Changing the CSI Add-on From 69764d81b9b3b424af0dee5ccd1224e4b018c95f Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Wed, 1 Feb 2023 15:51:50 +0100 Subject: [PATCH 114/234] bug: fixed wrong link --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 000460af..eb6bec5d 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -30,7 +30,7 @@ This table describes the CSI add-on migration paths that kURL supports: | Longhorn | Rook 1.10.8 and later | Migrating from Longhorn to Rook 1.10.8 or later is recommended for clusters with three or more nodes where data replication and availability are requirements. Compared to OpenEBS, Rook requires more resources from your cluster, including a dedicated block device. Single-node installations of Rook are not recommended. Migrating from Longhorn to Rook is not supported for single-node clusters. | | Rook | OpenEBS 3.3.0 and later | Migrating from Rook to OpenEBS 3.3.0 or later is strongly recommended for single-node installations, or for applications that do not require data replication. Compared to Rook, OpenEBS requires significantly fewer hardware resources from your cluster. | -For more information about how to choose between Rook or OpenEBS, see [Choosing a PV Provisioner](/create-installer/choosing-a-pv-provisioner). +For more information about how to choose between Rook or OpenEBS, see [Choosing a PV Provisioner](/docs/create-installer/choosing-a-pv-provisioner). ## About Changing the CSI Add-on From 8c9017365db91903e1019fced1edea9f3fe15b62 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Wed, 1 Feb 2023 09:45:06 -0700 Subject: [PATCH 115/234] edit migration overview --- src/markdown-pages/install-with-kurl/migrating-csi.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index eb6bec5d..aa8ca559 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -10,8 +10,6 @@ This topic describes how to change the Container Storage Interface (CSI) provisi * [Supported CSI Migrations](#supported-csi-migrations) * [About Changing the CSI Add-on](#about-changing-the-csi-add-on) - * [Rook to OpenEBS](#rook-to-openebs) - * [Longhorn to Rook or OpenEBS](#longhorn-to-rook-or-openebs) * [Prerequisites](#prerequisites) * [General Prerequisites](#general-prerequisites) * [Longhorn Prerequisites](#longhorn-prerequisites) @@ -38,15 +36,13 @@ You can change the CSI provisioner that your kURL cluster uses by updating the C kURL supports data migration when you change your CSI provider from Rook to OpenEBS, or when you change from Longhorn to Rook or OpenEBS. -### Migration process overview - -The following describes the automatic data migration process when you change the CSI provisioner add-on (_source_ is the CSI provisioner currently installed in the cluster and _target_ is the desired CSI provisioner): +The following describes the automatic data migration process when you change the CSI provisioner add-on, where _source_ is the CSI provisioner currently installed in the cluster and _target_ is the desired CSI provisioner: 1. kURL installer temporarily shuts down all pods mounting volumes backed by the _source_ provisioner. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. 1. kURL recreates all PVCs provided by the _source_ provisioner using the _target_ provisioner as backing storage. Data is then copied from the source PVC to the destination PVC. -1. If you are migrating from Rook or Longhorn to OpenEBS in a cluster that has more than two nodes the kURL installer attempts to create local OpenEBS volumes on the same nodes where the original Rook or Longhorn volumes were referenced. +1. If you are migrating from Rook or Longhorn to OpenEBS in a cluster that has more than two nodes, then the kURL installer attempts to create local OpenEBS volumes on the same nodes where the original Rook or Longhorn volumes were referenced. 1. When the data migration is complete, the pods are restarted using the new PVCs. @@ -70,7 +66,7 @@ Before you attempt to change the CSI provisioner in your cluster, complete the f After kURL completes the data migration, storage consumption in the cluster returns to normal because the volumes from the previous CSI provisioner are deleted. - See the following for requirements specific to Rook or OpenEBS: + To ensure that your cluster has adequate resources, review the following for requirements specific to Rook or OpenEBS: - **Rook Ceph**: See [Rook Add-on](/add-ons/rook) in the kURL documentation and [Hardware Recommendations](https://docs.ceph.com/en/quincy/start/hardware-recommendations/) in the Ceph documentation. - **OpenEBS**: See [OpenEBS Add-on](/add-ons/openebs) in the kURL documentation and [What are the minimum requirements and supported container orchestrators?](https://openebs.io/docs/faqs/general#what-are-the-minimum-requirements-and-supported-container-orchestrators) in the OpenEBS documentation. From 9b7f2032df1091bcfe60f62715ff91d64039f36f Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Thu, 2 Feb 2023 10:07:27 -0700 Subject: [PATCH 116/234] Update src/markdown-pages/install-with-kurl/migrating-csi.md Co-authored-by: Ethan Mosbaugh --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index aa8ca559..83208b9a 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -34,7 +34,7 @@ For more information about how to choose between Rook or OpenEBS, see [Choosing You can change the CSI provisioner that your kURL cluster uses by updating the CSI add-on in your kURL specification file. Then, when you upgrade a kURL cluster using the new specification, the kURL installer detects the change that you made to the CSI add-on and begins automatically migrating data from the current provisioner to the new one. -kURL supports data migration when you change your CSI provider from Rook to OpenEBS, or when you change from Longhorn to Rook or OpenEBS. +kURL supports data migration when you change your CSI provisioner from Rook to OpenEBS, or when you change from Longhorn to Rook or OpenEBS. The following describes the automatic data migration process when you change the CSI provisioner add-on, where _source_ is the CSI provisioner currently installed in the cluster and _target_ is the desired CSI provisioner: From 3efe1012ab30a330139935d5672ca1048208a97d Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Thu, 2 Feb 2023 10:07:42 -0700 Subject: [PATCH 117/234] Update src/markdown-pages/install-with-kurl/migrating-csi.md Co-authored-by: Ethan Mosbaugh --- src/markdown-pages/install-with-kurl/migrating-csi.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 83208b9a..92bca1d3 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -178,6 +178,7 @@ To migrate to a new CSI provisioner in a kURL cluster: ## Troubleshoot Longhorn Data Migration This section describes how to troubleshoot known issues in migrating data from Longhorn to Rook or OpenEBS. + ### Pods stuck in Terminating or Creating state One of the most common problems that may arise during the migration process is Pods getting stuck in the Terminating or Creating state. This can happen when the Pods are trying to be scaled down or up but are not able to do so due to some underlying issue with Longhorn. In this case, it is recommended to restart the kubelet service on all nodes. This can be done by opening new sessions to the nodes and running the command below to restart the kubelet service. From d82b14bc3b7a7275bcc5a84fe81850709c032776 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Thu, 2 Feb 2023 10:07:58 -0700 Subject: [PATCH 118/234] Update src/markdown-pages/install-with-kurl/migrating.md Co-authored-by: Ethan Mosbaugh --- src/markdown-pages/install-with-kurl/migrating.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/markdown-pages/install-with-kurl/migrating.md b/src/markdown-pages/install-with-kurl/migrating.md index b6376358..bc7f21d3 100644 --- a/src/markdown-pages/install-with-kurl/migrating.md +++ b/src/markdown-pages/install-with-kurl/migrating.md @@ -56,6 +56,8 @@ spec: version: 2.6.5 longhorn: version: 1.3.1 + minio: + version: 2023-01-25T00-19-54Z registry: version: 2.7.1 kotsadm: From f6b289fcc67f1b89b00b2b7e0180ffa19e53f647 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Thu, 2 Feb 2023 10:08:31 -0700 Subject: [PATCH 119/234] Update src/markdown-pages/install-with-kurl/migrating.md Co-authored-by: Ethan Mosbaugh --- src/markdown-pages/install-with-kurl/migrating.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/migrating.md b/src/markdown-pages/install-with-kurl/migrating.md index bc7f21d3..baee5dd2 100644 --- a/src/markdown-pages/install-with-kurl/migrating.md +++ b/src/markdown-pages/install-with-kurl/migrating.md @@ -38,7 +38,7 @@ If you're looking to make the move from one CSI provisioner (Longhorn, OpenEBS, ## Example Old and New Specs -In the new spec, the Kubernetes version has been upgraded to 1.21, Longhorn has been replaced with OpenEBS and Minio, Weave has been replaced with Flannel, and docker has been replaced with containerd. +In the new spec, the Kubernetes version has been upgraded to 1.21, Longhorn has been replaced with OpenEBS, Weave has been replaced with Flannel, and docker has been replaced with containerd. ### Old From e6c850c8e22e6dd821f26d42ac2617be03265560 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Mon, 13 Feb 2023 10:40:43 +0100 Subject: [PATCH 120/234] chore: fixed rebase issue. --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 92bca1d3..1c9f3f44 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -188,10 +188,8 @@ sudo systemctl restart kubelet ``` ### Restore the original number of Volume replicas ->>>>>>> f5d0b09 (Docs edits) To ensure a smooth migration process, when executed on a single node cluster, all Longhorn volumes are scaled down to 1 replica. This is done to make it easier to identify any issues that may arise during the migration, as scaling up the number of replicas can potentially mask the underlying problem. Despite the migration not being successful, the volumes will remain at 1 replica in order to identify the root cause of the failure. If necessary you can restore the original number of replicas by running the following command: - ``` kurl longhorn rollback-migration-replicas ``` From acea0772dc8f7dd3d33d74255d34b8a1e62b32fc Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Mon, 13 Feb 2023 10:53:26 +0100 Subject: [PATCH 121/234] chore: consolidating changes after rebase --- .../install-with-kurl/migrating-csi.md | 23 ++++++++++--------- .../install-with-kurl/migrating.md | 4 ++-- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 1c9f3f44..1a7a5449 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -14,7 +14,7 @@ This topic describes how to change the Container Storage Interface (CSI) provisi * [General Prerequisites](#general-prerequisites) * [Longhorn Prerequisites](#longhorn-prerequisites) * [Change the CSI Add-on in a Cluster](#change-the-csi-add-on-in-a-cluster) -* [Troubleshoot Longhorn Data Migration](#troubleshoot-longhorn-data-migration) +* [Troubleshoot Longhorn Data Migration](#troubleshoot-longhorn-data-migration) ## Supported CSI Migrations @@ -38,7 +38,7 @@ kURL supports data migration when you change your CSI provisioner from Rook to O The following describes the automatic data migration process when you change the CSI provisioner add-on, where _source_ is the CSI provisioner currently installed in the cluster and _target_ is the desired CSI provisioner: -1. kURL installer temporarily shuts down all pods mounting volumes backed by the _source_ provisioner. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. +1. kURL installer temporarily shuts down all pods mounting volumes backed by the _source_ provisioner. This is done to ensure that the data being migrated is not in use and can be safely copied to the new storage system. 1. kURL recreates all PVCs provided by the _source_ provisioner using the _target_ provisioner as backing storage. Data is then copied from the source PVC to the destination PVC. @@ -58,7 +58,7 @@ Before you attempt to change the CSI provisioner in your cluster, complete the f - Take a snapshot or backup of the relevant data. This helps ensure you can recover your data if the data migration fails. -- Schedule downtime for the migration. During the automated migration process, there is often a period of time where the application is unavailable. The duration of this downtime depends on the amount of data to migrate. Proper planning and scheduling is necessary to minimize the impact of downtime. +- Schedule downtime for the migration. During the automated migration process, there is often a period of time where the application is unavailable. The duration of this downtime depends on the amount of data to migrate. Proper planning and scheduling is necessary to minimize the impact of downtime. - Verify that the version of Kubernetes you are upgrading to supports both the current CSI provisioner and the new provisioner that you want to use. Running incompatible versions causes an error during data migration. @@ -66,7 +66,7 @@ Before you attempt to change the CSI provisioner in your cluster, complete the f After kURL completes the data migration, storage consumption in the cluster returns to normal because the volumes from the previous CSI provisioner are deleted. - To ensure that your cluster has adequate resources, review the following for requirements specific to Rook or OpenEBS: + To ensure that your cluster has adequate resources, review the following for requirements specific to Rook or OpenEBS: - **Rook Ceph**: See [Rook Add-on](/add-ons/rook) in the kURL documentation and [Hardware Recommendations](https://docs.ceph.com/en/quincy/start/hardware-recommendations/) in the Ceph documentation. - **OpenEBS**: See [OpenEBS Add-on](/add-ons/openebs) in the kURL documentation and [What are the minimum requirements and supported container orchestrators?](https://openebs.io/docs/faqs/general#what-are-the-minimum-requirements-and-supported-container-orchestrators) in the OpenEBS documentation. @@ -92,7 +92,7 @@ If you are migrating from Longhorn to a different CSI provisioner, you must comp kubectl get volumes.longhorn.io -n longhorn-system -o yaml ``` - In many cases, volume health is caused by issues with volume replication. Specifically, when multiple replicas are configured for a volume but not all have been scheduled. + In many cases, volume health is caused by issues with volume replication. Specifically, when multiple replicas are configured for a volume but not all have been scheduled. _**Note**_: During the data migration process in single-node clusters, the system automatically scales down the number of replicas to 1 in all Longhorn volumes to ensure the volumes are in a healthy state before beginning the data transfer. This is done to minimize the risk of a migration failure. @@ -103,7 +103,7 @@ If you are migrating from Longhorn to a different CSI provisioner, you must comp ``` If any node is not reported as "Ready" and "Schedulable" in the output of this command, resolve the issue before proceeding. - + To learn more, you can also inspect each node individually and view its "Status" property: ``` @@ -146,13 +146,13 @@ To migrate to a new CSI provisioner in a kURL cluster: version: 1.19.12 docker: version: 20.10.5 - weave: - version: 2.6.5 + flannel: + version: 0.20.2 rook: version: 1.0.4 ``` - You can remove `rook` and add `openebs` with `isLocalPVEnable: true` to migrate data from Rook to OpenEBS Local PV, as shown in the following `my-new-installer` file: + You can remove `rook` and add `openebs` with `isLocalPVEnable: true` to migrate data from Rook to OpenEBS Local PV, as shown in the following `my-new-installer` file: ``` apiVersion: cluster.kurl.sh/v1beta1 @@ -164,11 +164,12 @@ To migrate to a new CSI provisioner in a kURL cluster: version: 1.19.12 docker: version: 20.10.5 - weave: - version: 2.6.5 + flannel: + version: 0.20.2 openebs: version: 3.3.0 isLocalPVEnabled: true + localPVStorageClassName: default ``` 1. Upgrade your kURL cluster to use the updated specification by rerunning the kURL installation script. For more information about how to upgrade a kURL cluster, see [Upgrading](/install-with-kurl/upgrading). diff --git a/src/markdown-pages/install-with-kurl/migrating.md b/src/markdown-pages/install-with-kurl/migrating.md index baee5dd2..39f37340 100644 --- a/src/markdown-pages/install-with-kurl/migrating.md +++ b/src/markdown-pages/install-with-kurl/migrating.md @@ -57,7 +57,7 @@ spec: longhorn: version: 1.3.1 minio: - version: 2023-01-25T00-19-54Z + version: 2020-01-25T02-50-51Z registry: version: 2.7.1 kotsadm: @@ -77,7 +77,7 @@ spec: kubernetes: version: 1.21.14 containerd: - version: 1.4.6 + version: 1.6.15 flannel: version: 0.20.2 minio: From a7573796f29db7cd5d2fdbb340a017f27a35ffcf Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Mon, 13 Feb 2023 11:06:34 +0100 Subject: [PATCH 122/234] chore: adding note on minio dependency. --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 1a7a5449..d60e20b8 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -72,6 +72,8 @@ Before you attempt to change the CSI provisioner in your cluster, complete the f - If you are migrating from Longhorn, complete the additional [Longhorn Prerequisites](#longhorn-prerequisites) below. +- The add-ons Kots and Registry require an Object Storage API (similar to AWS S3) to be available in the cluster. This API can be provided either by Rook (directly) or by the OpenEBS+Minio duo (OpenEBS provides the storage and Minio the Object Storage API). If you are using Kots or Registry add-ons in your cluster then the available migration paths are to migrate to Rook or to OpenEBS+Minio. + ### Longhorn Prerequisites If you are migrating from Longhorn to a different CSI provisioner, you must complete the following prerequisites in addition to the [General Prerequisites](#general-prerequisites) above: From 646d740772e5630dd46b552dc9ad63d7668f13ba Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Wed, 15 Feb 2023 20:06:13 +0000 Subject: [PATCH 123/234] fix(flannel): document packet filtering firewall requirements for flannel --- src/markdown-pages/add-ons/flannel.md | 14 ++++++++++++++ .../install-with-kurl/system-requirements.md | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/markdown-pages/add-ons/flannel.md b/src/markdown-pages/add-ons/flannel.md index ff9e3df1..70629ef2 100644 --- a/src/markdown-pages/add-ons/flannel.md +++ b/src/markdown-pages/add-ons/flannel.md @@ -40,6 +40,20 @@ The following additional ports must be open between nodes for multi-node cluster | ------- | --------- | ---------- | ----------------------- | ------- | | UDP | Inbound | 8472 | Flannel VXLAN | All | +## Firewalls + +When using a stateless packet filtering firewall, to allow for outgoing TCP connections, it is common to configure the firewall to allow packets with TCP flags "ack" with destination port range 32768-65535 as this is the default range specified by the kernel /proc/sys/net/ipv4/ip_local_port_range. + +Flannel uses a larger range when doing SNAT, thus this range must be expanded to 1024-65535. + +An example rule is as follows: + +``` +| Name | Source IP | Destination IP | Source port | Destination port | Protocol | TCP flags | Action | +| ---- | --------- | -------------- | ----------- | ---------------- | -------- | --------- | ------ | +| Allow outgoing TCP | 0.0.0.0/0 | 0.0.0.0/0 | 0-65535 | 1024-65535 | tcp | ack | accept | +``` + ## Custom Pod Subnet The Pod subnet will default to `10.32.0.0/20` if available. diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index cb14805d..b37790f8 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -153,6 +153,17 @@ In addition to the ports listed above that must be open between nodes, the follo | 10257 | kube-controller-manager health server | | 10259 | kube-scheduler health server | +### Additional Firewall Rules + +When using the Flannel CNI, to allow for outgoing TCP connections from pods, you must configure stateless packet filtering firewalls to allow all packets with TCP flags "ack" with destination port range 1024-65535. +For more information see the Flannel [Firewalls](/docs/add-ons/flannel#firewalls) add-on documentation. + +``` +| Name | Source IP | Destination IP | Source port | Destination port | Protocol | TCP flags | Action | +| ---- | --------- | -------------- | ----------- | ---------------- | -------- | --------- | ------ | +| Allow outgoing TCP | 0.0.0.0/0 | 0.0.0.0/0 | 0-65535 | 1024-65535 | tcp | ack | accept | +``` + ## High Availability Requirements From 801ddaf1bb3716a8603dcab58645bac9540f8ae0 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Fri, 17 Feb 2023 10:44:16 +0100 Subject: [PATCH 124/234] doc: adding note on kurl version (longhorn migration). adds a note to the documentation stating what is the version where the migration away from longhorn has been implemented. --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index d60e20b8..e2262f5e 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -20,6 +20,8 @@ This topic describes how to change the Container Storage Interface (CSI) provisi _**Important**_: kURL does not support Longhorn. If you are currently using Longhorn, you must migrate data from Longhorn to either OpenEBS or Rook. +> Migrations from Longhorn to OpenEBS or Rook are available in kURL versions greater or equal to [v2023.02.16-0](https://github.com/replicatedhq/kurl/tree/v2023.02.16-0). + This table describes the CSI add-on migration paths that kURL supports: | From | To | Notes | From 3322c15e2c3b90246bad60b6ba0e06cdb45b8a28 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Fri, 17 Feb 2023 16:16:45 +0100 Subject: [PATCH 125/234] bug: the right kurl version is today's version, not yesterday's. --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index e2262f5e..c6d3ce5f 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -20,7 +20,7 @@ This topic describes how to change the Container Storage Interface (CSI) provisi _**Important**_: kURL does not support Longhorn. If you are currently using Longhorn, you must migrate data from Longhorn to either OpenEBS or Rook. -> Migrations from Longhorn to OpenEBS or Rook are available in kURL versions greater or equal to [v2023.02.16-0](https://github.com/replicatedhq/kurl/tree/v2023.02.16-0). +> Migrations from Longhorn to OpenEBS or Rook are available in kURL versions greater or equal to [v2023.02.17-0](https://github.com/replicatedhq/kurl/tree/v2023.02.17-0). This table describes the CSI add-on migration paths that kURL supports: From 9856fb595cd9b85eda880bee1b0f3611833ffdd7 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Fri, 17 Feb 2023 09:37:01 -0700 Subject: [PATCH 126/234] Moves kURL version requirement to Prerequisites section --- src/markdown-pages/install-with-kurl/migrating-csi.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index c6d3ce5f..c817d655 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -18,9 +18,7 @@ This topic describes how to change the Container Storage Interface (CSI) provisi ## Supported CSI Migrations -_**Important**_: kURL does not support Longhorn. If you are currently using Longhorn, you must migrate data from Longhorn to either OpenEBS or Rook. - -> Migrations from Longhorn to OpenEBS or Rook are available in kURL versions greater or equal to [v2023.02.17-0](https://github.com/replicatedhq/kurl/tree/v2023.02.17-0). +_**Important**_: kURL does not support Longhorn. If you are currently using Longhorn, you must migrate data from Longhorn to either OpenEBS or Rook. kURL v2023.02.17-0 and later supports automatic data migration from Longhorn to OpenEBS or Rook. For more information, see [Longhorn Prerequisites](#longhorn-prerequisites) below. This table describes the CSI add-on migration paths that kURL supports: @@ -80,7 +78,9 @@ Before you attempt to change the CSI provisioner in your cluster, complete the f If you are migrating from Longhorn to a different CSI provisioner, you must complete the following prerequisites in addition to the [General Prerequisites](#general-prerequisites) above: -- Ensure that the version of Longhorn installed in your cluster is 1.2.0 or later or 1.3.0 or later. Longhorn versions 1.2.x and 1.3.x support Kubernetes versions 1.24 and earlier. +- Upgrade your cluster to kURL [v2023.02.17-0](https://github.com/replicatedhq/kurl/tree/v2023.02.17-0) or later. Automatic data migration from Longhorn to Rook or OpenEBS is not supported in kURL versions earlier than v2023.02.17-0. + +- Upgrade the version of Longhorn installed in your cluster to 1.2.0 or later or 1.3.0 or later. Longhorn versions 1.2.x and 1.3.x support Kubernetes versions 1.24 and earlier. - Confirm that the Longhorn volumes are in a healthy state. Run the following command to check the status of the volumes: From badff5fb01370c280a6e19edbb3a76ef58d97005 Mon Sep 17 00:00:00 2001 From: Paige Calvert Date: Fri, 17 Feb 2023 09:38:13 -0700 Subject: [PATCH 127/234] change wording --- src/markdown-pages/install-with-kurl/migrating-csi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index c817d655..96a9aed4 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -78,7 +78,7 @@ Before you attempt to change the CSI provisioner in your cluster, complete the f If you are migrating from Longhorn to a different CSI provisioner, you must complete the following prerequisites in addition to the [General Prerequisites](#general-prerequisites) above: -- Upgrade your cluster to kURL [v2023.02.17-0](https://github.com/replicatedhq/kurl/tree/v2023.02.17-0) or later. Automatic data migration from Longhorn to Rook or OpenEBS is not supported in kURL versions earlier than v2023.02.17-0. +- Upgrade your cluster to kURL [v2023.02.17-0](https://github.com/replicatedhq/kurl/tree/v2023.02.17-0) or later. Automatic data migration from Longhorn to Rook or OpenEBS is not available in kURL versions earlier than v2023.02.17-0. - Upgrade the version of Longhorn installed in your cluster to 1.2.0 or later or 1.3.0 or later. Longhorn versions 1.2.x and 1.3.x support Kubernetes versions 1.24 and earlier. From 8e2acdf2f8ca72aeaa352211e7911ecc7957f130 Mon Sep 17 00:00:00 2001 From: Ethan Mosbaugh Date: Tue, 14 Feb 2023 21:59:32 +0000 Subject: [PATCH 128/234] fix: clarify ekco.rookShouldUseAllNodes kurl installer spec property --- static/versionDetails.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/versionDetails.json b/static/versionDetails.json index 4c49b6f2..f6542e90 100644 --- a/static/versionDetails.json +++ b/static/versionDetails.json @@ -560,7 +560,7 @@ }, { "flag": "rookShouldUseAllNodes", - "description": "This will disable management of nodes in the CephCluster resource. If false, ekco will add nodes to the storage list and remove them when a node is purged.", + "description": "Enabling this will configure Rook to use all nodes for storage rather than EKCO managing a list of nodes. Additionally, this will disable EKCO scaling of Ceph mgr and mon counts and pool replication levels when additional nodes are added to the cluster.", "type": "boolean" }, { From 523ddf016948d1e507d279f75c677ad1e2b17e71 Mon Sep 17 00:00:00 2001 From: Andrew Lavery Date: Wed, 22 Feb 2023 12:53:21 -0500 Subject: [PATCH 129/234] change openebs localpv storageclass name to 'local' from 'default' also clarify docs on when openebs will be the default storageclass --- src/markdown-pages/add-ons/kotsadm.md | 4 ++-- src/markdown-pages/add-ons/openebs.md | 16 +++++----------- .../choosing-a-pv-provisioner.md | 4 ++-- .../install-with-kurl/migrating-csi.md | 2 +- .../install-with-kurl/migrating.md | 2 +- .../install-with-kurl/removing-object-storage.md | 2 +- src/utils/__tests__/kurl-yaml.js | 4 ++-- static/versionDetails.json | 4 ++-- 8 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/markdown-pages/add-ons/kotsadm.md b/src/markdown-pages/add-ons/kotsadm.md index 900404f6..64d4ac04 100644 --- a/src/markdown-pages/add-ons/kotsadm.md +++ b/src/markdown-pages/add-ons/kotsadm.md @@ -83,7 +83,7 @@ spec: openebs: version: latest isLocalPVEnabled: true - localPVStorageClassName: default + localPVStorageClassName: local minio: version: latest registry: @@ -107,7 +107,7 @@ spec: openebs: version: latest isLocalPVEnabled: true - localPVStorageClassName: default + localPVStorageClassName: local registry: version: latest kotsadm: diff --git a/src/markdown-pages/add-ons/openebs.md b/src/markdown-pages/add-ons/openebs.md index c3911e32..bc7f11f2 100644 --- a/src/markdown-pages/add-ons/openebs.md +++ b/src/markdown-pages/add-ons/openebs.md @@ -17,7 +17,7 @@ spec: version: latest namespace: openebs isLocalPVEnabled: true - localPVStorageClassName: openebs + localPVStorageClassName: local ``` flags-table @@ -34,17 +34,11 @@ Additionally, Local Volumes are typically preferred for workloads like Cassandra ### Storage Class -The OpenEBS Storage Class can be set as the default by setting the `openebs.localPVStorageClassName` property to `"default"` or when no other storage provisioner add-on is included in the spec. +The OpenEBS Storage Class will be set as the default if: -In this example, the Local PV provisioner would be used as the default provisioner for any Persistent Volume Claims that do not explicitly specify a `storageClassName`. - -```yaml -spec: - openebs: - version: latest - isLocalPVEnabled: true - localPVStorageClassName: default -``` +1. Rook is not included in the spec. +2. There is no existing default Storage Class in the cluster. +3. Longhorn is not included in the spec OR the `openebs.localPVStorageClassName` property is set to `"default"`. ### Limitations diff --git a/src/markdown-pages/create-installer/choosing-a-pv-provisioner.md b/src/markdown-pages/create-installer/choosing-a-pv-provisioner.md index e995e88f..57d91d1b 100644 --- a/src/markdown-pages/create-installer/choosing-a-pv-provisioner.md +++ b/src/markdown-pages/create-installer/choosing-a-pv-provisioner.md @@ -26,7 +26,7 @@ spec:   openebs:     version: "3.3.x"     isLocalPVEnabled: true -    localPVStorageClassName: "default" +    localPVStorageClassName: "local" ``` Conversely, [Rook](/docs/add-ons/rook) provides dynamic PV provisioning of distributed [Ceph](https://ceph.io/) storage. @@ -62,7 +62,7 @@ spec:   openebs:     version: "3.3.x"     isLocalPVEnabled: true -    localPVStorageClassName: "default" +    localPVStorageClassName: "local"   minio:     version: "2022-09-07T22-25-02Z" ``` diff --git a/src/markdown-pages/install-with-kurl/migrating-csi.md b/src/markdown-pages/install-with-kurl/migrating-csi.md index 96a9aed4..5d1056de 100644 --- a/src/markdown-pages/install-with-kurl/migrating-csi.md +++ b/src/markdown-pages/install-with-kurl/migrating-csi.md @@ -173,7 +173,7 @@ To migrate to a new CSI provisioner in a kURL cluster: openebs: version: 3.3.0 isLocalPVEnabled: true - localPVStorageClassName: default + localPVStorageClassName: local ``` 1. Upgrade your kURL cluster to use the updated specification by rerunning the kURL installation script. For more information about how to upgrade a kURL cluster, see [Upgrading](/install-with-kurl/upgrading). diff --git a/src/markdown-pages/install-with-kurl/migrating.md b/src/markdown-pages/install-with-kurl/migrating.md index 39f37340..2e7a0d27 100644 --- a/src/markdown-pages/install-with-kurl/migrating.md +++ b/src/markdown-pages/install-with-kurl/migrating.md @@ -85,7 +85,7 @@ spec: openebs: version: 3.3.0 isLocalPVEnabled: true - localPVStorageClassName: default + localPVStorageClassName: local registry: version: 2.8.1 kotsadm: diff --git a/src/markdown-pages/install-with-kurl/removing-object-storage.md b/src/markdown-pages/install-with-kurl/removing-object-storage.md index 3acf23ec..46470a7e 100644 --- a/src/markdown-pages/install-with-kurl/removing-object-storage.md +++ b/src/markdown-pages/install-with-kurl/removing-object-storage.md @@ -32,7 +32,7 @@ spec: openebs: version: 3.3.x isLocalPVEnabled: true - localPVStorageClassName: default + localPVStorageClassName: local registry: version: 2.8.x velero: diff --git a/src/utils/__tests__/kurl-yaml.js b/src/utils/__tests__/kurl-yaml.js index 173e6a2c..5d1cf4c1 100644 --- a/src/utils/__tests__/kurl-yaml.js +++ b/src/utils/__tests__/kurl-yaml.js @@ -27,7 +27,7 @@ spec: openebs: version: 3.3.x isLocalPVEnabled: true - localPVStorageClassName: default + localPVStorageClassName: local `; const expected = `apiVersion: cluster.kurl.sh/v1beta1 kind: Installer @@ -62,7 +62,7 @@ spec: openebs: version: 3.3.x isLocalPVEnabled: true - localPVStorageClassName: default + localPVStorageClassName: local `; const actual = injectYamlOpenebsComment(yaml); expect(actual).to.equal(expected); diff --git a/static/versionDetails.json b/static/versionDetails.json index 4c49b6f2..13e8f36a 100644 --- a/static/versionDetails.json +++ b/static/versionDetails.json @@ -533,7 +533,7 @@ }, { "flag": "localPVStorageClassName", - "description": "StorageClass name for local PV provisioner (Name it “default” to make it the cluster’s default provisioner).", + "description": "StorageClass name for local PV provisioner.", "type": "string" } ], @@ -760,4 +760,4 @@ "defaultValue": false } ] -} \ No newline at end of file +} From 6cca20a7ade8395dea977db1feae0f3515cd6ad4 Mon Sep 17 00:00:00 2001 From: Camila Macedo <7708031+camilamacedo86@users.noreply.github.com> Date: Thu, 23 Feb 2023 09:46:46 +0000 Subject: [PATCH 130/234] Fix info regards Container Runtimes ## Description Fix info over Container Runtime. --- src/markdown-pages/install-with-kurl/upgrading.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/upgrading.md b/src/markdown-pages/install-with-kurl/upgrading.md index 820c3825..3092fd92 100644 --- a/src/markdown-pages/install-with-kurl/upgrading.md +++ b/src/markdown-pages/install-with-kurl/upgrading.md @@ -21,7 +21,10 @@ For example, it is possible to upgrade directly from Kubernetes 1.22 to 1.24, bu ## Container Runtimes -Existing versions of docker and containerd will never be upgraded by the install script. +If the install script detects an upgrade of a container runtime (`Docker` or `Containerd`) is required, then the new versions provided will be installed. +For exmaple, if you have a cluster using Containerd version `1.6.4` and then you run an installer defining that the version of Containerd should be `1.6.18` the installer will configure it. + +Also, be aware that `Docker is not supported with Kubernetes versions 1.24+`. Therefore, it would be recommended to use `Containerd` instead. You can upgrade your installation by replacing Docker definition in the installer with Containerd. If the install script detects an upgrade of `Docker` to `Containerd`, it will install Container and load the images found and exported from Docker. In this case, Docker will be also removed from the host. ## Airgap From 982c7de06bcab226e020b73c645a95104524f4a6 Mon Sep 17 00:00:00 2001 From: Camila Macedo <7708031+camilamacedo86@users.noreply.github.com> Date: Thu, 23 Feb 2023 11:00:22 +0000 Subject: [PATCH 131/234] Apply suggestions from code review --- src/markdown-pages/install-with-kurl/upgrading.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/upgrading.md b/src/markdown-pages/install-with-kurl/upgrading.md index 3092fd92..8bd56fcf 100644 --- a/src/markdown-pages/install-with-kurl/upgrading.md +++ b/src/markdown-pages/install-with-kurl/upgrading.md @@ -24,7 +24,7 @@ For example, it is possible to upgrade directly from Kubernetes 1.22 to 1.24, bu If the install script detects an upgrade of a container runtime (`Docker` or `Containerd`) is required, then the new versions provided will be installed. For exmaple, if you have a cluster using Containerd version `1.6.4` and then you run an installer defining that the version of Containerd should be `1.6.18` the installer will configure it. -Also, be aware that `Docker is not supported with Kubernetes versions 1.24+`. Therefore, it would be recommended to use `Containerd` instead. You can upgrade your installation by replacing Docker definition in the installer with Containerd. If the install script detects an upgrade of `Docker` to `Containerd`, it will install Container and load the images found and exported from Docker. In this case, Docker will be also removed from the host. +Also, be aware that `Docker is not supported with Kubernetes versions 1.24+`. Therefore, it is recommended to use `Containerd` instead. You can upgrade your installation by replacing Docker definition in the installer with Containerd. If the install script detects an upgrade of `Docker` to `Containerd`, it will install Containerd and load the images found and exported from Docker. In this case, Docker will be also removed from the host. ## Airgap From 98908d032fcd05f2a3a3f00868500b4a98c46707 Mon Sep 17 00:00:00 2001 From: Ricardo Maraschini Date: Thu, 23 Feb 2023 13:46:04 +0100 Subject: [PATCH 132/234] feat: enable austere linter for kurl.sh. enables the kurl-api austere installer linter. --- src/components/Kurlsh.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/Kurlsh.js b/src/components/Kurlsh.js index fe73c8af..3e38620f 100644 --- a/src/components/Kurlsh.js +++ b/src/components/Kurlsh.js @@ -841,7 +841,9 @@ class Kurlsh extends React.Component { postToKurlInstaller = async (yaml) => { this.setState({ installerErrMsg: "" }) - const url = `${process.env.KURL_INSTALLER_URL}` + let parsedURL = new URL(process.env.KURL_INSTALLER_URL); + parsedURL.searchParams.append('austere', true); + const url = parsedURL.toString(); try { const response = await fetch(url, { method: "POST", From 540c1993e4f6de3e03c165e249af6cd8e3373d2e Mon Sep 17 00:00:00 2001 From: Camila Macedo <7708031+camilamacedo86@users.noreply.github.com> Date: Thu, 23 Feb 2023 14:37:48 +0000 Subject: [PATCH 133/234] Update src/markdown-pages/install-with-kurl/upgrading.md Co-authored-by: Ethan Mosbaugh --- src/markdown-pages/install-with-kurl/upgrading.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/upgrading.md b/src/markdown-pages/install-with-kurl/upgrading.md index 8bd56fcf..3a18cc39 100644 --- a/src/markdown-pages/install-with-kurl/upgrading.md +++ b/src/markdown-pages/install-with-kurl/upgrading.md @@ -22,7 +22,7 @@ For example, it is possible to upgrade directly from Kubernetes 1.22 to 1.24, bu ## Container Runtimes If the install script detects an upgrade of a container runtime (`Docker` or `Containerd`) is required, then the new versions provided will be installed. -For exmaple, if you have a cluster using Containerd version `1.6.4` and then you run an installer defining that the version of Containerd should be `1.6.18` the installer will configure it. +For example, if you have a cluster using Containerd version `1.6.4` and then you modify the version in your spec to `1.6.18` and re-run the kURL script, the installer will upgrade Containerd to the newly specified version. Also, be aware that `Docker is not supported with Kubernetes versions 1.24+`. Therefore, it is recommended to use `Containerd` instead. You can upgrade your installation by replacing Docker definition in the installer with Containerd. If the install script detects an upgrade of `Docker` to `Containerd`, it will install Containerd and load the images found and exported from Docker. In this case, Docker will be also removed from the host. From faa3ae9976c367c44b6c15b3a0b115c9abb818a2 Mon Sep 17 00:00:00 2001 From: Camila Macedo <7708031+camilamacedo86@users.noreply.github.com> Date: Thu, 23 Feb 2023 14:37:55 +0000 Subject: [PATCH 134/234] Update src/markdown-pages/install-with-kurl/upgrading.md Co-authored-by: Ethan Mosbaugh --- src/markdown-pages/install-with-kurl/upgrading.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/upgrading.md b/src/markdown-pages/install-with-kurl/upgrading.md index 3a18cc39..41ba4c13 100644 --- a/src/markdown-pages/install-with-kurl/upgrading.md +++ b/src/markdown-pages/install-with-kurl/upgrading.md @@ -24,7 +24,7 @@ For example, it is possible to upgrade directly from Kubernetes 1.22 to 1.24, bu If the install script detects an upgrade of a container runtime (`Docker` or `Containerd`) is required, then the new versions provided will be installed. For example, if you have a cluster using Containerd version `1.6.4` and then you modify the version in your spec to `1.6.18` and re-run the kURL script, the installer will upgrade Containerd to the newly specified version. -Also, be aware that `Docker is not supported with Kubernetes versions 1.24+`. Therefore, it is recommended to use `Containerd` instead. You can upgrade your installation by replacing Docker definition in the installer with Containerd. If the install script detects an upgrade of `Docker` to `Containerd`, it will install Containerd and load the images found and exported from Docker. In this case, Docker will be also removed from the host. +Also, be aware that Docker is not supported with Kubernetes versions 1.24+. Therefore, it is recommended to use Containerd instead. You can upgrade your installation by replacing Docker in your spec with Containerd. If the install script detects a change from Docker to Containerd, it will install Containerd, load the images found in Docker, and remove Docker. ## Airgap From 9529e8a84e4654e5fb60e938101ffb477aeed08b Mon Sep 17 00:00:00 2001 From: Rafael Polanco <6497491+rrpolanco@users.noreply.github.com> Date: Fri, 24 Feb 2023 08:19:04 -0600 Subject: [PATCH 135/234] doc: Add warning about purging a node (#942) * Add warning about purging a node * Convey that purging a node is intended to be irrevocable Making the language around purging a node "loose" to leave room for cases where you actually can run `ekco-purge-node.sh` (along with some other operations) and bring the node back to the cluster. --- src/markdown-pages/add-ons/ekco.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/markdown-pages/add-ons/ekco.md b/src/markdown-pages/add-ons/ekco.md index 8ab96f27..ccba975f 100644 --- a/src/markdown-pages/add-ons/ekco.md +++ b/src/markdown-pages/add-ons/ekco.md @@ -92,6 +92,8 @@ Global Flags: --log_level string Log level (default "info") ``` +⚠️ _**Warning**:_ Purging a node is intended to be an irrevocable operation and is meant to permanently remove the node from the cluster with the expectation that it will never become a member again. + ### Rook The EKCO operator is responsible for appending nodes to the CephCluster `storage.nodes` setting to include the node in the list of nodes used by Ceph for storage. This operation only appends nodes. Removing nodes is done during the purge. From cec8d7f3bf996c1ad313fce49151de06c7849857 Mon Sep 17 00:00:00 2001 From: Kyle Price Date: Fri, 17 Mar 2023 16:11:20 -0500 Subject: [PATCH 136/234] Added registry.k8s.io Added a requirement for registry.k8s.io to the docs site. --- src/markdown-pages/install-with-kurl/system-requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index b37790f8..b2123891 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -101,7 +101,7 @@ IP addresses for these services can be found in [replicatedhq/ips](https://githu | Host | Description | |---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | amazonaws.com | tar.gz packages are downloaded from Amazon S3 during embedded cluster installations. The IP ranges to allowlist for accessing these can be scraped dynamically from the [AWS IP Address](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html#aws-ip-download) Ranges documentation. | -| k8s.gcr.io | Images for the Kubernetes control plane are downloaded from the [Google Container Registry](https://cloud.google.com/container-registry) repository used to publish official container images for Kubernetes. For more information on the Kubernetes control plane components, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/overview/components/#control-plane-components). | +| k8s.gcr.io, registry.k8s.io | Images for the Kubernetes control plane are downloaded from the [Google Container Registry](https://cloud.google.com/container-registry) repository used to publish official container images for Kubernetes. Starting March 20th, 2023 these requests are proxied to the new address "registry.k8s.io". Both of these URLs should be allowed via Firewall rules. For more information on the Kubernetes control plane components, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/overview/components/#control-plane-components). | | k8s.kurl.sh | Kubernetes cluster installation scripts and artifacts are served from [kurl.sh](https://kurl.sh). Bash scripts and binary executables are served from kurl.sh. This domain is owned by Replicated, Inc which is headquartered in Los Angeles, CA. | No outbound internet access is required for airgapped installations. From 284ce8293c321f19027a555c6db9b0d24a5320ab Mon Sep 17 00:00:00 2001 From: jonquil2002 <91626429+jonquil2002@users.noreply.github.com> Date: Fri, 17 Mar 2023 17:27:41 -0400 Subject: [PATCH 137/234] Minor style edits --- src/markdown-pages/install-with-kurl/system-requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index b2123891..d50706ea 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -101,7 +101,7 @@ IP addresses for these services can be found in [replicatedhq/ips](https://githu | Host | Description | |---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | amazonaws.com | tar.gz packages are downloaded from Amazon S3 during embedded cluster installations. The IP ranges to allowlist for accessing these can be scraped dynamically from the [AWS IP Address](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html#aws-ip-download) Ranges documentation. | -| k8s.gcr.io, registry.k8s.io | Images for the Kubernetes control plane are downloaded from the [Google Container Registry](https://cloud.google.com/container-registry) repository used to publish official container images for Kubernetes. Starting March 20th, 2023 these requests are proxied to the new address "registry.k8s.io". Both of these URLs should be allowed via Firewall rules. For more information on the Kubernetes control plane components, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/overview/components/#control-plane-components). | +| k8s.gcr.io, registry.k8s.io | Images for the Kubernetes control plane are downloaded from the [Google Container Registry](https://cloud.google.com/container-registry) repository used to publish official container images for Kubernetes. Starting March 20, 2023, these requests are proxied to the new address `registry.k8s.io`. Both of these URLs must be allowed using firewall rules. For more information on the Kubernetes control plane components, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/overview/components/#control-plane-components). | | k8s.kurl.sh | Kubernetes cluster installation scripts and artifacts are served from [kurl.sh](https://kurl.sh). Bash scripts and binary executables are served from kurl.sh. This domain is owned by Replicated, Inc which is headquartered in Los Angeles, CA. | No outbound internet access is required for airgapped installations. From d0f9ce8a280ab32c525ab1799dd77d881e2bb105 Mon Sep 17 00:00:00 2001 From: jonquil2002 <91626429+jonquil2002@users.noreply.github.com> Date: Fri, 17 Mar 2023 17:53:56 -0400 Subject: [PATCH 138/234] Update src/markdown-pages/install-with-kurl/system-requirements.md Co-authored-by: Rafael Polanco <6497491+rrpolanco@users.noreply.github.com> --- src/markdown-pages/install-with-kurl/system-requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/markdown-pages/install-with-kurl/system-requirements.md b/src/markdown-pages/install-with-kurl/system-requirements.md index d50706ea..e63e7baa 100644 --- a/src/markdown-pages/install-with-kurl/system-requirements.md +++ b/src/markdown-pages/install-with-kurl/system-requirements.md @@ -101,7 +101,7 @@ IP addresses for these services can be found in [replicatedhq/ips](https://githu | Host | Description | |---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | amazonaws.com | tar.gz packages are downloaded from Amazon S3 during embedded cluster installations. The IP ranges to allowlist for accessing these can be scraped dynamically from the [AWS IP Address](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html#aws-ip-download) Ranges documentation. | -| k8s.gcr.io, registry.k8s.io | Images for the Kubernetes control plane are downloaded from the [Google Container Registry](https://cloud.google.com/container-registry) repository used to publish official container images for Kubernetes. Starting March 20, 2023, these requests are proxied to the new address `registry.k8s.io`. Both of these URLs must be allowed using firewall rules. For more information on the Kubernetes control plane components, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/overview/components/#control-plane-components). | +| k8s.gcr.io, registry.k8s.io | Images for the Kubernetes control plane are downloaded from the [Google Container Registry](https://cloud.google.com/container-registry) repository used to publish official container images for Kubernetes. Starting March 20, 2023, these requests are proxied to the new address `registry.k8s.io`. Both of these URLs must be allowed network traffic using firewall rules. For more information on the Kubernetes control plane components, see the [Kubernetes documentation](https://kubernetes.io/docs/concepts/overview/components/#control-plane-components). | | k8s.kurl.sh | Kubernetes cluster installation scripts and artifacts are served from [kurl.sh](https://kurl.sh). Bash scripts and binary executables are served from kurl.sh. This domain is owned by Replicated, Inc which is headquartered in Los Angeles, CA. | No outbound internet access is required for airgapped installations. From 39f0e143b1e54591a5d77c5318361d5dd1813904 Mon Sep 17 00:00:00 2001 From: kylep Date: Thu, 23 Mar 2023 14:07:13 -0500 Subject: [PATCH 139/234] Added marking add-ons as deprecated --- gatsby-node.js | 2 ++ src/components/Kurlsh.js | 2 +- src/components/shared/AddOnWrapper.js | 4 ++-- src/components/shared/SidebarFileTree.js | 2 +- src/markdown-pages/add-ons/aws.md | 2 +- src/templates/DocsTemplate.js | 3 ++- 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/gatsby-node.js b/gatsby-node.js index 6b52ffbd..d48d08fb 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -43,6 +43,7 @@ exports.createSchemaCustomization = ({ actions }) => { version: String isBeta: Boolean isAlpha: Boolean + isDeprecated: Boolean } ` createTypes(typeDefs) @@ -87,6 +88,7 @@ exports.createPages = async ({ actions, graphql, reporter }) => { version isBeta isAlpha + isDeprecated } } } diff --git a/src/components/Kurlsh.js b/src/components/Kurlsh.js index 3e38620f..f6405236 100644 --- a/src/components/Kurlsh.js +++ b/src/components/Kurlsh.js @@ -1556,7 +1556,7 @@ class Kurlsh extends React.Component { @@ -18,7 +18,7 @@ class AddOnWrapper extends React.Component { />
    -
    {addOnTitle} { isBeta && beta }
    +
    {addOnTitle} { isBeta && beta } { isDeprecated && deprecated }
    {!isAddOnChecked ? "Version None" : "Version"}