From 5ef413c1c3afe258c12897bdd7fa0f4b30aada58 Mon Sep 17 00:00:00 2001 From: Illia Shestakov Date: Mon, 26 Jun 2023 17:01:15 +0300 Subject: [PATCH] Upgrade to openedx Palm @ tutor 16.x --- .github/workflows/tutor.yml | 9 ++- .gitmodules | 28 +++++--- README.md | 25 +++++++ ansible/group_vars/tutor/config.yml | 2 +- config.yml | 20 +++--- mfe/brand-openedx | 2 +- mfe/frontend-app-account | 2 +- mfe/frontend-app-authn | 2 +- mfe/frontend-app-communications | 1 + mfe/frontend-app-course-authoring | 2 +- mfe/frontend-app-course_about | 2 +- mfe/frontend-app-discussions | 2 +- mfe/frontend-app-gradebook | 2 +- mfe/frontend-app-home | 2 +- mfe/frontend-app-learning | 2 +- mfe/frontend-app-ora-grading | 1 + mfe/frontend-app-profile | 2 +- mfe/frontend-component-footer | 2 +- mfe/frontend-component-header | 2 +- plugins/brand-openedx.yml | 7 -- plugins/community-mfe.py | 108 ++++++++++++++++++++++++++++ requirements.in | 10 +-- requirements.txt | 33 +++++---- 23 files changed, 204 insertions(+), 64 deletions(-) create mode 160000 mfe/frontend-app-communications create mode 160000 mfe/frontend-app-ora-grading delete mode 100644 plugins/brand-openedx.yml create mode 100644 plugins/community-mfe.py diff --git a/.github/workflows/tutor.yml b/.github/workflows/tutor.yml index 69d10911..c824822b 100644 --- a/.github/workflows/tutor.yml +++ b/.github/workflows/tutor.yml @@ -24,7 +24,7 @@ env: jobs: build-openedx: env: - OPENEDX_IMAGE: docker.io/abstract2tech/community-theme-openedx:15.3.0 + OPENEDX_IMAGE: docker.io/abstract2tech/community-theme-openedx:16.1.0 runs-on: ubuntu-latest if : ${{ !inputs.skip_build_openedx_job }} steps: @@ -59,12 +59,14 @@ jobs: - name: Build tutor openedx image run: | docker login -u abstract2tech -p ${{ secrets.DOCKER_REGISTRY_PASSWORD }} - docker buildx build -t "${OPENEDX_IMAGE}" --pull --cache-from "${OPENEDX_CACHE_IMAGE}" ./env/build/openedx --cache-to "${OPENEDX_CACHE_IMAGE}" --push + tutor images pull openedx + tutor images build openedx + tutor images push openedx build-mfe: runs-on: ubuntu-latest env: - MFE_IMAGE: docker.io/abstract2tech/community-theme-mfe:15.0.5 + MFE_IMAGE: docker.io/abstract2tech/community-theme-mfe:16.1.0 steps: - uses: actions/checkout@v3 @@ -97,6 +99,7 @@ jobs: - name: Build tutor MFE image run: | docker login -u abstract2tech -p ${{ secrets.DOCKER_REGISTRY_PASSWORD }} + tutor images pull mfe tutor images build mfe tutor images push mfe diff --git a/.gitmodules b/.gitmodules index f2e25013..f7f6856a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,7 @@ [submodule "mfe/frontend-app-profile"] path = mfe/frontend-app-profile url = git@github.com:Abstract-Tech/community-theme-profile.git - branch = community-theme.master + branch = community-theme.palm [submodule "mfe/frontend-app-learning"] path = mfe/frontend-app-learning url = git@github.com:Abstract-Tech/community-theme-learning.git @@ -9,15 +9,15 @@ [submodule "mfe/frontend-app-course_about"] path = mfe/frontend-app-course_about url = git@github.com:Abstract-Tech/community-theme-course-about.git - branch = community-theme + branch = community-theme.palm [submodule "mfe/frontend-app-gradebook"] path = mfe/frontend-app-gradebook url = git@github.com:Abstract-Tech/community-theme-gradebook.git - branch = community-theme + branch = community-theme.palm [submodule "mfe/frontend-app-account"] path = mfe/frontend-app-account url = git@github.com:Abstract-Tech/community-theme-account.git - branch = community-theme.master + branch = community-theme.palm [submodule "mfe/frontend-app-home"] path = mfe/frontend-app-home url = git@github.com:Abstract-Tech/community-theme-home.git @@ -25,11 +25,11 @@ [submodule "mfe/frontend-component-footer"] path = mfe/frontend-component-footer url = git@github.com:Abstract-Tech/community-theme-footer.git - branch = community-theme + branch = community-theme.palm [submodule "mfe/frontend-component-header"] path = mfe/frontend-component-header url = git@github.com:Abstract-Tech/community-theme-header.git - branch = community-theme + branch = community-theme.palm [submodule "mfe/brand-openedx"] path = mfe/brand-openedx url = git@github.com:Abstract-Tech/community-theme-brand.git @@ -37,12 +37,22 @@ [submodule "mfe/frontend-app-discussions"] path = mfe/frontend-app-discussions url = git@github.com:Abstract-Tech/community-theme-discussions.git - branch = community-theme + branch = community-theme.palm [submodule "mfe/frontend-app-authn"] path = mfe/frontend-app-authn url = git@github.com:Abstract-Tech/community-theme-authn.git - branch = community-theme.olive + branch = community-theme.palm [submodule "mfe/frontend-app-course-authoring"] path = mfe/frontend-app-course-authoring url = git@github.com:Abstract-Tech/community-theme-course-authoring.git - branch = community-theme + branch = community-theme.palm +[submodule "mfe/frontend-app-communications"] + path = mfe/frontend-app-communications + url = git@github.com:Abstract-Tech/community-theme-communications.git + branch = community-theme.palm +[submodule "mfe/frontend-app-ora-grading"] + path = mfe/frontend-app-ora-grading + url = git@github.com:Abstract-Tech/community-theme-ora-grading.git + branch = community-theme.palm + + diff --git a/README.md b/README.md index 7a1fb1c7..c8f20fb0 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,8 @@ It's important that MFE directories names start with the `frontend-app` magic wo The MFE application will be accessible at `http://apps.local.overhang.io:{{ PORT }}/{{ NAME }}/`. The `PORT` and `NAME` parameters for the specific MFE can be found in `config.yml`. (e.g. http://apps.local.overhang.io:1995/profile/) +
+ Old way of running MFE in development mode ## Building customized MFEs dev images @@ -93,6 +95,29 @@ Then you should be able to run: And browse the MFE at http://apps.local.overhang.io:3001/home/ +
+ +## Running an MFE in development mode + +To run an MFE in development mode, you would need to clone it and to mount it's directory + + Assuming you need to modify `frontend-app-account`. + +1. Clone it _if it's not already_ +2. `npm install` _make sure you are on the correct node version `node --version` it shall match `cat .nvmrc`_ +3. `tutor mounts add "./mfe/frontend-app-account"`. + +### How do I override specific npm pks? + +The following is an example of overriding a header + +1. Clone it _if it's not already_ +2. `npm install` _make sure you are on the correct node version `node --version` it shall match `cat .nvmrc`_ +3. Mount the pkg to the container `tutor mounts add "account:./mfe/frontend-component-header:/openedx/frontend-component-header"` scheme: `service:host_path:containter_path` +3. mounts the `module.config.js` file, assuming it's `mfe/`, `tutor mounts add account:./mfe/module.config.js:/openedx/app/module.config.js` +5. then run `npm install` _Note: in step 2 we run it inside header, now inside account mfe_ +6. Simliar to adding the header we can also add other pkgs, like footer, brand, paragon...etc. + ## Building and runnning MFEs in production mode If you want to test the MFEs in a production like environment (e.g. the platform root page will be replaced by the Home MFE application) you can do so by running: diff --git a/ansible/group_vars/tutor/config.yml b/ansible/group_vars/tutor/config.yml index 62b54bed..b4dd9ae7 100644 --- a/ansible/group_vars/tutor/config.yml +++ b/ansible/group_vars/tutor/config.yml @@ -1,5 +1,5 @@ --- -tutor_version: "15.3.8" +tutor_version: "16.0.1" tutor_prod_config: ENABLE_HTTPS: true diff --git a/config.yml b/config.yml index b78d64ea..bfb03c41 100644 --- a/config.yml +++ b/config.yml @@ -5,7 +5,7 @@ CAIRN_SUPERSET_SECRET_KEY: WcbX8dsobUWH5zOgHDz4 CMS_HOST: studio.local.overhang.io CMS_OAUTH2_SECRET: 2icx54cdu9SJ77KMlZgHTWcm CONTACT_EMAIL: noreply@community.abzt.de -DOCKER_IMAGE_OPENEDX: docker.io/abstract2tech/community-theme-openedx:15.3.0 +DOCKER_IMAGE_OPENEDX: docker.io/abstract2tech/community-theme-openedx:16.1.0 ENABLE_HTTPS: false ENABLE_WEB_PROXY: true ID: jxBish2U54zbLTe82GMVvnyO @@ -68,12 +68,12 @@ MFE_ACCOUNT_MFE_APP: name: account port: 1997 repository: https://github.com/Abstract-Tech/community-theme-account - version: community-theme.master + version: community-theme.palm MFE_AUTHN_MFE_APP: name: authn port: 1999 repository: https://github.com/Abstract-Tech/community-theme-authn - version: community-theme.olive + version: community-theme.palm MFE_COURSE_ABOUT_MFE_APP: name: course_about port: 3000 @@ -83,18 +83,18 @@ MFE_COURSE_AUTHORING_MFE_APP: name: course_authoring port: 2001 repository: https://github.com/Abstract-Tech/community-theme-course-authoring - version: community-theme + version: community-theme.palm MFE_DISCUSSIONS_MFE_APP: name: discussions port: 2002 repository: https://github.com/Abstract-Tech/community-theme-discussions - version: community-theme -MFE_DOCKER_IMAGE: docker.io/abstract2tech/community-theme-mfe:15.0.5 + version: community-theme.palm +MFE_DOCKER_IMAGE: docker.io/abstract2tech/community-theme-mfe:16.0.0 MFE_GRADEBOOK_MFE_APP: name: gradebook port: 1994 repository: https://github.com/Abstract-Tech/community-theme-gradebook.git - version: community-theme + version: community-theme.palm MFE_HOME_MFE_APP: name: home port: 3001 @@ -104,12 +104,12 @@ MFE_LEARNING_MFE_APP: name: learning port: 2000 repository: https://github.com/Abstract-Tech/community-theme-learning - version: community-theme.master + version: community-theme.palm MFE_PROFILE_MFE_APP: name: profile port: 1995 repository: https://github.com/Abstract-Tech/community-theme-profile - version: community-theme.master + version: community-theme.palm MYSQL_ROOT_PASSWORD: 43Lfuln2 OPENEDX_EXTRA_PIP_REQUIREMENTS: - git+https://github.com/abstract-tech/abstract-scorm-xblock.git@django4#subdirectory=abstract_scorm_xblock&egg=abstract-scorm-xblock @@ -122,8 +122,8 @@ OPENEDX_SECRET_KEY: eHqeglW5j7T68yYtr3yL6XPz PLATFORM_NAME: Community Theme PLUGINS: - aicoach -- brand-openedx - course-about-mfe +- community-mfe - home-mfe - mfe - session-timeout diff --git a/mfe/brand-openedx b/mfe/brand-openedx index 8e6ec1d3..551753b4 160000 --- a/mfe/brand-openedx +++ b/mfe/brand-openedx @@ -1 +1 @@ -Subproject commit 8e6ec1d3b967dc56c189757d4d9aabcb89c6a2f6 +Subproject commit 551753b415f5138b77ba156da0b151565ab612bb diff --git a/mfe/frontend-app-account b/mfe/frontend-app-account index 6ab6f074..7aebc228 160000 --- a/mfe/frontend-app-account +++ b/mfe/frontend-app-account @@ -1 +1 @@ -Subproject commit 6ab6f07419997fc3d895f9ac86e9288914c1c617 +Subproject commit 7aebc22869c37140b6012e1f91d8724ab5ddbd0a diff --git a/mfe/frontend-app-authn b/mfe/frontend-app-authn index 3ab541a0..f6da9daf 160000 --- a/mfe/frontend-app-authn +++ b/mfe/frontend-app-authn @@ -1 +1 @@ -Subproject commit 3ab541a03974dd89f43f50757f6d78a50de36cac +Subproject commit f6da9daf559861441304b2adcf279cc3be3e9d29 diff --git a/mfe/frontend-app-communications b/mfe/frontend-app-communications new file mode 160000 index 00000000..ce45c801 --- /dev/null +++ b/mfe/frontend-app-communications @@ -0,0 +1 @@ +Subproject commit ce45c8012dffd437233839c3d3c1a344b968e754 diff --git a/mfe/frontend-app-course-authoring b/mfe/frontend-app-course-authoring index cbdc15d1..aa5b0f82 160000 --- a/mfe/frontend-app-course-authoring +++ b/mfe/frontend-app-course-authoring @@ -1 +1 @@ -Subproject commit cbdc15d1838ca808c1b562457a7d5545c1e2a251 +Subproject commit aa5b0f828f2b1115f2c984705c41995362088823 diff --git a/mfe/frontend-app-course_about b/mfe/frontend-app-course_about index 032b8ecd..ca4279b3 160000 --- a/mfe/frontend-app-course_about +++ b/mfe/frontend-app-course_about @@ -1 +1 @@ -Subproject commit 032b8ecdfd04a63e3dd18e0b84a1543676715bda +Subproject commit ca4279b3d81ce03a60787d104be9e58291fa10f2 diff --git a/mfe/frontend-app-discussions b/mfe/frontend-app-discussions index 630a5513..aee73e37 160000 --- a/mfe/frontend-app-discussions +++ b/mfe/frontend-app-discussions @@ -1 +1 @@ -Subproject commit 630a551356be25503bf6f2d83b0a9894d3b9ef83 +Subproject commit aee73e37ec40c83840f13584ffe71e76708a30cd diff --git a/mfe/frontend-app-gradebook b/mfe/frontend-app-gradebook index e52d7dfc..94e47ca1 160000 --- a/mfe/frontend-app-gradebook +++ b/mfe/frontend-app-gradebook @@ -1 +1 @@ -Subproject commit e52d7dfcaf24758b72e724771456f02c8cd82709 +Subproject commit 94e47ca1d0e601d5bc84b2371b6fd457e5758de7 diff --git a/mfe/frontend-app-home b/mfe/frontend-app-home index aaa2be68..05a3a582 160000 --- a/mfe/frontend-app-home +++ b/mfe/frontend-app-home @@ -1 +1 @@ -Subproject commit aaa2be685bbb42d506423b03578fd37bf34d1655 +Subproject commit 05a3a582e30aa83473b28f1ea56bf5d02cac9f8f diff --git a/mfe/frontend-app-learning b/mfe/frontend-app-learning index ef078e3b..e609bb3d 160000 --- a/mfe/frontend-app-learning +++ b/mfe/frontend-app-learning @@ -1 +1 @@ -Subproject commit ef078e3bf3dfd4c008705aba343aec9dbcce3405 +Subproject commit e609bb3d965f53e810b96836cf2cf568fe34a7dc diff --git a/mfe/frontend-app-ora-grading b/mfe/frontend-app-ora-grading new file mode 160000 index 00000000..ce45c801 --- /dev/null +++ b/mfe/frontend-app-ora-grading @@ -0,0 +1 @@ +Subproject commit ce45c8012dffd437233839c3d3c1a344b968e754 diff --git a/mfe/frontend-app-profile b/mfe/frontend-app-profile index cd610c88..e7d55dc2 160000 --- a/mfe/frontend-app-profile +++ b/mfe/frontend-app-profile @@ -1 +1 @@ -Subproject commit cd610c88ad13b45641d9fad42722990ec95856b9 +Subproject commit e7d55dc2b010e07fb6a5d8e7fb646c9bbf89f583 diff --git a/mfe/frontend-component-footer b/mfe/frontend-component-footer index 598463dc..a78cfa80 160000 --- a/mfe/frontend-component-footer +++ b/mfe/frontend-component-footer @@ -1 +1 @@ -Subproject commit 598463dc550f547802f60d099aa60c3a48c53700 +Subproject commit a78cfa805c18a3b5824490743c38c58e041f1f4d diff --git a/mfe/frontend-component-header b/mfe/frontend-component-header index 3398e599..1efa1f3e 160000 --- a/mfe/frontend-component-header +++ b/mfe/frontend-component-header @@ -1 +1 @@ -Subproject commit 3398e599d5fa28f02811bb6e21869c99df35df7e +Subproject commit 1efa1f3ed65c9531d36205c449296eab83e8f504 diff --git a/plugins/brand-openedx.yml b/plugins/brand-openedx.yml deleted file mode 100644 index f7c9d4b1..00000000 --- a/plugins/brand-openedx.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: brand-openedx -version: 0.1.0 -patches: - mfe-dockerfile-post-npm-install: | - RUN npm install '@edx/frontend-component-header@git+https://git@github.com/abstract-tech/community-theme-header.git#community-theme' --registry=$NPM_REGISTRY - RUN npm install '@edx/frontend-component-footer@git+https://git@github.com/abstract-tech/community-theme-footer.git#community-theme' --registry=$NPM_REGISTRY - RUN npm install '@edx/brand@git+https://git@github.com/abstract-tech/community-theme-brand.git#community-theme' --registry=$NPM_REGISTRY diff --git a/plugins/community-mfe.py b/plugins/community-mfe.py new file mode 100644 index 00000000..27e23c17 --- /dev/null +++ b/plugins/community-mfe.py @@ -0,0 +1,108 @@ +from tutormfe.hooks import MFE_APPS +from tutor import hooks + + +@MFE_APPS.add() +def mfe_forks(mfes): + mfes["authn"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-authn", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-authn/git/refs/heads", + "port": 1999, + "name": "authn", + } + mfes["account"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-account", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-account/git/refs/heads", + "port": 1997, + "name": "account", + } + mfes["communications"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-communications", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-communications/git/refs/heads", + "port": 1984, + "name": "communications", + } + mfes["course-authoring"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-course-authoring", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-course-authoring/git/refs/heads", + "port": 2001, + "name": "course_authoring", + } + mfes["discussions"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-discussions", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-discussions/git/refs/heads", + "port": 2002, + "name": "discussions", + } + mfes["gradebook"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-gradebook", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-gradebook/git/refs/heads", + "port": 1994, + "name": "gradebook", + } + mfes["learning"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-learning", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-learning/git/refs/heads", + "port": 2000, + "name": "learning", + } + mfes["ora-grading"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-ora-grading", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-ora-grading/git/refs/heads", + "port": 1993, + "name": "ora-grading", + } + mfes["profile"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-profile", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-profile/git/refs/heads", + "port": 1995, + "name": "profile", + } + mfes["home"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-home", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-home/git/refs/heads", + "port": 3001, + "name": "home", + } + mfes["course_about"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-course-about", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-course-about/git/refs/heads", + "port": 3000, + "name": "course_about", + } + # Note: The changes of the following might not take effect due to tutor order of loading plugins + # This to change it you might need to edit the upstream pplugin at: + # https://github.com/Abstract-Tech/openedx-tutor-plugins/blob/5556c1d5c55e1a0e95f36a9f0b89dbf21382f581/plugins/tutor-contrib-learner-dashboard-mfe/tutor_learner_dashboard_mfe/plugin.py#L20-L25 + mfes["learner-dashboard"] = { + "repository": "https://github.com/Abstract-Tech/community-theme-learner-dashboard", + "version": "community-theme.palm", + "refs": "https://api.github.com/repos/abstract-tech/community-theme-learner-dashboard/git/refs/heads", + "port":1996, + } + + return mfes + + +hooks.Filters.ENV_PATCHES.add_items( + [ + ( + "mfe-dockerfile-post-npm-install", + """ +RUN npm install '@edx/frontend-component-header@git+https://git@github.com/abstract-tech/community-theme-header.git#community-theme.palm' --registry=$NPM_REGISTRY +RUN npm install '@edx/frontend-component-footer@git+https://git@github.com/abstract-tech/community-theme-footer.git#community-theme.palm' --registry=$NPM_REGISTRY +RUN npm install '@edx/brand@git+https://git@github.com/abstract-tech/community-theme-brand.git#community-theme' --registry=$NPM_REGISTRY + """, + ), + ] +) diff --git a/requirements.in b/requirements.in index d7bc511c..2db30780 100644 --- a/requirements.in +++ b/requirements.in @@ -1,5 +1,5 @@ -tutor<16.0.0 -tutor-mfe<16.0.0 -tutor-forum<16.0.0 -tutor-cairn<16.0.0 -tutor-minio<16.0.0 +tutor<17.0.0 +tutor-mfe<17.0.0 +tutor-forum<17.0.0 +tutor-cairn<17.0.0 +tutor-minio<17.0.0 diff --git a/requirements.txt b/requirements.txt index 146d9803..7ae23333 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,36 +2,38 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --resolver=backtracking requirements.in +# pip-compile requirements.in # appdirs==1.4.4 # via tutor cachetools==5.3.1 # via google-auth -certifi==2023.5.7 +certifi==2023.7.22 # via # kubernetes # requests -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 # via requests -click==8.1.3 +click==8.1.7 # via tutor -google-auth==2.21.0 +google-auth==2.22.0 # via kubernetes idna==3.4 # via requests jinja2==3.1.2 # via tutor -kubernetes==26.1.0 +kubernetes==27.2.0 # via tutor markupsafe==2.1.3 # via jinja2 -mypy==1.4.1 +mypy==1.5.1 # via tutor mypy-extensions==1.0.0 # via mypy oauthlib==3.2.2 - # via requests-oauthlib + # via + # kubernetes + # requests-oauthlib pyasn1==0.5.0 # via # pyasn1-modules @@ -42,7 +44,7 @@ pycryptodome==3.18.0 # via tutor python-dateutil==2.8.2 # via kubernetes -pyyaml==6.0 +pyyaml==6.0.1 # via # kubernetes # tutor @@ -61,20 +63,20 @@ six==1.16.0 # python-dateutil tomli==2.0.1 # via mypy -tutor==15.3.8 +tutor==16.1.0 # via # -r requirements.in # tutor-cairn # tutor-forum # tutor-mfe # tutor-minio -tutor-cairn==15.0.6 +tutor-cairn==16.0.1 # via -r requirements.in -tutor-forum==15.1.1 +tutor-forum==16.0.0 # via -r requirements.in -tutor-mfe==15.0.7 +tutor-mfe==16.1.0 # via -r requirements.in -tutor-minio==15.1.0 +tutor-minio==16.0.1 # via -r requirements.in typing-extensions==4.7.1 # via @@ -87,6 +89,3 @@ urllib3==1.26.16 # requests websocket-client==1.6.1 # via kubernetes - -# The following packages are considered to be unsafe in a requirements file: -# setuptools