aws-samples / eks-anywhere-addons

https://aws-samples.github.io/eks-anywhere-addons/
MIT No Attribution
20 stars 40 forks source link

Ondat EKS Anywhere Add-on #58

Closed hubvu closed 11 months ago

hubvu commented 1 year ago

Ondat EKS Anywhere Add-on

Local Testing Walkthrough

  1. Run the following commands against the cluster to deploy a Local Path Provisioner and make it the default storageclass to provide local storage for Ondat’s embedded etcd cluster operator deployment:
$ kubectl apply --filename="https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.22/deploy/local-path-storage.yaml"
$ kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
  1. Added GitRepository as a source:
$ flux create source git addons \
--url=https://github.com/hubvu/eks-anywhere-addons \
--branch=ondat-eksa-addon
  1. Added Kustomization for the Ondat add-on:
$ flux create kustomization addons-ondat-partner \
--source=addons \
--path="./eks-anywhere-common/Addons/Partner/ondat" \
--prune=true \
--interval=5m
  1. Get the status of the kustomization add-on through flux and kubectl:
$ flux get kustomization
NAME                    REVISION                        SUSPENDED   READY   MESSAGE
addons-ondat-partner    ondat-eksa-addon@sha1:a76f6b16  False       True    Applied revision: ondat-eksa-addon@sha1:a76f6b16

$ kubectl get all -n storageos
NAME                                                     READY   STATUS    RESTARTS      AGE
pod/storageos-api-manager-8598d7b5f-7cpsd                1/1     Running   1 (51m ago)   51m
pod/storageos-api-manager-8598d7b5f-dx8dp                1/1     Running   1 (11m ago)   51m
pod/storageos-csi-helper-6658546b87-ndb2q                4/4     Running   0             51m
pod/storageos-etcd-0-xkbdf                               1/1     Running   0             52m
pod/storageos-etcd-1-tjqpq                               1/1     Running   0             52m
pod/storageos-etcd-2-np9bx                               1/1     Running   0             52m
pod/storageos-etcd-3-dgnqw                               1/1     Running   0             52m
pod/storageos-etcd-4-sq5cc                               1/1     Running   0             51m
pod/storageos-etcd-controller-manager-5557749bd8-t4gm5   1/1     Running   0             53m
pod/storageos-etcd-controller-manager-5557749bd8-ts2w2   1/1     Running   0             53m
pod/storageos-etcd-proxy-7545df6fcd-z7kmm                1/1     Running   0             53m
pod/storageos-node-2vgnh                                 3/3     Running   0             52m
pod/storageos-node-cpqxd                                 3/3     Running   0             52m
pod/storageos-node-hknrg                                 3/3     Running   0             52m
pod/storageos-node-lt9zn                                 3/3     Running   0             52m
pod/storageos-node-vjm6t                                 3/3     Running   0             52m
pod/storageos-ondat-ondat-operator-5884f8db9f-hwdz5      2/2     Running   0             53m
pod/storageos-scheduler-55b6957d4f-nv7rq                 1/1     Running   2 (11m ago)   51m

NAME                                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
service/storageos                       ClusterIP   10.43.35.77     <none>        5705/TCP                     52m
service/storageos-api-manager-metrics   ClusterIP   10.43.223.174   <none>        8080/TCP                     51m
service/storageos-etcd                  ClusterIP   None            <none>        2379/TCP,2380/TCP,2381/TCP   52m
service/storageos-etcd-proxy            ClusterIP   10.43.207.150   <none>        80/TCP                       53m
service/storageos-operator              ClusterIP   10.43.116.63    <none>        8443/TCP                     53m
service/storageos-operator-webhook      ClusterIP   10.43.146.144   <none>        443/TCP                      53m
service/storageos-webhook               ClusterIP   10.43.133.233   <none>        443/TCP                      51m

NAME                            DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/storageos-node   5         5         5       5            5           <none>          52m

NAME                                                READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/storageos-api-manager               2/2     2            2           51m
deployment.apps/storageos-csi-helper                1/1     1            1           51m
deployment.apps/storageos-etcd-controller-manager   2/2     2            2           53m
deployment.apps/storageos-etcd-proxy                1/1     1            1           53m
deployment.apps/storageos-ondat-ondat-operator      1/1     1            1           53m
deployment.apps/storageos-scheduler                 1/1     1            1           51m

NAME                                                           DESIRED   CURRENT   READY   AGE
replicaset.apps/storageos-api-manager-8598d7b5f                2         2         2       51m
replicaset.apps/storageos-csi-helper-6658546b87                1         1         1       51m
replicaset.apps/storageos-etcd-0                               1         1         1       52m
replicaset.apps/storageos-etcd-1                               1         1         1       52m
replicaset.apps/storageos-etcd-2                               1         1         1       52m
replicaset.apps/storageos-etcd-3                               1         1         1       52m
replicaset.apps/storageos-etcd-4                               1         1         1       51m
replicaset.apps/storageos-etcd-controller-manager-5557749bd8   2         2         2       53m
replicaset.apps/storageos-etcd-proxy-7545df6fcd                1         1         1       53m
replicaset.apps/storageos-ondat-ondat-operator-5884f8db9f      1         1         1       53m
replicaset.apps/storageos-scheduler-55b6957d4f                 1         1         1       51m

$ kubectl get sc
NAME                                     PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
local-path                               rancher.io/local-path   Delete          WaitForFirstConsumer   false                  57m
storageos                                csi.storageos.com       Delete          Immediate              true                   55m
hubvu commented 1 year ago

Hey @elamaran11 no worries and thanks for reviewing my PR. To answer your questions:

  1. Is this a free product or do we need any license to test this product on different deployment models?
  1. Also could you please submit a test job to validate the product. Test job is an essential for us to pass the PR. You can check https://github.com/aws-samples/eks-anywhere-addons/blob/main/eks-anywhere-common/Testers/Hashicorp/Vault/kvJob.yaml for sample.
$ flux create kustomization addons-ondat-partner-test \
    --source=addons \
    --path="./eks-anywhere-common/Testers/Ondat" \
    --prune=true \
    --interval=5m 

$ kubectl get services -n storageos
NAME                            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
storageos                       ClusterIP   10.43.253.135   <none>        5705/TCP                     89m
storageos-api-manager-metrics   ClusterIP   10.43.164.14    <none>        8080/TCP                     88m
storageos-etcd                  ClusterIP   None            <none>        2379/TCP,2380/TCP,2381/TCP   89m
storageos-etcd-proxy            ClusterIP   10.43.66.233    <none>        80/TCP                       89m
storageos-operator              ClusterIP   10.43.147.191   <none>        8443/TCP                     89m
storageos-operator-webhook      ClusterIP   10.43.105.90    <none>        443/TCP                      89m
storageos-webhook               ClusterIP   10.43.85.101    <none>        443/TCP                      88m

$ kubectl get pods -n storageos | grep "storageos-service-test"
storageos-service-test-lq728                         0/1     Completed   0             15m

$ kubectl logs storageos-service-test-lq728 -n storageos
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 10.43.253.135:5705...
* Connected to storageos.storageos.svc.cluster.local (10.43.253.135) port 5705 (#0)
> GET / HTTP/1.1
> Host: storageos.storageos.svc.cluster.local:5705
> User-Agent: curl/7.88.1-DEV
> Accept: */*
>
< HTTP/1.1 200 OK
< Cache-Control: no-store
< Content-Type: text/html; charset=utf-8
< Date: Fri, 24 Feb 2023 14:57:43 GMT
< Transfer-Encoding: chunked
<
{ [1990 bytes data]
100  1971    0  1971    0     0  63695      0 --:--:-- --:--:-- --:--:-- 65700
* Connection #0 to host storageos.storageos.svc.cluster.local left intact
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=apple-touch-icon sizes=180x180 href=/ui/img/icons/apple-touch-icon.png><!--[if IE]><link rel="icon" type="image/png" sizes="32x32" href="/ui/img/icons/favicon-32x32.png"><![endif]--><link rel=icon type=image/png sizes=16x16 href=/ui/img/icons/favicon-16x16.png><link rel=mask-icon href=/ui/img/icons/safari-pinned-tab.svg color=#5bbad5><meta name=apple-mobile-web-app-title content=StorageOS><meta name=application-name content=StorageOS><meta name=msapplication-TileColor content=#ffffff><meta name=theme-color content=#ffffff><title>Dashboard</title><link href=/../css/chunk-vendors.7654c4c0.css rel=preload as=style><link href=/../js/app.0937e049.js rel=preload as=script><link href=/../js/chunk-vendors.cc8eb95d.js rel=preload as=script><link href=/../css/chunk-vendors.7654c4c0.css rel=stylesheet><link rel=icon type=image/png sizes=32x32 href=/ui/img/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/ui/img/icons/favicon-16x16.png><link rel=manifest href=/../ui/manifest.json><meta name=theme-color content=#4DBA87><meta name=apple-mobile-web-app-capable content=no><meta name=apple-mobile-web-app-status-bar-style content=default><meta name=apple-mobile-web-app-title content=StorageOS><link rel=apple-touch-icon href=/ui/img/icons/apple-touch-icon.png><link rel=mask-icon href=/ui/img/icons/safari-pinned-tab.svg color=#4DBA87><meta name=msapplication-TileImage content=/ui/img/icons/msapplication-icon-144x144.png><meta name=msapplication-TileColor content=#000000></head><body><noscript><strong>We're sorry but the StorageOS UI doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/../js/chunk-vendors.cc8eb95d.js></script><script src=/../js/app.0937e049.js></script></body></html>

Let me know if this is sufficient or/and if you need anything else.

Thanks!

github-actions[bot] commented 1 year ago

This PR has been automatically marked as stale because it has been open 60 days with no activity. Remove stale label or comment or this PR will be closed in 10 days

elamaran11 commented 1 year ago

@hubvu Please confirm if you are still working on this to fix our comments based on our slack conversation few monthis ago. The ticket will be closed in 10 days if there is no action.

elamaran11 commented 11 months ago

CLosing this PR as there is no activity from Feb.